I want to use the cipher suite, TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA, for openssl in fips mode and I wan't to know the details for this.
Looking at the source code in openssl 1.0.2k, I see it has the parameterss3_lib.c
:
/* Cipher C014 */
{
1,
TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA,
TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA,
SSL_kEECDH,
SSL_aRSA,
SSL_AES256,
SSL_SHA1,
SSL_TLSV1,
SSL_NOT_EXP | SSL_HIGH | SSL_FIPS,
SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF,
256,
256,
},
What I do not understand is that it uses SSL_kEECDH, for key exchange. My question is what eliptic curve it uses and what is the key size ? I plan on using RSA 4096.
EDIT
Looking at openssl source code, in file t1_lib.c
, I see the suite B mention, but this is for GCM mode, so if I use prime256v1 or secp384r1 for CBC these primes should also be FIPS 140-2 approved ?
if (tls1_suiteb(s)) {
/*
* For Suite B ciphersuite determines curve: we already know
* these are acceptable due to previous checks.
*/
unsigned long cid = s->s3->tmp.new_cipher->id;
if (cid == TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256)
return NID_X9_62_prime256v1; /* P-256 */
if (cid == TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384)
return NID_secp384r1; /* P-384 */
/* Should never happen */
return NID_undef;
}