X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/secnet/blobdiff_plain/e53b161add0cc07777a512e6734130e98f1037b9..refs/heads/mdw/springclean:/util.h?ds=inline diff --git a/util.h b/util.h index 298f9ca..eb9e51f 100644 --- a/util.h +++ b/util.h @@ -86,10 +86,14 @@ extern void buffer_readonly_clone(struct buffer_if *n, const struct buffer_if*); * it must NOT be freed. */ extern void buf_append_string(struct buffer_if *buf, cstring_t s); + /* Append a two-byte length and the string to the buffer. Length is in + * network byte order. */ -extern string_t hex_encode(const uint8_t *bin, int binsize); - /* Convert a byte array to hex, returning the result in a freshly allocated - * string. */ +static inline int hex_encode_size(int binsize) { return binsize*2 + 1; } +extern void hex_encode(const uint8_t *bin, int binsize, char *buf); + /* Convert a byte array to hex into a supplied buffer. */ +extern string_t hex_encode_alloc(const uint8_t *bin, int binsize); + /* Returns the result in a freshly allocated string. */ extern bool_t hex_decode(uint8_t *buffer, int32_t buflen, int32_t *outlen, cstring_t hb, bool_t allow_odd_nibble); @@ -104,10 +108,13 @@ extern bool_t hex_decode(uint8_t *buffer, int32_t buflen, int32_t *outlen, * processed without error; otherwise false. */ extern void read_mpbin(MP_INT *a, uint8_t *bin, int binsize); + /* Convert a buffer into its MP_INT representation */ extern char *write_mpstring(MP_INT *a); + /* Convert a MP_INT into a hex string */ extern int32_t write_mpbin(MP_INT *a, uint8_t *buffer, int32_t buflen); + /* Convert a MP_INT into a buffer; return length; truncate if necessary */ extern struct log_if *init_log(list_t *loglist);