Merge pull request #821 from SparkiDev/wpas_fips

FIPS changes and fixups for wpa_supplicant
This commit is contained in:
toddouska
2017-04-03 08:27:25 -07:00
committed by GitHub
3 changed files with 36 additions and 8 deletions

View File

@@ -342,7 +342,8 @@ if test "$ENABLED_WPAS" = "yes"
then then
AM_CFLAGS="$AM_CFLAGS -DHAVE_SECRET_CALLBACK -DWOLFSSL_STATIC_RSA" AM_CFLAGS="$AM_CFLAGS -DHAVE_SECRET_CALLBACK -DWOLFSSL_STATIC_RSA"
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_PUBLIC_MP -DWOLFSSL_PUBLIC_ECC_ADD_DBL" AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_PUBLIC_MP -DWOLFSSL_PUBLIC_ECC_ADD_DBL"
AM_CFLAGS="$AM_CFLAGS -DATOMIC_USER" AM_CFLAGS="$AM_CFLAGS -DATOMIC_USER -DHAVE_EX_DATA -DWOLFSSL_KEEP_PEER_CERT"
AM_CFLAGS="$AM_CFLAGS -DHAVE_EXT_CACHE"
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_WPAS" AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_WPAS"
fi fi
@@ -361,7 +362,7 @@ fi
if test "$ENABLED_FORTRESS" = "yes" if test "$ENABLED_FORTRESS" = "yes"
then then
AM_CFLAGS="$AM_CFLAGS -DFORTRESS -DWOLFSSL_ALWAYS_VERIFY_CB -DOPENSSL_EXTRA -DWOLFSSL_DES_ECB -DWOLFSSL_AES_COUNTER -DWOLFSSL_AES_DIRECT -DWOLFSSL_DER_LOAD -DWOLFSSL_SHA512 -DWOLFSSL_SHA384 -DWOLFSSL_KEY_GEN" AM_CFLAGS="$AM_CFLAGS -DFORTRESS -DWOLFSSL_ALWAYS_VERIFY_CB -DOPENSSL_EXTRA -DWOLFSSL_AES_COUNTER -DWOLFSSL_AES_DIRECT -DWOLFSSL_DER_LOAD -DWOLFSSL_SHA512 -DWOLFSSL_SHA384 -DWOLFSSL_KEY_GEN"
fi fi
@@ -1578,6 +1579,11 @@ then
ENABLED_DES3="yes" ENABLED_DES3="yes"
fi fi
AM_CFLAGS="$AM_CFLAGS -DHAVE_FIPS" AM_CFLAGS="$AM_CFLAGS -DHAVE_FIPS"
else
if test "x$ENABLED_FORTRESS" = "xyes"
then
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_DES_ECB"
fi
fi fi
AM_CONDITIONAL([BUILD_FIPS], [test "x$ENABLED_FIPS" = "xyes"]) AM_CONDITIONAL([BUILD_FIPS], [test "x$ENABLED_FIPS" = "xyes"])
@@ -3002,7 +3008,7 @@ AC_ARG_ENABLE([aeskeywrap],
[ ENABLED_AESKEYWRAP=no ] [ ENABLED_AESKEYWRAP=no ]
) )
if test "$ENABLED_WPAS" = "yes" if test "$ENABLED_WPAS" = "yes" && test "$ENABLED_FIPS" = "no"
then then
ENABLED_AESKEYWRAP="yes" ENABLED_AESKEYWRAP="yes"
fi fi

View File

@@ -7201,7 +7201,10 @@ static int DoCertificate(WOLFSSL* ssl, byte* input, word32* inOutIdx,
store->certs = certs; store->certs = certs;
store->totalCerts = totalCerts; store->totalCerts = totalCerts;
#ifdef KEEP_PEER_CERT #ifdef KEEP_PEER_CERT
store->current_cert = &ssl->peerCert; if (ssl->peerCert.subject.sz > 0)
store->current_cert = &ssl->peerCert;
else
store->current_cert = NULL;
#else #else
store->current_cert = NULL; store->current_cert = NULL;
#endif #endif
@@ -7244,7 +7247,10 @@ static int DoCertificate(WOLFSSL* ssl, byte* input, word32* inOutIdx,
store->certs = certs; store->certs = certs;
store->totalCerts = totalCerts; store->totalCerts = totalCerts;
#ifdef KEEP_PEER_CERT #ifdef KEEP_PEER_CERT
store->current_cert = &ssl->peerCert; if (ssl->peerCert.subject.sz > 0)
store->current_cert = &ssl->peerCert;
else
store->current_cert = NULL;
#endif #endif
store->ex_data = ssl; store->ex_data = ssl;

View File

@@ -10244,7 +10244,7 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
WOLFSSL_X509_STORE_CTX* ctx) WOLFSSL_X509_STORE_CTX* ctx)
{ {
WOLFSSL_ENTER("wolfSSL_X509_STORE_CTX_get_current_cert"); WOLFSSL_ENTER("wolfSSL_X509_STORE_CTX_get_current_cert");
if(ctx) if (ctx)
return ctx->current_cert; return ctx->current_cert;
return NULL; return NULL;
} }
@@ -12431,6 +12431,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
#ifdef KEEP_PEER_CERT #ifdef KEEP_PEER_CERT
FreeX509(&ssl->peerCert); FreeX509(&ssl->peerCert);
InitX509(&ssl->peerCert, 0, ssl->heap);
#endif #endif
return SSL_SUCCESS; return SSL_SUCCESS;
@@ -13703,8 +13704,23 @@ int wolfSSL_set_session_id_context(WOLFSSL* ssl, const unsigned char* id,
void wolfSSL_set_connect_state(WOLFSSL* ssl) void wolfSSL_set_connect_state(WOLFSSL* ssl)
{ {
(void)ssl; word16 haveRSA = 1;
/* client by default */ word16 havePSK = 0;
if (ssl->options.side == WOLFSSL_SERVER_END) {
ssl->options.side = WOLFSSL_CLIENT_END;
#ifdef NO_RSA
haveRSA = 0;
#endif
#ifndef NO_PSK
havePSK = ssl->options.havePSK;
#endif
InitSuites(ssl->suites, ssl->version, haveRSA, havePSK,
ssl->options.haveDH, ssl->options.haveNTRU,
ssl->options.haveECDSAsig, ssl->options.haveECC,
ssl->options.haveStaticECC, ssl->options.side);
}
} }
#endif #endif