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

Make null cipher work in FIPS mode.

parent 8394109c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -174,7 +174,7 @@ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *imp
			{
			const EVP_CIPHER *fcipher;
			if (cipher)
				fcipher = FIPS_get_cipherbynid(EVP_CIPHER_type(cipher));
				fcipher = evp_get_fips_cipher(cipher);
			if (fcipher)
				cipher = fcipher;
			return FIPS_cipherinit(ctx, cipher, key, iv, enc);
+10 −1
Original line number Diff line number Diff line
@@ -218,7 +218,7 @@ unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher)
	{
#ifdef OPENSSL_FIPS
	const EVP_CIPHER *fcipher;
	fcipher = FIPS_get_cipherbynid(EVP_CIPHER_type(cipher));
	fcipher = evp_get_fips_cipher(cipher);
	if (fcipher && fcipher->flags & EVP_CIPH_FLAG_FIPS)
		return cipher->flags | EVP_CIPH_FLAG_FIPS;
#endif
@@ -313,6 +313,15 @@ const EVP_MD *evp_get_fips_md(const EVP_MD *md)
	else
		return FIPS_get_digestbynid(nid);
	}

const EVP_CIPHER *evp_get_fips_cipher(const EVP_CIPHER *cipher)
	{
	if (cipher->nid == NID_undef)
		return FIPS_evp_enc_null();
	else
		return FIPS_get_cipherbynid(EVP_CIPHER_type(cipher));
	}

#endif

unsigned long EVP_MD_flags(const EVP_MD *md)
+1 −0
Original line number Diff line number Diff line
@@ -349,6 +349,7 @@ int PKCS5_v2_PBKDF2_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
			     const EVP_CIPHER *c, const EVP_MD *md, int en_de);

const EVP_MD *evp_get_fips_md(const EVP_MD *md);
const EVP_CIPHER *evp_get_fips_cipher(const EVP_CIPHER *cipher);

#ifdef OPENSSL_FIPS