The commandline utilities including apps/genrsa.c are in the “FIPS-capable” 
OpenSSL,

not in the FIPS module, and so should work the same as non-FIPS; the output of 
genrsa 

is ‘classic’ (PKCS#1) format. genpkey, since 1.0.0, is PKCS#8.

 

I don’t think there is any FIPS-related standard for storage outside the 
boundary,

since the whole concern of 140 is what is inside the boundary. Certainly for 
the spirit 

if not the letter ANY external key storage must be encrypted “well enough”, 
which 

in OpenSSL means either PKCS#1 encrypted or PKCS#8 encrypted or PKCS#12,

with approved algorithms and a strong enough password. I expect, but didn’t 
test,

that FIPS mode will disable unapproved ciphers and KDFs (e.g. RC4 or MD5).

 

In all versions you can convert PKCS#1 to PKCS#8 with ‘pkcs8 –topk8’,

and since 1.0.0 with ‘pkey’. You can convert back with ‘rsa’ in all versions, 

and ‘pkcs8’ before 1.0.0. Applications using PEM_read_*PrivateKey 

in any version should read either PKCS#1 or PKCS#8. 

(But in FIPS mode only if they use approved algorithms.)

If using DER formats it depends which exact routine is called – and 

DER PKCS#1 can’t be encrypted, which would be an issue as above.

 

 

From:  <mailto:[email protected]> [email protected] [ 
<mailto:[email protected]> mailto:[email protected]] On 
Behalf Of srikanth chakravarthula
Sent: Saturday, April 26, 2014 11:43
To:  <mailto:[email protected]> [email protected]
Subject: *** Spam *** OpenSSL FIPS RSA Key Format

 

Hi,

 

In which format (pcks8/ssleay) the rsa key (genrsa command) generated when 
openssl is in fips mode. And which is the fips approved format. Can we convert 
a pcks8 to ssleay format and how can we make it compatible to work on non fips 
mode openssl when using pkcs8 format.

 

Thanks,

SKanth

 

 

 

Reply via email to