Section C Table II: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
mNo edit summary |
||
| Line 5: | Line 5: | ||
<th>Description of Service in Terms of Routines</th> | <th>Description of Service in Terms of Routines</th> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<th>Certificate <br> | <th>Certificate<br>Storage and<br>Retrieval</th> | ||
Storage and <br> | <td>This <b>private</b> service consists of <b>six</b> routines used to perform certificate storage and retrieval including SEC_OpenPermCertDB(), | ||
Retrieval</th> | |||
<td>This <b>private</b> service consists of <b>six</b> routines used | |||
to perform certificate storage and retrieval including SEC_OpenPermCertDB(), | |||
AddCertToPermDB(), SEC_TraversePermCerts(), SEC_FindPermCertByKey(), SEC_DeletePermCertificate(), and CERT_ClosePermCertDB().</td> | AddCertToPermDB(), SEC_TraversePermCerts(), SEC_FindPermCertByKey(), SEC_DeletePermCertificate(), and CERT_ClosePermCertDB().</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<th>Digital <br> | <th>Digital<br>Signatures</th> | ||
<td>This <b>private</b> service consists of the <b>one</b> routine used to perform DSA signature generation, DSA_SignDigest(), and the <b>one</b> routine used to perform DSA signature verification, DSA_VerifyDigest(). This service also consists of the <b>three</b> routines used for RSA signature generation, verification, and entity association: RSA_Sign(), RSA_CheckSign(), and RSA_CheckSignRecover(), and the <b>three</b> raw routines used for RSA signature generation, verification, and entity association: RSA_SignRaw(), | |||
Signatures</th> | RSA_CheckSignRaw(), and RSA_CheckSignRecoverRaw(). In general, the key generation service must be invoked prior to invoking this service.</td> | ||
<td>This <b>private</b> service consists of the <b>one</b> routine used to perform DSA signature generation, DSA_SignDigest(), and the <b>one</b> routine used to perform DSA signature verification, DSA_VerifyDigest(). This service also consists of the <b>three</b> routines used for RSA signature | |||
generation, verification, and entity association: RSA_Sign(), RSA_CheckSign(), | |||
and RSA_CheckSignRecover(), and the <b>three</b> raw routines used for | |||
RSA signature generation, verification, and entity association: RSA_SignRaw(), | |||
RSA_CheckSignRaw(), and RSA_CheckSignRecoverRaw(). In general, the key | |||
generation service must be invoked prior to invoking this service.</td> | |||
</tr> | </tr> | ||
| Line 33: | Line 26: | ||
<tr> | <tr> | ||
<th>Hashing</th> | <th>Hashing</th> | ||
<td>This <b>public</b> service consists of the <b>eight</b> routines | <td>This <b>public</b> service consists of the <b>eight</b> routines used to perform SHA-1 hashing including SHA1_NewContext(), SHA1_CloneContext(), SHA1_Begin(), SHA1_Update(), SHA1_End(), SHA1_HashBuf(), SHA1_Hash(), and | ||
used to perform SHA-1 hashing including SHA1_NewContext(), SHA1_CloneContext(), | |||
SHA1_Begin(), SHA1_Update(), SHA1_End(), SHA1_HashBuf(), SHA1_Hash(), and | |||
SHA1_DestroyContext().</td> | SHA1_DestroyContext().</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<th>Key <br> | <th>Key<br>Generation</th> | ||
Generation</th> | |||
<td>This <b>private</b> service is utilized to perform key generation and consists of the <b>six</b> routines used to perform DSA key generation including PQGParamGen(), PQG_ParamGenSeedLen(), PQG_VerifyParams(), DSA_CreateKeyGenContext(), DSA_NewKey(), and DSA_NewKeyFromSeed(), and the b>one</b> routine used for RSA private key generation called RSA_NewKey() (only used for entity association in public key exchange). When RSA_NewKey() is used in public key exchange between two parties, the Pairwise Consistency Test requires routines to check this symmetric algorithm. These consist of <b>two</b> routines used for entity association which include RSA_EncryptBlock(), and RSA_DecryptBlock(), and <b>two</b> raw routines used for entity association which include RSA_EncryptRaw(), and RSA_DecryptRaw().</td> | <td>This <b>private</b> service is utilized to perform key generation and consists of the <b>six</b> routines used to perform DSA key generation including PQGParamGen(), PQG_ParamGenSeedLen(), PQG_VerifyParams(), DSA_CreateKeyGenContext(), DSA_NewKey(), and DSA_NewKeyFromSeed(), and the b>one</b> routine used for RSA private key generation called RSA_NewKey() (only used for entity association in public key exchange). When RSA_NewKey() is used in public key exchange between two parties, the Pairwise Consistency Test requires routines to check this symmetric algorithm. These consist of <b>two</b> routines used for entity association which include RSA_EncryptBlock(), and RSA_DecryptBlock(), and <b>two</b> raw routines used for entity association which include RSA_EncryptRaw(), and RSA_DecryptRaw().</td> | ||
</tr> | |||
<tr> | <tr> | ||
<th>PKCS #5 <br> | <th>PKCS #5<br>Password-Based<br>Encryption</th> | ||
Password-Based <br> | |||
Encryption</th> | |||
<td>The PKCS #5 API specifies a standard interface based upon the PKCS #5 standard which allows this <b>private</b> service to be used to perform password-based encryption and consists of the <b>five</b> routines including SEC_PKCS5GetSalt(), SEC_PKCS5GetIV(), SEC_PKCS5GetKey(), SEC_PKCS5CipherData(), and SEC_PKCS5CreateAlgorithmID().</td> | <td>The PKCS #5 API specifies a standard interface based upon the PKCS #5 standard which allows this <b>private</b> service to be used to perform password-based encryption and consists of the <b>five</b> routines including SEC_PKCS5GetSalt(), SEC_PKCS5GetIV(), SEC_PKCS5GetKey(), SEC_PKCS5CipherData(), and SEC_PKCS5CreateAlgorithmID().</td> | ||
</tr> | </tr> | ||
| Line 63: | Line 51: | ||
<td valign="Top" width="54%"><b><font face="Palatino"><font size="-1"> | <td valign="Top" width="54%"><b><font face="Palatino"><font size="-1"> | ||
Description</font></font></b></td> | Description</font></font></b></td> | ||
</tr> | |||
<tr> | <tr> | ||
<td valign="Top" width="20%"><font face="Palatino"><font size="-1"> FIPS PUB 140-2</font></font> <br> | <td valign="Top" width="20%"><font face="Palatino"><font size="-1"> FIPS PUB 140-2</font></font> <br> | ||
| Line 72: | Line 60: | ||
<td valign="Top" width="54%"><font face="Palatino"><font size="-1"> Return the list of FIPS PUB 140-1 functions</font></font></td> | <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> Return the list of FIPS PUB 140-1 functions</font></font></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td valign="Top" rowspan="3" width="20%"><font face="Palatino"><font size="-1"> | <td valign="Top" rowspan="3" width="20%"><font face="Palatino"><font size="-1"> | ||
General</font></font> <br> | General</font></font><br><font face="Palatino"><font size="-1">purpose</font></font></td> | ||
<font face="Palatino"><font size="-1">purpose</font></font></td> | |||
<td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | ||
| Line 81: | Line 69: | ||
<td valign="Top" width="54%"><font face="Palatino"><font size="-1"> initializes Cryptoki</font></font></td> | <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> initializes Cryptoki</font></font></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td valign="Top" width="26%"><font face="Palatino"><font size="-1"> FC_Finalize</font></font></td> | <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> FC_Finalize</font></font></td> | ||
| Line 86: | Line 75: | ||
<td valign="Top" width="54%"><font face="Palatino"><font size="-1"> finalizes Cryptoki (1.1)</font></font></td> | <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> finalizes Cryptoki (1.1)</font></font></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td valign="Top" width="26%"><font face="Palatino"><font size="-1"> FC_GetInfo</font></font></td> | <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> FC_GetInfo</font></font></td> | ||
<td valign="Top" width="54%"><font face="Palatino"><font size="-1"> obtains general information about Cryptoki</font></font></td> | <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> obtains general information about Cryptoki</font></font></td> | ||
</tr> | |||
<tr> | <tr> | ||
<td valign="Top" rowspan="8" width="20%"><font face="Palatino"><font size="-1"> Slot and</font></font> <br> | <td valign="Top" rowspan="8" width="20%"><font face="Palatino"><font size="-1"> Slot and</font></font><br><font face="Palatino"><font size="-1">token</font></font><br><font face="Palatino"><font size="-1">management</font></font></td> | ||
<font face="Palatino"><font size="-1">token</font></font><br> | |||
<font face="Palatino"><font size="-1">management</font></font></td> | |||
<td valign="Top" width="26%"><font face="Palatino"><font size="-1"> FC_GetSlotList</font></font></td> | <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> FC_GetSlotList</font></font></td> | ||
| Line 198: | Line 186: | ||
FC_CopyObject</font></font></td> | FC_CopyObject</font></font></td> | ||
<td valign="Top" width="54%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> creates a copy of an object</font></font></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> FC_DestroyObject</font></font></td> | ||
FC_DestroyObject</font></font></td> | <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> destroys an object</font></font></td> | ||
<td valign="Top" width="54%"><font face="Palatino"><font size="-1"> | |||
</tr> | </tr> | ||
| Line 307: | Line 292: | ||
<tr> | <tr> | ||
<td valign="Top" rowspan="5" width="20%"><font face="Palatino"><font size="-1"> | <td valign="Top" rowspan="5" width="20%"><font face="Palatino"><font size="-1"> | ||
Message</font></font> | Message</font></font> <font face="Palatino"><br><font size="-1">digesting</font></font></td> | ||
<font face="Palatino"><font size="-1">digesting</font></font></td> | |||
<td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | ||
| Line 330: | Line 314: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | ||
FC_DigestKey</font></font></td> | FC_DigestKey</font></font></td> | ||
<td valign="Top" width="54%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> continues a multi-part message-digesting operation by digesting the value of a secret key as part of the data already digested (1.1)</font></font></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
| Line 340: | Line 322: | ||
<td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | ||
FC_DigestFinal</font></font></td> | FC_DigestFinal</font></font></td> | ||
<td valign="Top" width="54%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> finishes a multiple-part digesting operation</font></font></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td valign="Top" rowspan="12" width="20%"><font face="Palatino"><font size="-1"> | <td valign="Top" rowspan="12" width="20%"><font face="Palatino"><font size="-1"> | ||
Signature</font></font><br><font face="Palatino"><font size="-1">and</font></font><br><font face="Palatino"><font size="-1">verification</font></font></td> | |||
<td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | ||
FC_SignInit</font></font></td> | FC_SignInit</font></font></td> | ||
<td valign="Top" width="54%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="54%"><font face="Palatino"><font size="-1">initializes a signature operation</font></font></td> | ||
</tr> | </tr> | ||
| Line 369: | Line 346: | ||
continues a multiple-part signature operation</font></font></td> | continues a multiple-part signature operation</font></font></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | ||
| Line 379: | Line 357: | ||
<td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | ||
FC_SignRecoverInit</font></font></td> | FC_SignRecoverInit</font></font></td> | ||
<td valign="Top" width="54%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> initializes a signature operation, where the data can be recovered from the signature</font></font></td> | ||
</tr> | </tr> | ||
| Line 417: | Line 393: | ||
finishes a multiple-part verification operation</font></font></td> | finishes a multiple-part verification operation</font></font></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | ||
FC_VerifyRecoverInit</font></font></td> | FC_VerifyRecoverInit</font></font></td> | ||
<td valign="Top" width="54%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="54%"><font face="Palatino"><font size="-1">initializes a verification operation where the data is recovered from the signature</font></font></td> | ||
the signature</font></font></td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="26%"><font face="Palatino"><font size="-1">FC_VerifyRecover</font></font></td> | ||
<td valign="Top" width="54%"><font face="Palatino"><font size="-1"> verifies a signature on single-part data, where the data is recovered | |||
<td valign="Top" width="54%"><font face="Palatino"><font size="-1"> | |||
from the signature</font></font></td> | from the signature</font></font></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td valign="Top" rowspan="4" width="20%"><font face="Palatino"><font size="-1"> | <td valign="Top" rowspan="4" width="20%"><font face="Palatino"><font size="-1">Dual-function</font></font><br> | ||
<font face="Palatino"><font size="-1">cryptographic</font></font><br> | |||
<font face="Palatino"><font size="-1">cryptographic</font></font> | <font face="Palatino"><font size="-1">operations</font></font></td> | ||
<td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | ||
FC_DigestEncryptUpdate</font></font></td> | FC_DigestEncryptUpdate</font></font></td> | ||
<td valign="Top" width="54%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> continues a multiple-part digesting and encryption operation (1.1)</font></font></td> | ||
</tr> | </tr> | ||
| Line 452: | Line 422: | ||
continues a multiple-part decryption and digesting operation (1.1)</font></font></td> | continues a multiple-part decryption and digesting operation (1.1)</font></font></td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | ||
| Line 467: | Line 438: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td valign="Top" rowspan="5" width="20%"><font face="Palatino"><font size="-1"> | <td valign="Top" rowspan="5" width="20%"><font face="Palatino"><font size="-1">Key</font></font><br> | ||
<font face="Palatino"><font size="-1">management</font></font></td> | <font face="Palatino"><font size="-1">management</font></font></td> | ||
| Line 504: | Line 474: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td valign="Top" rowspan="2" width="20%"><font face="Palatino"><font size="-1"> | <td valign="Top" rowspan="2" width="20%"><font face="Palatino"><font size="-1">Random number</font></font><br> | ||
<font face="Palatino"><font size="-1">generation</font></font></td> | |||
<td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> | ||
FC_SeedRandom</font></font></td> | FC_SeedRandom</font></font></td> | ||
| Line 553: | Line 522: | ||
<tr> | <tr> | ||
<th>PKCS #12 <br> | <th>PKCS #12<br>Personal<br>Information<br>Exchange</th> | ||
<td>The PKCS #12 API will specify a standard interface based upon | <td>The PKCS #12 API will specify a standard interface based upon | ||
the forthcoming PKCS #12 standard which allows this <b>private</b> service | the forthcoming PKCS #12 standard which allows this <b>private</b> service | ||
to be used to exchange data such as private keys and certificates between | to be used to exchange data such as private keys and certificates between | ||
two parties and consists of the <b>eight</b> routines including SEC_PKCS12CreateExportContext, | two parties and consists of the <b>eight</b> routines including SEC_PKCS12CreateExportContext, SEC_PKCS12CreatePasswordPrivSafe(), SEC_PKCS12AddCertAndKey(), SEC_PKCS12Encode(), SEC_PKCS12DestroyExportContext(), SEC_PKCS12DecoderStart(), SEC_PKCS12DecoderUpdate(), and SEC_PKCS12DecoderFinish().</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<th>Prime <br> | <th>Prime<br>Number<br>Generation</th> | ||
<td>This <b>public</b> service consists of the <b>two</b> routines used for generating a prime number including mpp_make_prime() and mpp_pprime().</td> | |||
<td>This <b>public</b> service consists of the <b>two</b> routines | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<th>Private Key <br> | <th>Private Key<br>Storage and <br>Retrieval</th> | ||
<td>This <b>private</b> service is utilized to perform private key storage and retrieval and consists of the <b>seven</b> routines including SECKEY_OpenKeyDB(), SECKEY_TraverseKeys(), SECKEY_UpdateKeyDBPass1() SECKEY_UpdateKeyDBPass2(), SECKEY_FindKeyByPublicKey(), SECKEY_DeleteKey(), and SECKEY_CloseKeyDB().</td> | |||
<td>This <b>private</b> service is utilized to perform private key | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<th>Pseudorandom <br> | <th>Pseudorandom<br>Number <br>Generation</th> | ||
<td>This <b>public</b> service consists of the <b>four</b> routines used for global pseudorandom number generation including RNG_RNGInit(), RNG_GenerateGlobalRandomBytes(), RNG_RandomUpdate(), and RNG_RNGShutdown(), and the <b>three</b> routines used for seeding pseudorandom number generation including RNG_GetNoise(), RNG_SystemInfoForRNG(), and RNG_FileForRNG(). A continuous pseudorandom number generator test is performed whenever a new | |||
<td>This <b>public</b> service consists of the <b>four</b> routines | |||
A continuous pseudorandom number generator test is performed whenever a new | |||
pseudorandom number is generated.</td> | pseudorandom number is generated.</td> | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<th>SSL Session ID <br> | <th>SSL Session ID<br> Cache <br>(Secret<br>Management)</th> | ||
<td>This <b>public</b> service consists of the <b>five</b> routines used to perform session ID cache management including SSL_ConfigServerSessionIDCache(), ssl_FreeSID(), ssl_LookupSID(), ssl_ChooseSessionIDProcs(), and SSL_ClearSessionCache().</td> | |||
<td>This <b>public</b> service consists of the <b>five</b> routines | |||
ssl_FreeSID(), ssl_LookupSID(), ssl_ChooseSessionIDProcs(), and SSL_ClearSessionCache().</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td><b>TLS pseudorandom function (PRF)</b></td> | <td><b>TLS pseudorandom function (PRF)</b></td> | ||
<td>TLS pseudorandom function (PRF) is utilized by SSL 3.0 protocol | |||
<td>TLS pseudorandom function (PRF) is utilized by SSL 3.0 protocol to produce FIPS 140-1 compliant hashes of security relevant data items [pre-master secret]. See <a href="../sslchanges/index.html">SSL changes in Security Module 1.01</a> | |||
Module 1.01</a> | |||
for full details.</td> | for full details.</td> | ||
</tr> | </tr> | ||
Revision as of 21:42, 12 April 2006
</tbody>
| Name of Service | Description of Service in Terms of Routines | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Certificate Storage and Retrieval |
This private service consists of six routines used to perform certificate storage and retrieval including SEC_OpenPermCertDB(), AddCertToPermDB(), SEC_TraversePermCerts(), SEC_FindPermCertByKey(), SEC_DeletePermCertificate(), and CERT_ClosePermCertDB(). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Digital Signatures |
This private service consists of the one routine used to perform DSA signature generation, DSA_SignDigest(), and the one routine used to perform DSA signature verification, DSA_VerifyDigest(). This service also consists of the three routines used for RSA signature generation, verification, and entity association: RSA_Sign(), RSA_CheckSign(), and RSA_CheckSignRecover(), and the three raw routines used for RSA signature generation, verification, and entity association: RSA_SignRaw(), RSA_CheckSignRaw(), and RSA_CheckSignRecoverRaw(). In general, the key generation service must be invoked prior to invoking this service. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Encryption/ Decryption |
This private service consists of the four routines used to perform DES Encryption/Decryption including DES_CreateContext(), DES_Encrypt(), DES_Decrypt(), and DES_DestroyContext(). Single-key DES service is provided by using the NSS_DES and NSS_DES_CBC modes with DES_CreateContext(). Triple-DES service is provided by using the NSS_DES_EDE3 and NSS_DES_EDE3_CBC modes with DES_CreateContext(). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Hashing | This public service consists of the eight routines used to perform SHA-1 hashing including SHA1_NewContext(), SHA1_CloneContext(), SHA1_Begin(), SHA1_Update(), SHA1_End(), SHA1_HashBuf(), SHA1_Hash(), and SHA1_DestroyContext(). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Key Generation |
This private service is utilized to perform key generation and consists of the six routines used to perform DSA key generation including PQGParamGen(), PQG_ParamGenSeedLen(), PQG_VerifyParams(), DSA_CreateKeyGenContext(), DSA_NewKey(), and DSA_NewKeyFromSeed(), and the b>one routine used for RSA private key generation called RSA_NewKey() (only used for entity association in public key exchange). When RSA_NewKey() is used in public key exchange between two parties, the Pairwise Consistency Test requires routines to check this symmetric algorithm. These consist of two routines used for entity association which include RSA_EncryptBlock(), and RSA_DecryptBlock(), and two raw routines used for entity association which include RSA_EncryptRaw(), and RSA_DecryptRaw(). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PKCS #5 Password-Based Encryption |
The PKCS #5 API specifies a standard interface based upon the PKCS #5 standard which allows this private service to be used to perform password-based encryption and consists of the five routines including SEC_PKCS5GetSalt(), SEC_PKCS5GetIV(), SEC_PKCS5GetKey(), SEC_PKCS5CipherData(), and SEC_PKCS5CreateAlgorithmID(). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PKCS #11 | The PKCS #11 API specifies a standard interface based upon the PKCS #11 standard which allows for the selection of a FIPS PUB 140-1 mode of operation that provides both public and private services as well as a means of authentication into all private services, creates and maintains entry points for all FIPS PUB 140-1 specific routines including pk11_fipsPowerUpSelfTest() at initialization as well as on demand for subsequent logins, and enforces a pairwise consistency check on all key generation algorithms. NSS's FIPS PUB 140-1 PKCS #11 implementation defines the following standard crypto API:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PKCS #12 Personal Information Exchange |
The PKCS #12 API will specify a standard interface based upon
the forthcoming PKCS #12 standard which allows this private service to be used to exchange data such as private keys and certificates between two parties and consists of the eight routines including SEC_PKCS12CreateExportContext, SEC_PKCS12CreatePasswordPrivSafe(), SEC_PKCS12AddCertAndKey(), SEC_PKCS12Encode(), SEC_PKCS12DestroyExportContext(), SEC_PKCS12DecoderStart(), SEC_PKCS12DecoderUpdate(), and SEC_PKCS12DecoderFinish(). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Prime Number Generation |
This public service consists of the two routines used for generating a prime number including mpp_make_prime() and mpp_pprime(). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Private Key Storage and Retrieval |
This private service is utilized to perform private key storage and retrieval and consists of the seven routines including SECKEY_OpenKeyDB(), SECKEY_TraverseKeys(), SECKEY_UpdateKeyDBPass1() SECKEY_UpdateKeyDBPass2(), SECKEY_FindKeyByPublicKey(), SECKEY_DeleteKey(), and SECKEY_CloseKeyDB(). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Pseudorandom Number Generation |
This public service consists of the four routines used for global pseudorandom number generation including RNG_RNGInit(), RNG_GenerateGlobalRandomBytes(), RNG_RandomUpdate(), and RNG_RNGShutdown(), and the three routines used for seeding pseudorandom number generation including RNG_GetNoise(), RNG_SystemInfoForRNG(), and RNG_FileForRNG(). A continuous pseudorandom number generator test is performed whenever a new pseudorandom number is generated. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| SSL Session ID Cache (Secret Management) |
This public service consists of the five routines used to perform session ID cache management including SSL_ConfigServerSessionIDCache(), ssl_FreeSID(), ssl_LookupSID(), ssl_ChooseSessionIDProcs(), and SSL_ClearSessionCache(). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| TLS pseudorandom function (PRF) | TLS pseudorandom function (PRF) is utilized by SSL 3.0 protocol to produce FIPS 140-1 compliant hashes of security relevant data items [pre-master secret]. See <a href="../sslchanges/index.html">SSL changes in Security Module 1.01</a> for full details. |