fix memory leak
[openssl.git] / README.FIPS
index 2829bf789bd79073eafbf3c835088536742b640e..31fd61c395d19bfa800962f667652be066cb5155 100644 (file)
@@ -1,5 +1,12 @@
 Preliminary status and build information for FIPS module v2.0
 
+NB: if you are cross compiling you now need to use the latest "incore2" script
+from http://www.openssl.org/docs/fips/incore2
+
+If you have any object files from a previous build do:
+
+make clean
+
 To build the module do:
 
 ./config fipscanisterbuild
@@ -28,13 +35,52 @@ 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.
+Code needs extensively reviewing to ensure it builds correctly on 
+supported platforms and is compliant with FIPS 140-2.
+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.