NSSCryptoModuleSpec/Section 9: Self Tests
Note: This is a draft - A work in progress! - Not official.
Document Description |
DTR Section |
Assessment |
Status | ||
---|---|---|---|---|---|
List every error state & error indicator - Document all error states associated with each self-test, and indicate for each error state the expected error indicator. |
VE.09.04.01 |
Failure of any of the power-up, conditional, or operator-initiated self-tests causes the cryptographic module to enter the Error state (State 3 ). When the cryptographic module is in the Error state, most functions (including all the cryptographic functions) do nothing and return the error code
|
Draft | ||
Module in Error State: Ensure that cryptographic operations cannot be performed and all data output via the data output interface is inhibited while the module is in the error state. See VE02.06.01 for the vendor design requirement. |
Power-up self-test: PKCS #11 Initialization: During the PKCS #11 initialization of the FIPS 140-2 module, any error return from the battery of self-tests will put the module in the Error state. The Error state will inhibit further cryptographic operations (In Error State ). Output from the cryptographic module is via two paths: 1) the return code of the cryptographic function and, 2) buffers and objects which are operated on by the function, the locations of which are passed as function arguments. In the Error state the return code is always |
Draft | |||
List and describe the power-up & conditional self-tests performed by the module |
VE.09.07.01 VE.09.13.01 VE.09.16.01 VE.09.18.01 VE.09.18.02 VE.09.19.01 VE.09.19.02 VE.09.20.01 |
The module can perform the following self-tests:
These tests are mandatory for the FIPS 140-2 mode of operation. |
Draft | ||
For each error condition, document the actions neccessary to clear the condition and resume normal operation. |
VE.09.07.02 |
The cryptographic module has only one Error state, which is entered when any self-test fails. The error code |
Draft | ||
Describe automatic initiation of power-up self-tests requires that the running of power-up self-tests not involve any inputs from or actions by the operator. |
VE.09.09.01 |
When the |
Draft | ||
Results of power-up self-tests successful completion indicator for the power-up self-tests. |
VE.09.10.01 |
The |
Draft | ||
Procedure by which an operator can initiate the power-up self-tests on demand |
VE.09.12.01 |
The operator can initiate the power-up self-tests on demand by calling the |
Draft | ||
specify the method used to compare the calculated output with the known answer. |
PORT_Memcmp is used to compare the calculated output with the known answer. sftk_fipsPowerUpSelfTest |
Draft | |||
Error State when two outputs are not equal. |
When the two outputs are not equal, the module enters the Error state (by setting the Boolean state variable |
Draft | |||
Independant cryptographic algorithm implemenations | VE.09.20.02 |
(N/A) The NSS cryptographic module doesn't include two independent implementations of the same cryptographic algorithm. |
Draft | ||
Integrity test for software components |
The Digital Signature Algorithm (DSA) is used as the Approved authentication technique (validation certificate# 172) for the integrity test of the software components. Software that is protected using the digital signatures is the softoken and freebl libraries (e.g., libsoftokn3.so and libfreebl3.so). When the softoken and freebl libraries are built, a DSA public/private key pair is generated, the private key is used to generate a DSA signature of the library, and the public key and signature are stored in a file with the name libraryname.chk. When the self-test is initiated (e.g., at initialization for the FIPS mode), the module verifies the signatures (in the libraryname.chk files) of the softoken and freebl libraries. If the signature verification fails, the self-test fails. FC_Initialize calls nsc_CommonInitialize and then the DSA signature is verified before the library initialization is allowed to proceed.
|
Draft | |||
EDC for software integrity | VE.09.24.01 | (N/A) | |||
Critical Functions |
Random Number Generator Self tests are the Continuous Pseudo-Random Number Self-Tests |
Draft | |||
Key transport method |
RSA encryption is the only FIPS approved key transport method that VE.09.31.01 applies to. See sftk_PairwiseConsistencyCheck The other key transport/establishment methods either use a symmetric wrapping key (encrypting/wrapping with TDES or AES) or require two public/private key pairs (Diffie-Hellman or its elliptic curve variants). |
Draft | |||
Digital signatures |
The sftk_PairwiseConsistencyCheck function of the module tests the pairwise consistency of the public and private keys used for digital signatures by the calculation and verification of a signature. If the signature cannot be verified, the test fails. |
Draft | |||
Approved authentication technique used for the software/firmware load test |
N/A. No software or firmware components can be externally loaded into the cryptographic module. |
Draft | |||
Manual Key Entry |
(N/A) NSS does not implement manual Key entry | ||||
Random number generator is implemented, document the continuous RNG test performed |
Continuous Pseudo-Random Number Self-Tests In this code reference, if the SHA-1 hash matches the previous SHA-1 hash (the odds are 2^160), then the error code SECFailure is returned. This will propogate up to calling functions to put the cryptographic module in critical error state. |
Draft | |||
ByPass Service | (N/A) NSS does not implement a ByPass service. | Draft |
Return to: NSSCryptoModuleSpec