Commit fbbabb64 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Add extensive DRBG selftest data and option to corrupt it in fips_test_suite.

parent 8cd3d99f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -84,6 +84,7 @@ static ERR_STRING_DATA FIPS_str_functs[]=
{ERR_FUNC(FIPS_F_FIPS_CIPHERINIT),	"FIPS_CIPHERINIT"},
{ERR_FUNC(FIPS_F_FIPS_DIGESTINIT),	"FIPS_DIGESTINIT"},
{ERR_FUNC(FIPS_F_FIPS_DRBG_GENERATE),	"FIPS_drbg_generate"},
{ERR_FUNC(FIPS_F_FIPS_DRBG_INIT),	"FIPS_drbg_init"},
{ERR_FUNC(FIPS_F_FIPS_DRBG_INSTANTIATE),	"FIPS_drbg_instantiate"},
{ERR_FUNC(FIPS_F_FIPS_DRBG_NEW),	"FIPS_drbg_new"},
{ERR_FUNC(FIPS_F_FIPS_DRBG_RESEED),	"FIPS_drbg_reseed"},
+7 −0
Original line number Diff line number Diff line
@@ -315,6 +315,13 @@ int FIPS_mode_set(int onoff)
	    goto end;
	    }

	if (!FIPS_selftest_drbg())
	    {
	    fips_selftest_fail = 1;
	    ret = 0;
	    goto end;
	    }

	/* Perform RNG KAT before seeding */
	if (!FIPS_selftest_rng())
	    {
+3 −0
Original line number Diff line number Diff line
@@ -90,9 +90,11 @@ int FIPS_selftest_ecdsa(void);
void FIPS_corrupt_ecdsa(void);
void FIPS_corrupt_ec_keygen(void);
void FIPS_corrupt_rng(void);
void FIPS_corrupt_drbg(void);
void FIPS_rng_stick(void);
int FIPS_selftest_rng(void);
int FIPS_selftest_hmac(void);
int FIPS_selftest_drbg(void);

unsigned int FIPS_incore_fingerprint(unsigned char *sig,unsigned int len);
int FIPS_check_incore_fingerprint(void);
@@ -192,6 +194,7 @@ void ERR_load_FIPS_strings(void);
#define FIPS_F_FIPS_CIPHERINIT				 128
#define FIPS_F_FIPS_DIGESTINIT				 127
#define FIPS_F_FIPS_DRBG_GENERATE			 132
#define FIPS_F_FIPS_DRBG_INIT				 136
#define FIPS_F_FIPS_DRBG_INSTANTIATE			 133
#define FIPS_F_FIPS_DRBG_NEW				 134
#define FIPS_F_FIPS_DRBG_RESEED				 135
+2 −0
Original line number Diff line number Diff line
@@ -515,6 +515,8 @@ int main(int argc,char **argv)
        } else if (!strcmp(argv[1], "sha1")) {
            FIPS_corrupt_sha1();
            printf("SHA-1 hash with corrupted KAT...\n");
	} else if (!strcmp(argv[1], "drbg")) {
	    FIPS_corrupt_drbg();
	} else if (!strcmp(argv[1], "rng")) {
	    FIPS_corrupt_rng();
	} else if (!strcmp(argv[1], "rngstick")) {
+2 −2
Original line number Diff line number Diff line
@@ -23,9 +23,9 @@ APPS=

LIB=$(TOP)/libcrypto.a
LIBSRC=	fips_rand.c fips_rand_selftest.c \
	fips_drbg_lib.c fips_drbg_hash.c fips_drbg_ctr.c
	fips_drbg_lib.c fips_drbg_hash.c fips_drbg_ctr.c fips_drbg_selftest.c
LIBOBJ=	fips_rand.o fips_rand_selftest.o \
	fips_drbg_lib.o fips_drbg_hash.o fips_drbg_ctr.o
	fips_drbg_lib.o fips_drbg_hash.o fips_drbg_ctr.o fips_drbg_selftest.o

SRC= $(LIBSRC)

Loading