FIPS Update

1. White space changes. Converting tabs to spaces.
2. Add some comments explaining where a loop bound came from.
3. Added parameter checks to a function.
This commit is contained in:
John Safranek
2018-01-12 15:37:22 -08:00
parent d01d255985
commit 862e59f474
2 changed files with 21 additions and 17 deletions

View File

@@ -30,7 +30,7 @@
#ifndef NO_RSA #ifndef NO_RSA
#if defined(HAVE_FIPS) && \ #if defined(HAVE_FIPS) && \
defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION >= 2) defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION >= 2)
/* set NO_WRAPPERS before headers, use direct internal f()s not wrappers */ /* set NO_WRAPPERS before headers, use direct internal f()s not wrappers */
#define FIPS_NO_WRAPPERS #define FIPS_NO_WRAPPERS
@@ -68,7 +68,7 @@ RSA Key Size Configuration:
/* If building for old FIPS. */ /* If building for old FIPS. */
#if defined(HAVE_FIPS) && \ #if defined(HAVE_FIPS) && \
(!defined(HAVE_FIPS_VERSION) || (HAVE_FIPS_VERSION < 2)) (!defined(HAVE_FIPS_VERSION) || (HAVE_FIPS_VERSION < 2))
int wc_InitRsaKey(RsaKey* key, void* ptr) int wc_InitRsaKey(RsaKey* key, void* ptr)
{ {
@@ -119,7 +119,7 @@ int wc_RsaPrivateDecryptInline(byte* in, word32 inLen, byte** out,
int wc_RsaPrivateDecrypt(const byte* in, word32 inLen, byte* out, int wc_RsaPrivateDecrypt(const byte* in, word32 inLen, byte* out,
word32 outLen, RsaKey* key) word32 outLen, RsaKey* key)
{ {
if (in == NULL || out == NULL || key == NULL) { if (in == NULL || out == NULL || key == NULL) {
return BAD_FUNC_ARG; return BAD_FUNC_ARG;
} }
return RsaPrivateDecrypt_fips(in, inLen, out, outLen, key); return RsaPrivateDecrypt_fips(in, inLen, out, outLen, key);
@@ -165,19 +165,19 @@ int wc_RsaEncryptSize(RsaKey* key)
int wc_RsaFlattenPublicKey(RsaKey* key, byte* a, word32* aSz, byte* b, int wc_RsaFlattenPublicKey(RsaKey* key, byte* a, word32* aSz, byte* b,
word32* bSz) word32* bSz)
{ {
/* not specified as fips so not needing _fips */ /* not specified as fips so not needing _fips */
return RsaFlattenPublicKey(key, a, aSz, b, bSz); return RsaFlattenPublicKey(key, a, aSz, b, bSz);
} }
#ifdef WOLFSSL_KEY_GEN #ifdef WOLFSSL_KEY_GEN
int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng) int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
{ {
return MakeRsaKey(key, size, e, rng); return MakeRsaKey(key, size, e, rng);
} }
#endif #endif
@@ -2120,6 +2120,9 @@ static int RsaGetValue(mp_int* in, byte* out, word32* outSz)
word32 sz; word32 sz;
int ret = 0; int ret = 0;
if (in == NULL || out == NULL || outSz == NULL)
return BAD_FUNC_ARG;
sz = (word32)mp_unsigned_bin_size(in); sz = (word32)mp_unsigned_bin_size(in);
if (sz > *outSz) if (sz > *outSz)
ret = RSA_BUFFER_E; ret = RSA_BUFFER_E;
@@ -2339,8 +2342,7 @@ int wc_CheckProbablePrime(const byte* pRaw, word32 pRawSz,
if (ret == MP_OKAY) { if (ret == MP_OKAY) {
if (qRaw != NULL) { if (qRaw != NULL) {
if (ret == MP_OKAY) ret = mp_read_unsigned_bin(&q, qRaw, qRawSz);
ret = mp_read_unsigned_bin(&q, qRaw, qRawSz);
if (ret == MP_OKAY) if (ret == MP_OKAY)
Q = &q; Q = &q;
} }
@@ -2402,6 +2404,8 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
if (err == MP_OKAY) if (err == MP_OKAY)
err = mp_set_int(&tmp3, e); err = mp_set_int(&tmp3, e);
/* The failCount value comes from NIST FIPS 186-4, section B.3.3,
* process steps 4.7 and 5.8. */
failCount = 5 * (size / 2); failCount = 5 * (size / 2);
primeSz = size / 16; /* size is the size of n in bits. primeSz = size / 16; /* size is the size of n in bits.
primeSz is in bytes. */ primeSz is in bytes. */

View File

@@ -7249,7 +7249,7 @@ static int rsa_flatten_test(RsaKey* key)
*/ */
if (ret == 0) if (ret == 0)
#elif defined(HAVE_FIPS) && \ #elif defined(HAVE_FIPS) && \
(!defined(HAVE_FIPS_VERSION) || (HAVE_FIPS_VERSION < 2)) (!defined(HAVE_FIPS_VERSION) || (HAVE_FIPS_VERSION < 2))
if (ret != 0) if (ret != 0)
#else #else
if (ret != RSA_BUFFER_E) if (ret != RSA_BUFFER_E)
@@ -8396,11 +8396,11 @@ int rsa_test(void)
#ifdef WOLFSSL_KEY_GEN #ifdef WOLFSSL_KEY_GEN
{ {
int derSz = 0; int derSz = 0;
int keySz = 1024; int keySz = 1024;
#ifdef HAVE_FIPS #ifdef HAVE_FIPS
keySz = 2048; keySz = 2048;
#endif /* HAVE_FIPS */ #endif /* HAVE_FIPS */
ret = wc_InitRsaKey(&genKey, HEAP_HINT); ret = wc_InitRsaKey(&genKey, HEAP_HINT);
if (ret != 0) { if (ret != 0) {