X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=README.FIPS;h=a30adea8c9b540ca85fdde7e77d10339f8e7c8f8;hp=2829bf789bd79073eafbf3c835088536742b640e;hb=45321c41e2108a14bfe2f185e15f946dc20e9b19;hpb=5eedacc904c0203f30163094d9ede9d091c32d42 diff --git a/README.FIPS b/README.FIPS index 2829bf789b..a30adea8c9 100644 --- a/README.FIPS +++ b/README.FIPS @@ -28,13 +28,58 @@ 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 +make + +This time only the fips utilities should be built. + +Examine the external symbols in fips/fipscanister.o they should all begin +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: -No Windows support. Algorithm tests are pre-2011. -No SP800-90 PRNG. -No ECDSA2 support. -No DSA2 support: work in progress. -No GCM. -No CMAC. +The fipslagtest.pl script wont auto run new algorithm tests such as DSA2. +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. +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.