Add length limitation from SP800-38E.
[openssl.git] / README.FIPS
index 5e3b5ab79c7c79a8eab65fabdb2463efdf5559ce..a30adea8c9b540ca85fdde7e77d10339f8e7c8f8 100644 (file)
@@ -28,6 +28,12 @@ Run test vectors:
 4. It should say "passed all tests" at the end. Report full details of any
    failures.
 
+Run:
+
+make clean
+
+to remove any object modules from previous compile.
+
 Run symbol hiding test:
 
 ./config fipscanisteronly -DOPENSSL_FIPSSYMS
@@ -40,14 +46,40 @@ with FIPS or fips. One way to check with GNU nm is:
 
 nm -g --defined-only fips/fipscanister.o | grep -v -i fips
 
+Restricted tarball tests.
+
+The validated module will have its own tarball containing sufficient code to
+build fipscanister.o and the associated algorithm tests. You can create a
+similar tarball yourself for testing purposes using the commands below.
+
+Standard restricted tarball:
+
+make -f Makefile.fips dist
+
+Prime field field only ECC tarball:
+
+make NOEC2M=1 -f Makefile.fips dist
+
+Once you've created the tarball extract into a fresh directory and do:
+
+./config
+make
+
+You can then run the algorithm tests as above. This build automatically uses
+fipscanisteronly and -DOPENSSL_FIPSYMS and no-ec2m as appropriate.
+
 Known issues:
 
 Algorithm tests are pre-2011.
 The fipslagtest.pl script wont auto run new algorithm tests such as DSA2.
-No ECDH.
-No primitives tests for ECDH/DH
+Usage of ECDH/DH needs review and whether any KDFs need to be implemented.
 Selftests need updating with larger key sizes in some cases and redundant
 tests pruned.
-No SP800-90 PRNG.
-No CMAC.
+SP800-90 DRBG needs more work: check for compliance, continuous PRNG test
+when entropy gathering, periodic health tests.
+Some algorithms need to check security strength of PRNG: keygen etc.
 No CCM.
+No XTS.
+The "FIPS capable OpenSSL" is not yet complete: meaning that the rest of
+OpenSSL doesn't always use the correct FIPS module APIs and block others
+in FIPS mode.