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
