FFmpeg
Loading...
Searching...
No Matches
tests
checkasm
aes.c
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2015 Rodger Combs <rodger.combs@gmail.com>
3
*
4
* This file is part of FFmpeg.
5
*
6
* FFmpeg is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
10
*
11
* FFmpeg is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License along
17
* with FFmpeg; if not, write to the Free Software Foundation, Inc.,
18
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
*/
20
21
#include <string.h>
22
23
#include "
checkasm.h
"
24
#include "
libavutil/aes.h
"
25
#include "
libavutil/aes_internal.h
"
26
#include "
libavutil/internal.h
"
27
28
#define MAX_COUNT 16
29
30
void
checkasm_check_aes
(
void
)
31
{
32
int
i
, j, d;
33
AVAES
b
;
34
uint8_t
pt
[
MAX_COUNT
* 16];
35
uint8_t
temp
[2][
MAX_COUNT
* 16];
36
uint8_t iv[2][16];
37
38
for
(d = 0; d <= 1; d++) {
39
for
(
i
= 128;
i
<= 256;
i
+= 64) {
40
av_aes_init
(&
b
, (
const
uint8_t*)
"PI=3.1415926535897932384626433.."
,
i
, d);
41
if
(
check_func
(
b
.crypt,
"aes_%scrypt_%i"
, d ?
"de"
:
"en"
,
i
)) {
42
declare_func
(
void
,
AVAES
*
a
, uint8_t *
dst
,
const
uint8_t *
src
,
43
int
count, uint8_t *iv,
int
rounds);
44
int
count = (
rnd
() & (
MAX_COUNT
- 1)) + 1;
45
for
(j = 0; j < 16 *
MAX_COUNT
; j++)
46
pt
[j] =
rnd
();
47
for
(j = 0; j < 16; j++)
48
iv[0][j] = iv[1][j] =
rnd
();
49
call_ref
(&
b
,
temp
[0],
pt
, count, iv[0],
b
.rounds);
50
call_new
(&
b
,
temp
[1],
pt
, count, iv[1],
b
.rounds);
51
if
(memcmp(
temp
[0],
temp
[1], 16 * count))
52
fail
();
53
if
(memcmp(iv[0], iv[1],
sizeof
(iv[0])))
54
fail
();
55
call_ref
(&
b
,
temp
[0],
pt
, count,
NULL
,
b
.rounds);
56
call_new
(&
b
,
temp
[1],
pt
, count,
NULL
,
b
.rounds);
57
if
(memcmp(
temp
[0],
temp
[1], 16 * count))
58
fail
();
59
if
(memcmp(iv[0], iv[1],
sizeof
(iv[0])))
60
fail
();
61
bench_new
(&
b
,
temp
[1],
pt
,
MAX_COUNT
,
NULL
,
b
.rounds);
62
}
63
}
64
report
(
"%scrypt"
, d ?
"de"
:
"en"
);
65
}
66
}
dst
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
Definition
dsp.h:87
aes.h
aes_internal.h
i
#define i(width, name, range_min, range_max)
Definition
cbs_h264.c:63
checkasm.h
rnd
#define rnd
Definition
checkasm.h:136
NULL
#define NULL
Definition
coverity.c:32
declare_func
#define declare_func
Definition
test.h:489
fail
#define fail
Definition
test.h:479
bench_new
#define bench_new
Definition
test.h:487
check_func
#define check_func
Definition
test.h:481
call_new
#define call_new
Definition
test.h:486
call_ref
#define call_ref
Definition
test.h:485
report
#define report
Definition
test.h:480
av_aes_init
int av_aes_init(AVAES *a, const uint8_t *key, int key_bits, int decrypt)
Initialize an AVAES context.
Definition
aes.c:231
a
int a
Definition
h264pred_template.c:416
b
#define b
Definition
input.c:43
internal.h
common internal API header
pt
int pt
Definition
rtp.c:35
AVAES
Definition
aes_internal.h:34
checkasm_check_aes
void checkasm_check_aes(void)
Definition
aes.c:30
MAX_COUNT
#define MAX_COUNT
Definition
aes.c:28
src
#define src
Definition
vp8dsp.c:248
temp
else temp
Definition
vf_mcdeint.c:275
Generated on Sun Aug 16 2026 20:21:03 for FFmpeg by
1.13.2