[FFmpeg-devel] [PATCH 6/6] avutil/tests/aes_ctr: also randomize the encryption key

James Almer jamrial at gmail.com
Thu Apr 3 23:59:03 EEST 2025


And not just the IV.

Signed-off-by: James Almer <jamrial at gmail.com>
---
 libavutil/tests/aes_ctr.c | 25 ++++++++++++++++++++++---
 1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/libavutil/tests/aes_ctr.c b/libavutil/tests/aes_ctr.c
index 6f21b8bda1..fad24014cc 100644
--- a/libavutil/tests/aes_ctr.c
+++ b/libavutil/tests/aes_ctr.c
@@ -18,6 +18,7 @@
 
 #include <string.h>
 
+#include "libavutil/random_seed.h"
 #include "libavutil/log.h"
 #include "libavutil/mem_internal.h"
 #include "libavutil/aes_ctr.h"
@@ -36,13 +37,20 @@ static const DECLARE_ALIGNED(8, uint8_t, fixed_iv)[] = {
     0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef
 };
 
+static const DECLARE_ALIGNED(8, uint8_t, fixed_key)[] = {
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+    0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66
+};
+
+static DECLARE_ALIGNED(8, uint32_t, key)[2];
+
 static DECLARE_ALIGNED(8, uint8_t, tmp)[20];
 
 int main (void)
 {
     int ret = 1;
     struct AVAESCTR *ae, *ad;
-    const uint8_t *iv;
+    const uint8_t *iv, *k;
 
     for (int i = 0; i < 2; i++) {
         ae = av_aes_ctr_alloc();
@@ -51,10 +59,21 @@ int main (void)
         if (!ae || !ad)
             goto ERROR;
 
-        if (av_aes_ctr_init(ae, (const uint8_t*)"0123456789abcdef") < 0)
+        if (i)
+            k = fixed_key;
+        else {
+            // Note: av_random_bytes() should be used in a real world scenario,
+            // but since that function can fail, av_get_random_seed() is used
+            // here for the purpose of this test, as its output is sufficient.
+            key[0] = av_get_random_seed();
+            key[1] = av_get_random_seed();
+            k = (uint8_t *)key;
+        }
+
+        if (av_aes_ctr_init(ae, k) < 0)
             goto ERROR;
 
-        if (av_aes_ctr_init(ad, (const uint8_t*)"0123456789abcdef") < 0)
+        if (av_aes_ctr_init(ad, k) < 0)
             goto ERROR;
 
         if (i)
-- 
2.49.0



More information about the ffmpeg-devel mailing list