projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Report each cipher used with CMAC tests.
[openssl.git]
/
fips
/
hmac
/
fips_hmac_selftest.c
diff --git
a/fips/hmac/fips_hmac_selftest.c
b/fips/hmac/fips_hmac_selftest.c
index fd8189040d12843f83fed03f1d25678257438477..c95e73f347e5806d094898bc285be2d12bc1b993 100644
(file)
--- a/
fips/hmac/fips_hmac_selftest.c
+++ b/
fips/hmac/fips_hmac_selftest.c
@@
-1,5
+1,5
@@
/* ====================================================================
/* ====================================================================
- * Copyright (c) 20
05
The OpenSSL Project. All rights reserved.
+ * Copyright (c) 20
11
The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@
-119,46
+119,59
@@
int FIPS_selftest_hmac()
unsigned char out[EVP_MAX_MD_SIZE];
const EVP_MD *md;
const HMAC_KAT *t;
unsigned char out[EVP_MAX_MD_SIZE];
const EVP_MD *md;
const HMAC_KAT *t;
- int rv =
0, do_corrupt = 0
;
+ int rv =
1, subid
;
HMAC_CTX c;
HMAC_CTX_init(&c);
HMAC_CTX c;
HMAC_CTX_init(&c);
- if (!fips_post_started(FIPS_TEST_HMAC, 0, 0))
- return 1;
- if (!fips_post_corrupt(FIPS_TEST_HMAC, 0, NULL))
- do_corrupt = 1;
for(n=0,t=vector; n<sizeof(vector)/sizeof(vector[0]); n++,t++)
{
md = (*t->alg)();
for(n=0,t=vector; n<sizeof(vector)/sizeof(vector[0]); n++,t++)
{
md = (*t->alg)();
+ subid = M_EVP_MD_type(md);
+ if (!fips_post_started(FIPS_TEST_HMAC, subid, 0))
+ continue;
if (!HMAC_Init_ex(&c, t->key, strlen(t->key), md, NULL))
if (!HMAC_Init_ex(&c, t->key, strlen(t->key), md, NULL))
+ {
+ rv = -1;
goto err;
goto err;
+ }
if (!HMAC_Update(&c, (const unsigned char *)t->iv, strlen(t->iv)))
if (!HMAC_Update(&c, (const unsigned char *)t->iv, strlen(t->iv)))
+ {
+ rv = -1;
goto err;
goto err;
- if (do_corrupt)
+ }
+ if (!fips_post_corrupt(FIPS_TEST_HMAC, subid, NULL))
{
if (!HMAC_Update(&c, (const unsigned char *)t->iv, 1))
{
if (!HMAC_Update(&c, (const unsigned char *)t->iv, 1))
+ {
+ rv = -1;
goto err;
goto err;
+ }
}
if (!HMAC_Final(&c, out, &outlen))
}
if (!HMAC_Final(&c, out, &outlen))
+ {
+ rv = -1;
goto err;
goto err;
+ }
if(memcmp(out,t->kaval,outlen))
{
if(memcmp(out,t->kaval,outlen))
{
-
FIPSerr(FIPS_F_FIPS_SELFTEST_HMAC,FIPS_R_SELFTEST_FAILED
);
-
goto err
;
+
fips_post_failed(FIPS_TEST_HMAC, subid, NULL
);
+
rv = 0
;
}
}
+ else if (!fips_post_success(FIPS_TEST_HMAC, subid, NULL))
+ goto err;
}
}
- rv = 1;
-
err:
HMAC_CTX_cleanup(&c);
err:
HMAC_CTX_cleanup(&c);
- if (rv ==
0
)
+ if (rv ==
-1
)
{
{
- fips_post_failed(FIPS_TEST_HMAC,
0
, NULL);
- r
eturn
0;
+ fips_post_failed(FIPS_TEST_HMAC,
subid
, NULL);
+ r
v =
0;
}
}
- return fips_post_success(FIPS_TEST_HMAC, 0, NULL);
+ if (!rv)
+ FIPSerr(FIPS_F_FIPS_SELFTEST_HMAC,FIPS_R_SELFTEST_FAILED);
+ return rv;
}
#endif
}
#endif