mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-06 07:40:00 +08:00
avutil/tests/aes_ctr: also randomize the encryption key
And not just the IV. Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "libavutil/random_seed.h"
|
||||||
#include "libavutil/log.h"
|
#include "libavutil/log.h"
|
||||||
#include "libavutil/mem_internal.h"
|
#include "libavutil/mem_internal.h"
|
||||||
#include "libavutil/aes_ctr.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
|
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)[4];
|
||||||
|
|
||||||
static DECLARE_ALIGNED(8, uint8_t, tmp)[20];
|
static DECLARE_ALIGNED(8, uint8_t, tmp)[20];
|
||||||
|
|
||||||
int main (void)
|
int main (void)
|
||||||
{
|
{
|
||||||
int ret = 1;
|
int ret = 1;
|
||||||
struct AVAESCTR *ae, *ad;
|
struct AVAESCTR *ae, *ad;
|
||||||
const uint8_t *iv;
|
const uint8_t *iv, *k;
|
||||||
|
|
||||||
for (int i = 0; i < 2; i++) {
|
for (int i = 0; i < 2; i++) {
|
||||||
ae = av_aes_ctr_alloc();
|
ae = av_aes_ctr_alloc();
|
||||||
@ -51,10 +59,23 @@ int main (void)
|
|||||||
if (!ae || !ad)
|
if (!ae || !ad)
|
||||||
goto ERROR;
|
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();
|
||||||
|
key[2] = av_get_random_seed();
|
||||||
|
key[3] = av_get_random_seed();
|
||||||
|
k = (uint8_t *)key;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (av_aes_ctr_init(ae, k) < 0)
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
|
|
||||||
if (av_aes_ctr_init(ad, (const uint8_t*)"0123456789abcdef") < 0)
|
if (av_aes_ctr_init(ad, k) < 0)
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
|
|
||||||
if (i)
|
if (i)
|
||||||
|
Reference in New Issue
Block a user