|
|
| Line 148: |
Line 148: |
| In each of the following services, since there is only one role, the user has access to '''ALL''' the services mediated by the application (for both client and server products). Routines have been specified for each service and denoted whether or not they are '''public''', meaning that they require no authentication to utilize, or '''private''', meaning that authentication must be provided prior to the routine being utilized. This model allows a type of '''safety state''' by allowing a NSS user to logout (thus disallowing any access to private services) without ending the session, and then log back in to re-authenticate private services rendered by the cryptographic module. All public and private services are listed in the following table: | | In each of the following services, since there is only one role, the user has access to '''ALL''' the services mediated by the application (for both client and server products). Routines have been specified for each service and denoted whether or not they are '''public''', meaning that they require no authentication to utilize, or '''private''', meaning that authentication must be provided prior to the routine being utilized. This model allows a type of '''safety state''' by allowing a NSS user to logout (thus disallowing any access to private services) without ending the session, and then log back in to re-authenticate private services rendered by the cryptographic module. All public and private services are listed in the following table: |
|
| |
|
| | [http://wiki.mozilla.org/Section_C_Table_II Table II. Services ] |
|
| |
|
| <table border="1">
| | ==Bypass Capabilities== |
| <caption><b>Table II. Services</b></caption> <tbody>
| | This section is applicable when NSS is invoked in FIPS mode. |
|
| |
|
| <tr>
| | ==Access Control Policy== |
| <th>Name of Service</th>
| | The access control policy enforced by the cryptographic module must be sufficiently precise, and of sufficient detail to allow the operator and testers to know what security relevant data items the operator has access to while performing a service, and the modes of access he or she has to these data items. Also, the testers and operator must be able to know if and how the kinds of data items accessible changes when the service is invoked from each role in which it can be invoked. |
| <th>Description of Service in Terms of Routines</th>
| |
| </tr>
| |
| <tr>
| |
| <th>Certificate <br>
| |
| Storage and <br>
| |
| 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>
| |
| </tr>
| |
| <tr>
| |
| <th>Digital <br>
| |
|
| |
|
| Signatures</th>
| | === Security Relevant Data Items === |
| <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
| | Security relevant data items consist of data types used for Certificate Storage and Retrieval, Digital Signatures, Encryption/Decryption, Generic Containers, Hashing, Key Generation, PKCS #5 Password-Based Encryption, PKCS #12 Personal Information Exchange, Private Key Storage and Retrieval, Pseudorandom Number Generation, and SSL Session ID Cache (Secret Management). |
| 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>
| | All security relevant data items are identified by category, type, name, and description in the following table: |
| <tr>
| |
| <th>Encryption/ <br>
| |
| Decryption</th>
| |
| <td>This <b>private</b> service consists of the <b>four</b> 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().</td>
| |
|
| |
|
| </tr>
| | [http://wiki.mozilla.org/Section_C_Table_III Table III. Security Data Items ] |
| <tr>
| |
| <th>Hashing</th>
| |
| <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
| |
| SHA1_DestroyContext().</td>
| |
| </tr>
| |
|
| |
|
| <tr>
| | === Service Relationships to Security Relevant Data Items Matrix === |
| <th>Key <br>
| |
| 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>
| |
|
| |
|
| </tr>
| | [http://wiki.mozilla.org/Section_C_Table_IV Table IV. Service Relationships ] |
| <tr>
| |
| <th>PKCS #5 <br>
| |
| 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>
| |
| </tr>
| |
| <tr>
| |
| <th>PKCS #11</th>
| |
| <td>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 <b>public</b> and <b>private</b> services as well as a means of authentication into all <b>private</b> 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:
| |
| <center>
| |
| <table border="1">
| |
|
| |
|
| <tbody>
| | == Means of Access == |
| <tr>
| | Prior to execution of the Client or Server products, the Security Libraries are stored on disk in compiled binary form. NSS relies on Discretionary Access Controls (DAC) to protect the binary image from being tampered with. |
| <td valign="Top" width="20%"><b><font face="Palatino"><font size="-1">
| |
| Category</font></font></b></td> <td valign="Top" width="26%"><b><font face="Palatino"><font size="-1"> Function</font></font></b></td>
| |
| <td valign="Top" width="54%"><b><font face="Palatino"><font size="-1">
| |
| Description</font></font></b></td>
| |
|
| |
|
| </tr>
| | == Zeroization == |
| <tr>
| | Within the Security Libraries, there are a number of explicit zeroization steps that are taken to clear the memory region previously occupied by a private key or password. In summary, private keys are not stored in plaintext. Any key material that has been unwrapped for use is zeroed once the use is complete. The function used to both zero and free memory used by private key material is PORT_ZFree(). |
| <td valign="Top" width="20%"><font face="Palatino"><font size="-1"> FIPS PUB 140-2</font></font> <br>
| |
| <font face="Palatino"><font size="-1">specific</font></font></td>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> FC_GetFunctionList</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>
| | == Role-based Authentication == |
| </tr>
| | Since all NSS-based products utilize role-based authentication, and all products use a single-role mechanism referred to above as a NSS User, authentication shall always be required upon initializing the FIPS Cryptographic Module. This is true of all NSS-based client and server products, and shall be handled via the PKCS #11 mechanism of required authentication. |
| <tr>
| |
| <td valign="Top" rowspan="3" width="20%"><font face="Palatino"><font size="-1">
| |
| General</font></font> <br>
| |
| <font face="Palatino"><font size="-1">purpose</font></font></td>
| |
|
| |
|
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| | == Identity-based Authentication == |
| FC_Initialize</font></font></td>
| | This section is not applicable to NSS since it is only applicable to products attempting to be certified to security level three or four. |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> initializes Cryptoki</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> FC_Finalize</font></font></td>
| |
|
| |
|
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> finalizes Cryptoki (1.1)</font></font></td>
| | == Results of FIPS 140-2 Level 2 Maintenance Validation of NSS 3.11.5 == |
| </tr>
| |
| <tr>
| |
| <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>
| |
|
| |
|
| </tr>
| | == Results of FIPS 140-2 Level 1 Maintenance Validation of NSS 3.11.5 == |
| <tr>
| |
| <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>
| |
|
| |
|
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> FC_GetSlotList</font></font></td>
| | == Platform List == |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> obtains a list of slots in the system</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_GetSlotInfo</font></font></td>
| |
| | |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> obtains information about a particular slot</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> FC_GetTokenInfo</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> obtains information about a particular token</font></font></td>
| |
| | |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> FC_GetMechansimList</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> obtains a list of mechanisms supported by a token</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| | |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_GetMechanismInfo</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> obtains information about a particular mechanism</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_InitToken</font></font></td>
| |
| | |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> initializes a token</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_InitPIN</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> initializes the normal user?s PIN</font></font></td>
| |
| | |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> FC_SetPIN</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> modifies the PIN of the current user</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| | |
| <td valign="Top" rowspan="8" width="20%"><font face="Palatino"><font size="-1">Session management</font></font></td>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> FC_OpenSession</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> opens a connection or "session" between an application and a particular
| |
| token</font></font></td>
| |
| </tr>
| |
| | |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_CloseSession</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> closes a session</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> FC_CloseAllSessions</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> closes all sessions with a token</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_GetSessionInfo</font></font></td>
| |
| | |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1"> obtains information about the session</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_GetOperationState</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| saves the state of the cryptographic operation in a session (1.1)</font></font></td>
| |
| | |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_SetOperationState</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| restores the state of the cryptographic operation in a session (1.1)</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| | |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_Login</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| logs into a token</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_Logout</font></font></td>
| |
| | |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| logs out from a token</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" rowspan="9" width="20%"><font face="Palatino"><font size="-1">Object</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_CreateObject</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| creates an object</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_CopyObject</font></font></td>
| |
| | |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| creates a copy of an object</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_DestroyObject</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| destroys an object</font></font></td>
| |
| | |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_GetObjectSize</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| obtains the size of an object in bytes</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| | |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_GetAttributeValue</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| obtains an attribute value of an object</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_SetAttributeValue</font></font></td>
| |
| | |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| modifies an attribute value of an object</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_FindObjectsInit</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| initializes an object search operation</font></font></td>
| |
| | |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_FindObjects</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| continues an object search operation</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| | |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_FindObjectsFinal</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| finishes an object search operation (1.1)</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" rowspan="8" width="20%"><font face="Palatino"><font size="-1">
| |
| Encryption</font></font> <font face="Palatino"><font size="-1">and</font></font>
| |
| <br>
| |
| <font face="Palatino"><font size="-1">decryption</font></font></td>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1"> FC_EncryptInit</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| initializes an encryption operation</font></font></td>
| |
| | |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_Encrypt</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| encrypts single-part data</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| | |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_EncryptUpdate</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| continues a multiple-part encryption operation</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_EncryptFinal</font></font></td>
| |
| | |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| finishes a multiple-part encryption operation</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_DecryptInit</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| initializes a decryption operation</font></font></td>
| |
| | |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_Decrypt</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| decrypts single-part encrypted data</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| | |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_DecryptUpdate</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| continues a multiple-part decryption operation</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_DecryptFinal</font></font></td>
| |
| | |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| finishes a multiple-part decryption operation</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" rowspan="5" width="20%"><font face="Palatino"><font size="-1">
| |
| Message</font></font> <br>
| |
| <font face="Palatino"><font size="-1">digesting</font></font></td>
| |
| | |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_DigestInit</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| initializes a message-digesting operation</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_Digest</font></font></td>
| |
| | |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| digests single-part data</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_DigestUpdate</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| continues a multiple-part digesting operation</font></font></td>
| |
| | |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_DigestKey</font></font></td>
| |
| <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>
| |
| | |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_DigestFinal</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| finishes a multiple-part digesting operation</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <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">
| |
| FC_SignInit</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| initializes a signature operation</font></font></td>
| |
| | |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_Sign</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| signs single-part data</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| | |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_SignUpdate</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| continues a multiple-part signature operation</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_SignFinal</font></font></td>
| |
| | |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| finishes a multiple-part signature operation</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_SignRecoverInit</font></font></td>
| |
| <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>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_SignRecover</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| signs single-part data, where the data can be recovered from the signature</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| | |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_VerifyInit</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| initializes a verification operation</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_Verify</font></font></td>
| |
| | |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| verifies a signature on single-part data</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_VerifyUpdate</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| continues a multiple-part verification operation</font></font></td>
| |
| | |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_VerifyFinal</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| finishes a multiple-part verification operation</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| | |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_VerifyRecoverInit</font></font></td>
| |
| <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>
| |
| </tr>
| |
| <tr>
| |
| <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
| |
| from the signature</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <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">operations</font></font></td>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_DigestEncryptUpdate</font></font></td>
| |
| <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>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_DecryptDigestUpdate</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| continues a multiple-part decryption and digesting operation (1.1)</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| | |
| FC_SignEncryptUpdate</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| continues a multiple-part signing and encryption operation (1.1)</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_DecryptVerifyUpdate</font></font></td>
| |
| | |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| continues a multiple-part decryption and verify operation (1.1)</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <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>
| |
| | |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_GenerateKey</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| generates a secret key</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_GenerateKeyPair</font></font></td>
| |
| | |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| generates a public-key/private-key pair</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_WrapKey</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| wraps (encrypts) a key</font></font></td>
| |
| | |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_UnwrapKey</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| unwraps (decrypts) a key</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| | |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_DeriveKey</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| derives a key from a base key</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <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">
| |
| FC_SeedRandom</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| mixes in additional seed material to the random number generator</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| | |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_GenerateRandom</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| generates random data</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" rowspan="2" width="20%"><font face="Palatino"><font size="-1">
| |
| Function management</font></font></td>
| |
| | |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_GetFunctionStatus</font></font></td>
| |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| obtains updated status of a function running in parallel with the application</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| FC_CancelFunction</font></font></td>
| |
| | |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| cancels a function running in parallel with the application</font></font></td>
| |
| </tr>
| |
| <tr>
| |
| <td valign="Top" width="20%"><font face="Palatino"><font size="-1">
| |
| Callbacks</font></font></td>
| |
| <td valign="Top" width="26%"><font face="Palatino"><font size="-1">
| |
| Notify</font></font></td>
| |
| | |
| <td valign="Top" width="54%"><font face="Palatino"><font size="-1">
| |
| processes notifications from Cryptoki</font></font></td>
| |
| </tr>
| |
|
| |
| </tbody>
| |
| </table>
| |
| </center>
| |
| </td>
| |
| </tr>
| |
| <tr>
| |
| | |
| <th>PKCS #12 <br>
| |
| Personal <br>
| |
| Information <br>
| |
| Exchange</th>
| |
| <td>The PKCS #12 API will specify a standard interface based upon
| |
| 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
| |
| 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>
| |
| <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>
| |
| | |
| </tr>
| |
| <tr>
| |
| <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>
| |
| | |
| </tr>
| |
| <tr>
| |
| <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
| |
| pseudorandom number is generated.</td>
| |
| | |
| </tr>
| |
| <tr>
| |
| <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>
| |
| | |
| </tr>
| |
| <tr>
| |
| <td><b>TLS pseudorandom function (PRF)</b></td>
| |
| <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>
| |
| for full details.</td>
| |
| </tr>
| |
|
| |
| </tbody>
| |
| | |
| </table>
| |