提交 bea4ac2b 编写于 作者: P Pauli 提交者: Matt Caswell

Update the internal chacha test to use the framework

Reviewed-by: NRichard Levitte <levitte@openssl.org>
Reviewed-by: NMatt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3195)
上级 c983bc4f
......@@ -358,7 +358,7 @@ IF[{- !$disabled{tests} -}]
INCLUDE[poly1305_internal_test]=.. ../include ../crypto/include
DEPEND[poly1305_internal_test]=../libcrypto.a
SOURCE[chacha_internal_test]=chacha_internal_test.c
SOURCE[chacha_internal_test]=chacha_internal_test.c testutil.c test_main.c
INCLUDE[chacha_internal_test]=.. ../include ../crypto/include
DEPEND[chacha_internal_test]=../libcrypto.a
......
......@@ -12,10 +12,10 @@
* complete 32-byte blocks. This test goes per byte...
*/
#include <stdio.h>
#include <string.h>
#include <openssl/opensslconf.h>
#include "test_main.h"
#include "testutil.h"
#include "internal/chacha.h"
const static unsigned int key[] = {
......@@ -158,34 +158,33 @@ const static unsigned char ref[] = {
0xd3, 0x3e, 0xa2, 0x15, 0x5d, 0x10, 0x5d, 0x4e
};
int main(void)
static int test_cha_cha_internal(int n)
{
unsigned char buf[sizeof(ref)];
unsigned int i,j;
int ret = 0;
#ifdef CPUID_OBJ
OPENSSL_cpuid_setup();
#endif
unsigned int i = n + 1, j;
for (i = 1; i <= sizeof(ref); i++) {
memset(buf, 0, i);
memcpy(buf + i, ref + i, sizeof(ref) - i);
memset(buf, 0, i);
memcpy(buf + i, ref + i, sizeof(ref) - i);
ChaCha20_ctr32(buf, buf, i, key, ivp);
ChaCha20_ctr32(buf, buf, i, key, ivp);
/*
* Idea behind checking for whole sizeof(ref) is that if
* ChaCha20_ctr32 oversteps i-th byte, then we'd know
*/
for (j = 0; j < sizeof(ref); j++) {
if (buf[j] != ref[j]) {
fprintf(stderr, "%u failed at %u (%02x)\n", i, j, buf[j]);
ret = 1;
break;
}
/*
* Idea behind checking for whole sizeof(ref) is that if
* ChaCha20_ctr32 oversteps i-th byte, then we'd know
*/
for (j = 0; j < sizeof(ref); j++)
if (!TEST_uchar_eq(buf[j], ref[j])) {
TEST_info("%d failed at %u (%02x)\n", i, j, buf[j]);
return 0;
}
}
return 1;
}
void register_tests(void)
{
#ifdef CPUID_OBJ
OPENSSL_cpuid_setup();
#endif
return ret;
ADD_ALL_TESTS(test_cha_cha_internal, sizeof(ref));
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册