updated FIPS status
[openssl.git] / README.FIPS
1 Preliminary status and build information for FIPS module v2.0
2
3 To build the module do:
4
5 ./config fipscanisterbuild
6 make
7
8 Build should complete without errors.
9
10 Run test suite:
11
12 test/fips_test_suite
13
14 again should complete without errors.
15
16 Run test vectors: 
17
18 1. Download an appropriate set of testvectors from www.openssl.org/docs/fips
19    those for 2007 are OK.
20
21 2. Extract the files to a suitable directory.
22
23 3. Run the test vector perl script, for example:
24
25    cd fips
26    perl fipsalgtest.pl --dir=/wherever/stuff/was/extracted
27
28 4. It should say "passed all tests" at the end. Report full details of any
29    failures.
30
31 Run symbol hiding test:
32
33 ./config fipscanisteronly -DOPENSSL_FIPSSYMS
34 make
35
36 This time only the fips utilities should be built.
37
38 Examine the external symbols in fips/fipscanister.o they should all begin
39 with FIPS or fips. One way to check with GNU nm is:
40
41 nm -g --defined-only fips/fipscanister.o | grep -v -i fips
42
43 Known issues:
44
45 Algorithm tests are pre-2011.
46 The fipslagtest.pl script wont auto run new algorithm tests such as DSA2.
47 Usage of ECDH/DH needs review and whether any KDFs need to be implemented.
48 Selftests need updating with larger key sizes in some cases and redundant
49 tests pruned.
50 SP800-90 DRBG needs more work: check for compliance, continuous PRNG test
51 when entropy gathering, periodic health tests.
52 Some algorithms need to check security strength of PRNG: keygen etc.
53 No CCM.
54 No XTS.
55 The "FIPS capable OpenSSL" is not yet complete: meaning that the rest of
56 OpenSSL doesn't always use the correct FIPS module APIs and block others
57 in FIPS mode.