From patchwork Sun Jul 2 19:30:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marton Balint X-Patchwork-Id: 42386 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1e:b0:12b:9ae3:586d with SMTP id c30csp3906079pzh; Sun, 2 Jul 2023 12:30:27 -0700 (PDT) X-Google-Smtp-Source: APBJJlE7huAtGI7fSUJtOtMfGsqVWROUtg8VjH9y7xkLLjJnvoCPcI/CItL9sIMjhL/6xIM09Bjx X-Received: by 2002:a17:906:3516:b0:991:f427:2fe8 with SMTP id r22-20020a170906351600b00991f4272fe8mr6310619eja.2.1688326227734; Sun, 02 Jul 2023 12:30:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688326227; cv=none; d=google.com; s=arc-20160816; b=mLB6OCnC17Bs0UgW1NZMKmdHdirh7BHBluavQQOWl0BV/bGvt52sa/MZyVLwsXbh3m fU/OQE7zhXaTmexT0JMLKg21GBWgb4OkdSQZhilNyo28m+imQ0K+xhgL4qnd0m1sKtPT 5MwhmYxEaDmE2fQJltNi6Mpd0Ckb7o8YnW7e4TCEGMQMO3uB/9lCbPT0JpcQz2nCDnNV sKbt+rPQH2p7hKI86y8jXIFv4/R4zQaCDcZ2Gyt+3Xa3zFYm8v1kxhqhXD4fsVrw9EyU x9IMxbUR4gYlkedxwzBQSYtpB9/Vfx+EA3BOOeJxxfP7ORaQliTwsTmQrNLx2nBI1jBV MjwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :delivered-to; bh=Cyv7OYyQflVKv9Nk3Kg48Ft2JG2xTrYC996owhK0K68=; fh=s+G8Ss4JbeMFkWPSp2LmIH/LXFyBlALRiww1j3FPjHY=; b=VtY0VppTJQjq6JoSxD5Pz+NKi/FVv15libs8ORT48Sga+K3ClMk7kPzL+w+ri8hqzR Sb2oe31zHmzVBN2re2+MKCIYDzJOSByOVWwKSK4VF6UMmzmxKrNsbptNGarxNUPteyaq tUYEZUDRiDjTXPqepUU31tWBfP3HAlXvW1PHhVHXABsNEA/38D4STwN0w+uNgM0Pu5RZ CzcS4jCLcQmF+LDaDNHABzo7r2IcOfeacPKhry2XmLiL6S6Q4DVvoDtn68GMxvpnoDHK ejPbqslnXPBdaDcCDDNkoPODT5TVPXaHzJ0JHOF2r+mMXnRNQmw4hZzgPnqawAq/FseT kUZQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id m19-20020a1709066d1300b009888b617ebbsi10164289ejr.606.2023.07.02.12.30.27; Sun, 02 Jul 2023 12:30:27 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C70E768C461; Sun, 2 Jul 2023 22:30:23 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from iq.passwd.hu (iq.passwd.hu [217.27.212.140]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DF09E68C3A3 for ; Sun, 2 Jul 2023 22:30:16 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id 430A3E8BAA; Sun, 2 Jul 2023 21:27:32 +0200 (CEST) X-Virus-Scanned: amavisd-new at passwd.hu Received: from iq.passwd.hu ([127.0.0.1]) by localhost (iq.passwd.hu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 86-5UnmbppHD; Sun, 2 Jul 2023 21:27:30 +0200 (CEST) Received: from bluegene.passwd.hu (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id 6C6F4E73A4; Sun, 2 Jul 2023 21:27:30 +0200 (CEST) From: Marton Balint To: ffmpeg-devel@ffmpeg.org Date: Sun, 2 Jul 2023 21:30:09 +0200 Message-Id: <20230702193010.11654-1-cus@passwd.hu> X-Mailer: git-send-email 2.35.3 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avformat/hlsenc: fall back to av_get_random_seed() when generating AES128 key X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Marton Balint Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: /GjIxuKMfjKV It should be OK to use av_get_random_seed() to generate the key instead of using openSSL/Gcrypt functions. This removes the hard dependancy of those libs for key generation functionality. Fixes ticket #10441. Signed-off-by: Marton Balint --- libavformat/hlsenc.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index 1e0848ce3d..0b22c71186 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -40,6 +40,7 @@ #include "libavutil/intreadwrite.h" #include "libavutil/opt.h" #include "libavutil/log.h" +#include "libavutil/random_seed.h" #include "libavutil/time.h" #include "libavutil/time_internal.h" @@ -710,18 +711,18 @@ 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; + return; #elif CONFIG_OPENSSL if (RAND_bytes(buf, len)) - return 0; -#else - return AVERROR(ENOSYS); + return; #endif - return AVERROR(EINVAL); + av_assert0(len % 4 == 0); + for (int i = 0; i < len; i += 4) + AV_WB32(buf + i, av_get_random_seed()); } static int do_encrypt(AVFormatContext *s, VariantStream *vs) @@ -775,10 +776,7 @@ static int do_encrypt(AVFormatContext *s, VariantStream *vs) if (!*hls->key_string) { AVDictionary *options = NULL; 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)); } else { memcpy(key, hls->key, sizeof(key)); }