[FFmpeg-devel] [PATCH] avformat/hlsenc: reimplement randomize of hls use av_get_random_seed
James Almer
jamrial at gmail.com
Thu May 31 17:27:50 EEST 2018
On 5/31/2018 1:41 AM, Steven Liu wrote:
> for support use the mbedtls
>
> Signed-off-by: Steven Liu <lq at chinaffmpeg.org>
> ---
> libavformat/hlsenc.c | 22 +++++++---------------
> 1 file changed, 7 insertions(+), 15 deletions(-)
>
> diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
> index 9c06551ea6..17b464f540 100644
> --- a/libavformat/hlsenc.c
> +++ b/libavformat/hlsenc.c
> @@ -569,18 +569,13 @@ fail:
> return ret;
> }
> > -static int randomize(uint8_t *buf, int len)
> +
> +static void randomize(uint8_t *buf, int len)
> {
> -#if CONFIG_GCRYPT
> - gcry_randomize(buf, len, GCRY_VERY_STRONG_RANDOM);
> - return 0;
> -#elif CONFIG_OPENSSL
> - if (RAND_bytes(buf, len))
> - return 0;
> -#else
> - return AVERROR(ENOSYS);
> -#endif
> - return AVERROR(EINVAL);
You should also remove the header includes and the relevant configure
dependencies for openssl and gcrypt if you're removing these chunks.
> + uint32_t tmp_number[2];
> + tmp_number[0] = av_get_random_seed();
> + tmp_number[1] = av_get_random_seed();
> + memcpy(buf, iv, len);
/home/jamrial/ffmpeg/libavformat/hlsenc.c:577:17: error: 'iv' undeclared
(first use in this function); did you mean 'div'?
memcpy(buf, iv, len);
^~
div
/home/jamrial/ffmpeg/libavformat/hlsenc.c:577:17: note: each undeclared
identifier is reported only once for each function it appears in
/home/jamrial/ffmpeg/libavformat/hlsenc.c:574:14: warning: variable
'tmp_number' set but not used [-Wunused-but-set-variable]
uint32_t tmp_number[2];
^~~~~~~~~~
make: *** [/home/jamrial/ffmpeg/ffbuild/common.mak:60:
libavformat/hlsenc.o] Error 1
> }
>
> static int do_encrypt(AVFormatContext *s, VariantStream *vs)
> @@ -633,10 +628,7 @@ static int do_encrypt(AVFormatContext *s, VariantStream *vs)
>
> if (!*hls->key_string) {
> if (!hls->key) {
> - if ((ret = randomize(key, sizeof(key))) < 0) {
> - av_log(s, AV_LOG_ERROR, "Cannot generate a strong random key\n");
> - return ret;
> - }
> + randomize(key, sizeof(key));
sizeof(key) is 16, yet you're filling only eight bytes of random data
using av_get_random_seed().
> } else {
> memcpy(key, hls->key, sizeof(key));
> }
>
More information about the ffmpeg-devel
mailing list