[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