[vlc-devel] [PATCH v2 02/15] strings: add function to hex-encode binary data
Steve Lhomme
robux4 at ycbcr.xyz
Wed Apr 8 08:38:14 CEST 2020
On 2020-04-08 0:04, Marvin Scholz wrote:
> ---
> include/vlc_strings.h | 12 ++++++++++++
> src/libvlccore.sym | 1 +
> src/text/strings.c | 10 ++++++++++
> 3 files changed, 23 insertions(+)
>
> diff --git a/include/vlc_strings.h b/include/vlc_strings.h
> index 411f4a8ceb..e229b32d5d 100644
> --- a/include/vlc_strings.h
> +++ b/include/vlc_strings.h
> @@ -118,6 +118,18 @@ VLC_API void vlc_xml_decode(char *st);
> */
> VLC_API char *vlc_xml_encode(const char *str) VLC_MALLOC;
>
> +/**
> + * Encode binary data as hex string
> + *
> + * Writes a given data buffer to the output buffer as a null terminated
> + * string in hexadecimal representation.
> + *
> + * \param input Input buffer
> + * \param size Input buffer size
> + * \param[out] output Output buffer to write the string to
> + */
> +VLC_API void vlc_hex_encode_binary(const void *input, size_t size, char *output);
> +
> /**
> * Base64 encoding.
> *
> diff --git a/src/libvlccore.sym b/src/libvlccore.sym
> index cc8098edd9..17561db932 100644
> --- a/src/libvlccore.sym
> +++ b/src/libvlccore.sym
> @@ -483,6 +483,7 @@ vlc_b64_decode_binary
> vlc_b64_decode_binary_to_buffer
> vlc_b64_encode
> vlc_b64_encode_binary
> +vlc_hex_encode_binary
> vlc_cancel
> vlc_clone
> VLC_CompileBy
> diff --git a/src/text/strings.c b/src/text/strings.c
> index 658249f890..5180f16a83 100644
> --- a/src/text/strings.c
> +++ b/src/text/strings.c
> @@ -346,6 +346,16 @@ char *vlc_xml_encode (const char *str)
> return stream.ptr;
> }
>
> +/* Hex encoding */
> +void vlc_hex_encode_binary(const void *input, size_t size, char *output)
> +{
> + unsigned char *buffer = input;
> +
> + for (size_t i = 0; i < size; i++) {
> + sprintf(&output[i * 2], "%02" PRIx8, buffer[i]);
You should check the size of the output. Which can be done early in the
function.
> + }
> +}
> +
> /* Base64 encoding */
> char *vlc_b64_encode_binary(const void *src, size_t length)
> {
> --
> 2.24.1 (Apple Git-126)
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
>
More information about the vlc-devel
mailing list