On Mon, Jun 04, 2018 at 12:16:36PM +0200, Thomas Volkert wrote:
> 
> On 04.06.2018 04:55, Steven Liu wrote:
> > Signed-off-by: Steven Liu <l...@chinaffmpeg.org>
> > ---
> >  configure            |  1 -
> >  libavformat/hlsenc.c | 27 ++++++++++++---------------
> >  2 files changed, 12 insertions(+), 16 deletions(-)
> >
> > diff --git a/configure b/configure
> > index 22eeca22a5..a3d0f5837a 100755
> > --- a/configure
> > +++ b/configure
> > @@ -3127,7 +3127,6 @@ fifo_muxer_deps="threads"
> >  flac_demuxer_select="flac_parser"
> >  hds_muxer_select="flv_muxer"
> >  hls_muxer_select="mpegts_muxer"
> > -hls_muxer_suggest="gcrypt openssl"
> >  image2_alias_pix_demuxer_select="image2_demuxer"
> >  image2_brender_pix_demuxer_select="image2_demuxer"
> >  ipod_muxer_select="mov_muxer"
> > diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
> > index 2268f898b0..c04c561586 100644
> > --- a/libavformat/hlsenc.c
> > +++ b/libavformat/hlsenc.c
> > @@ -27,12 +27,6 @@
> >  #include <unistd.h>
> >  #endif
> >  
> > -#if CONFIG_GCRYPT
> > -#include <gcrypt.h>
> > -#elif CONFIG_OPENSSL
> > -#include <openssl/rand.h>
> > -#endif
> > -
> >  #include "libavutil/avassert.h"
> >  #include "libavutil/mathematics.h"
> >  #include "libavutil/parseutils.h"
> > @@ -569,18 +563,21 @@ fail:
> >      return ret;
> >  }
> >  
> > +
> >  static int randomize(uint8_t *buf, int len)
> >  {
> > -#if CONFIG_GCRYPT
> > -    gcry_randomize(buf, len, GCRY_VERY_STRONG_RANDOM);
> > +    uint32_t tmp_number[4];
> > +    int i = 0;
> > +
> > +    if (len != 16)
> > +        return AVERROR(EINVAL);
> > +
> > +    for (i = 0; i < 4; i++)
> > +        tmp_number[i] = av_get_random_seed();
> > +
> > +    memcpy(buf, tmp_number, len);
> > +
> >      return 0;
> > -#elif CONFIG_OPENSSL
> > -    if (RAND_bytes(buf, len))
> > -        return 0;
> > -#else
> > -    return AVERROR(ENOSYS);
> > -#endif
> > -    return AVERROR(EINVAL);
> >  }
> >  
> >  static int do_encrypt(AVFormatContext *s, VariantStream *vs)
> 
> Does av_get_random_seed() provide the same random quality level as
> gcry_randomize() / RAND_bytes() / mbedtls_havege_random() ?

we need a (preferrably single) API to get good random numbers from.
all libs may need to access it so libavutil is probably the place for it
and av_get_random_seed() is already there ...

having a list of #if/elif/else accesing multiple sources of randomness
should if it is needed be in av_get_random_seed() not duplicated every
time a random number is needed.

on a different topic, if someone wants to improve av_get_random_seed() in a
way different from adding libs as sources of randomness

data from image sensors (v4l* for example) and PCM audio. Should be
usefull sources of entropy.
Ive seen CCD imagers of phones being used as particle detectors. So theres
seems to be some evidence behind this generating actual truely random numbers

Thanks

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Those who are too smart to engage in politics are punished by being
governed by those who are dumber. -- Plato 

Attachment: signature.asc
Description: PGP signature

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to