All modules
CMVP Validated Module · FIPS 140-3 Security Policy

Mocana Cryptographic Suite B Module

Certificate#4761StandardFIPS 140-3Level1TypeSoftwareEmbodimentMulti-Chip Stand AloneStatusHistoricalVendorDigiCert, Inc.
Medium review priority  ·  no TCB surface named  ·  last validated 23 months ago. How this is derived →

Certificate

StandardFIPS 140-3
Overall level1
Module typeSoftware
EmbodimentMulti-Chip Stand Alone
StatusHistorical
CaveatInterim validation. No assurance of the minimum strength of generated SSPs (e.g., keys). When operated in approved mode
VendorDigiCert, Inc.

Approved Algorithms (54)

AlgorithmACVP Cert
AES-CBCA4653
AES-CCMA4653
AES-CFB128A4653
AES-CMACA4653
AES-CTRA4653
AES-ECBA4653
AES-GCMA4654
AES-GCMA4655
AES-GMACA4654
AES-GMACA4655
AES-OFBA4653
AES-XTS Testing Revision 2.0A4653
Counter DRBGA4653
DSA KeyGen (FIPS186-4)A4653
DSA PQGGen (FIPS186-4)A4653
DSA PQGVer (FIPS186-4)A4653
DSA SigGen (FIPS186-4)A4653
DSA SigVer (FIPS186-4)A4653
ECDSA KeyGen (FIPS186-4)A4653
ECDSA KeyVer (FIPS186-4)A4653
ECDSA SigGen (FIPS186-4)A4653
ECDSA SigVer (FIPS186-4)A4653
EDDSA KeyGenA4653
EDDSA KeyVerA4653
EDDSA SigGenA4653
EDDSA SigVerA4653
HMAC-SHA-1A4653
HMAC-SHA2-224A4653
HMAC-SHA2-256A4653
HMAC-SHA2-384A4653
HMAC-SHA2-512A4653
HMAC-SHA3-224A4653
HMAC-SHA3-256A4653
HMAC-SHA3-384A4653
HMAC-SHA3-512A4653
KAS-ECC Sp800-56Ar3A4653
KAS-FFC Sp800-56Ar3A4653
KDF SP800-108A4653
RSA KeyGen (FIPS186-4)A4653
RSA SigGen (FIPS186-4)A4653
RSA SigGen (FIPS186-4)A4653
RSA SigVer (FIPS186-4)A4653
RSA SigVer (FIPS186-4)A4653
SHA-1A4653
SHA2-224A4653
SHA2-256A4653
SHA2-384A4653
SHA2-512A4653
SHA3-224A4653
SHA3-256A4653
SHA3-384A4653
SHA3-512A4653
SHAKE-128A4653
SHAKE-256A4653

Derived Review-Risk Graph (review prompts, not findings)

flowchart LR
  %% Deterministic review-risk graph for Mocana Cryptographic Suite B Module
  %% Review prompts and evidence gaps, NOT vulnerability findings.
  subgraph CMVP["CMVP-disclosed clues"]
    C2["[low] Firmware update / recovery<br/>/ rollback (referenced in<br/>text)<br/><i>update</i>"]
    C3["[low] Self-test / status surface<br/>(referenced in text)<br/><i>Self-Test<br/>status output<br/>Show status</i>"]
    C5["[low] Protocol / secure-channel<br/>references (may be KDF<br/>names, not a live channel)<br/><i>TLS<br/>no library/version identified</i>"]
    C6["[low] Operating system / runtime<br/>referenced (boundary<br/>membership not asserted)<br/><i>operating system<br/>linux<br/>kernel</i>"]
  end
  subgraph Inference["Derived inference"]
    I2["Possible only, trusted<br/>code is reachable through<br/>update and recovery paths."]
    I3["Possible only, some<br/>services may process input<br/>before, or without,<br/>operator authentication."]
    I5["Possible only, a protocol<br/>is referenced, but whether<br/>it is a live channel or<br/>only a KDF/algorithm name<br/>is unconfirmed."]
    I6["Possible only, a<br/>runtime/OS is referenced,<br/>but its membership in the<br/>cryptographic boundary is<br/>not established."]
  end
  subgraph Risk["Reviewer question"]
    R2["Are update images<br/>authenticated before<br/>parsing, and are<br/>downgrade/rollback paths<br/>constrained?"]
    R3["Can unauthenticated<br/>services leak state,<br/>consume resources, or<br/>transition security state?"]
    R5["If a live TLS/SSH/IKE<br/>channel exists, could<br/>library CVEs apply, or is<br/>this only a<br/>KDF/documentation name?"]
    R6["If the OS/runtime is<br/>in-boundary, could its<br/>CVEs be hidden by<br/>firmware-only versioning?"]
  end
  subgraph Evidence["Evidence needed to close"]
    E2["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>update image format ·<br/>signature-before-parse<br/>proof · anti-rollback /<br/>downgrade policy"]
    E3["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>pre-auth reachability<br/>matrix · rate limits and<br/>output redaction ·<br/>abuse-case tests"]
    E5["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>library identity and<br/>version ·<br/>certificate-validation<br/>behaviour · protocol-CVE<br/>disposition"]
    E6["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>runtime identity and<br/>config · kernel/runtime<br/>hardening profile ·<br/>patch/backport manifest"]
  end
  C2 --> I2 --> R2 --> E2
  C3 --> I3 --> R3 --> E3
  C5 --> I5 --> R5 --> E5
  C6 --> I6 --> R6 --> E6
  classDef clue fill:#eef3f9,stroke:#6f7f91,color:#1f3a5f;
  classDef infer fill:#fff7e6,stroke:#b98500,color:#6b4e00;
  classDef risk fill:#fbe9e9,stroke:#b02a2a,color:#7a1f1f;
  classDef evidence fill:#e6f4ea,stroke:#1e7d34,color:#14532d;
  class C2,C3,C5,C6 clue;
  class I2,I3,I5,I6 infer;
  class R2,R3,R5,R6 risk;
  class E2,E3,E5,E6 evidence;
Underlying clues
flowchart LR
  %% Deterministic clue tier for Mocana Cryptographic Suite B Module
  %% confidence: high = structured record field; medium = structured but soft; low (dashed) = bare keyword hit, context unverified
  subgraph CMVP["CMVP-disclosed clues (deterministic)"]
    C2["[low] Firmware update / recovery / rollback (referenced in text)<br/><i>update</i><br/>src: text:keyword"]
    C3["[low] Self-test / status surface (referenced in text)<br/><i>Self-Test<br/>status output<br/>Show status</i><br/>src: text:keyword"]
    C5["[low] Protocol / secure-channel references (may be KDF names, not a live channel)<br/><i>TLS<br/>no library/version identified</i><br/>src: text:keyword"]
    C6["[low] Operating system / runtime referenced (boundary membership not asserted)<br/><i>operating system<br/>linux<br/>kernel</i><br/>src: text:keyword"]
  end
  classDef clueHigh fill:#eef3f9,stroke:#2f6fb0,stroke-width:2px,color:#1f3a5f;
  classDef clueMedium fill:#eef3f9,stroke:#6f7f91,color:#1f3a5f;
  classDef clueLow fill:#f7f7f7,stroke:#999,stroke-dasharray:4 4,color:#444;
  class C2,C3,C5,C6 clueLow;

Security Policy, page by page

Page 1

Mocana Cryptographic Suite B Module Version 7.0.0f_u1 Non-Proprietary FIPS 140-3 Security Policy Document Version: 1.2 Date: July 23, 2024 DigiCert, Inc.

2801 North Thanksgiving Way

Suite 500 Lehi, UT 84043 +1 800-896-7973 May be reproduced only in its original entirety [without revision]

Page 2
Table of Contents
#SectionPage
Page 3
List of Tables
ItemPage
Table 1 – Security Level of Security Requirements4
Table 2 – Tested Operational Environments - Software5
Table 3 – Vendor Affirmed Operational Environment6
Table 4 – Approved Algorithms8
Table 5 – Vendor Affirmed Algorithms Allowed in the Approved Mode of Operation12
Table 6 – Non-Approved Algorithms Not Allowed in the Approved Mode of Operation12
Table 7 – Security Function Implementation (SFI)13
Table 8 – Ports and Interfaces17
Table 9 – Roles, Service Commands, Input and Output17
Table 10 – Approved Services20
Table 11 – Non-Approved Services25
Table 12 – SSP Management Methods27
Table 13 – SSPs28
Table 14 – Non-Deterministic Random Number Generation Specification30
Table 15 – Pre-Operational Self-Test30
Table 16 – Conditional Self-Tests31
Table 17 – Error States and Indicators32
Table 18 – References33
Table 19 – Acronyms and Definitions35
Figure 1 – Cryptographic Module Interface Design6
Figure 2 – Logical Object7
Page 4
ISO/IEC 24759 SectionSecurity RequirementSecurity Level
1General1
2Cryptographic Module Specification1
3Cryptographic Module Interfaces1
4Roles, Services and, Authentication1
5Software/Firmware Security1
6Operational Environment1
7Physical SecurityN/A
8Non-Invasive SecurityN/A
9Sensitive Security Parameter Management1
10Self-Tests1
11Life-Cycle Assurance1
12Mitigation of Other AttacksN/A
Overall1

version 7.0.0f_u1 hereafter denoted the Module. It contains the security rules under which the module must operate and describes how this module meets the requirements specified in FIPS 140-3 for a Security Level The Module design corresponds to the Module security rules. The security rules enforced by the Module are described in this document.

Page 5
#Operating SystemHardware PlatformProcessorPAA/PAIHypervisor and Host OS
1Yocto Linux 3.1 (32-bit)Xerox Explorer 6.5Intel Atom E3950with PAANA
2Yocto Linux 3.1 (32-bit)Xerox Explorer 6.5Intel Atom E3950without PAANA
3Yocto Linux 3.1 (32-bit)Xerox Explorer 8.0Intel Atom x6413Ewith PAANA
4Yocto Linux 3.1 (32-bit)Xerox Explorer 8.0Intel Atom x6413Ewithout PAANA
5Yocto Linux 3.1 (32-bit)Xerox Alexandra PlatformARM Cortex A53without PAANA
6Buildroot Linux 2020.02.01 (32- bit)Ultra Charge & Communication BaseIngenic X1600Ewithout PAANA
7Buildroot Linux 2020.02.01 (32- bit)Honeywell Cordless UltraIngenic X2000without PAANA
2 Cryptographic Module Specification

The primary purpose of this Module is to provide approved cryptographic routines to consuming applications via an Application Programming Interface (API). The Module conforms to [ISO/IEC 19790:2012] Section 7.2 Cryptographic Module Specification. The Module is a software, multi-chip standalone cryptographic module that runs on a general-purpose computer which is the Tested Operational Environment’s Physical Perimeter (TOEPP). The cryptographic boundary of the Module is the single shared object (SO), libmss.so, associated signature file, a persistent status file, and the CPU when PAA is enabled. No components are excluded from the [ISO/IEC 19790:2012] A.2.2 requirements. The Module supports the normal mode of operation under which all of the algorithms, security functions, and services are available; degraded operation is not supported. The Module is intended for use by US Federal agencies or other markets that require FIPS 140-3 validated Security Level 1 software modules. The Module is intended to be used in dedicated purpose IOT (Internet of Things) devices and general-purpose computer systems.

2.1 Operational Environment

The Mocana Suite B Cryptographic Module is tested on the following operational environment(s): Table 2 – Tested Operational Environments - Software DigiCert also performed the testing of the Module on the following Operational Environment(s) and claims vendor affirmation on them:

Page 6
#Operating SystemHardware Platform
1Ubuntu Linux 4.15 (64-bit)Intel NUC with processor: i7-8650U with and without PAA
2Yocto Linux 4.4.11DVF99 using ARM926EJ-S
3Yocto Linux 4.4.11DVF101 using ARM Cortex-A9 with Neon
4Wind River Linux 2.6.27.18BCM111XX using ARM1176JZF-S

Table 3 – Vendor Affirmed Operational Environment The CMVP makes no statement as to the correct operation of the module or the security strengths of the generated keys when ported to an operational environment that is not listed on the validation certificate.

2.2 Cryptographic Boundary

The software block diagram in Figure 1 shows the module, interfaces with the Tested Operational Environment, and the delimitation of its cryptographic boundary, shown shaded in blue. The Cryptographic Boundary is shown in Figure 1 and is comprised of the shared library files (libmss.so) and the integrity check signature file (libmss.so.sig), the POST status file (mssp.bin), and the CPU when PAA is enabled. The dashed line in Figure 2 indicates the Logical Object. The Module's operations occur via API calls from calling applications running within the same process as the Module. Figure 1 – Cryptographic Module Interface Design

Page 7
2.3 Modes of Operation

The Module supports approved and non-approved modes of normal operation:

  1. Approved mode: only approved or allowed security functions with sufficient key security strength can be used.
  2. Non-approved mode: When non-approved security functions or approved security functions with insufficient key security strength are used. The Module enters approved mode after pre-operational self-tests have successfully completed. Once the Module is operational, the mode of operation is implicitly assumed depending on the security function invoked and the security strength of the cryptographic keys. To provide an indicator of the current mode of operation, an asynchronous callout event mechanism is provided. The application using the Module can register for a FIPS_eventLog call-out function to be used as the approved-mode/non-approved-mode indicator. The application’s FIPS_eventLog function will be called from the Module at the beginning and end of each approved or non-approved service or algorithm. This FIPS_eventLog and the FIPS_EventType enumeration value provided as a parameter serves as a threadsafe status indicator of the current approved or non-approved mode of operation. The Module uses the scenario of a shared indicator for multiple services, per IG 2.4.C example #3. It uses a dedicated status output interface that is a software callback function. The calling application using the Module registers a callback function to be called at the beginning and end of all services and algorithm implementations. The callback function FIPS_eventLog() is called with an enumeration that specifies the start and stop of services and algorithms. It also specifies whether they are approved or non-approved. The specific crypto-algorithm ID is also provided to this callback function. By interpreting the enumeration and algo-ID in the callback function, the callback function is the software analog of a hardware LED. Whether that function actually turns on and off a H/W LED or logs these FIPS indicator events, is left to the calling application as appropriate for the application domain. Keys and CSPs shall not be shared between the approved and non-approved mode of operation.
Page 8
CAVP CertAlgorithm and StandardMode/MethodDescription / Key Size(s) / Key Strength(s)Use / Function
A4653AES [197]CBC [38A]Key Sizes: 128, 192, 256Encrypt, Decrypt
A4653AES [197]CCM [38C]Key Sizes: 128, 192, 256 Tag Len: 32, 48, 64, 80, 96, 112, 128Authenticated Encrypt, Authenticated Decrypt
A4653AES [197]CFB128 [38A]Key Sizes: 128, 192, 256Encrypt, Decrypt
A4653AES [197]CTR [38A]Key Sizes: 128, 192, 256Encrypt, Decrypt
A4653AES [197]CMAC [38B]Key Sizes: 128, 192, 256 MAC Len: 32-128 Increment 8Message Authentication
A4653AES [197]ECB [38A]Key Sizes: 128, 192, 256Encrypt, Decrypt
A4653AES [197]OFB [38A]Key Sizes: 128, 192, 256Encrypt, Decrypt
A4653AES [197]XTS1 [38E]Key Sizes: 128, 256Encrypt, Decrypt
A4654 A4655AES [197]GCM/GMAC [38D]Key Sizes: 128, 192, 256 Tag Len: 32, 64, 96, 104, 112, 120, 128Authenticated Encrypt, Decrypt
A4653CTR_DRBG [90A]CTRUse_df (default), No_df AES-128, AES-192, AES-256Deterministic Random Number Generation
A4653DSA [186](L = 2048, N = 224) (L = 2048, N = 256) (L = 3072, N= 256)KeyGen
2.3.1 Configuration of the Approved Mode of Operation

The approved mode of operation is configured at instantiation of the Module by the Cryptographic Officer role by execution of an application or protocol operating system process that uses the Module’s cryptographic functions.

2.3.2 Configuration of the Non-Approved Modes of Operation

The Module transitions to the non-approved mode of operation when one of the non-approved security functions is utilized. The Module can transition back to the approved mode of operation by utilizing an approved security function.

2.4 Security Functions

The Module implements the approved and non-approved but allowed cryptographic functions listed in the table(s) below. Table 4 – Approved Algorithms The XTS algorithm implementation includes a check to ensure Key_1 ≠ Key_2 per IG C.I.

Page 9
CAVP CertAlgorithm and StandardMode/Method (L = 2048, N = 224) SHA2 (224, 256, 384, 512) (L = 2048, N = 256) SHA2 (256, 384, 512) (L = 3072, N= 256) SHA2 (256, 384, 512) (L = 2048, N = 224) SHA2 (224, 256, 384, 512) (L = 2048, N = 256) SHA2 (256, 384, 512) (L = 3072, N= 256) SHA2 (256, 384, 512) (L = 1024, N = 160) SHA-1, SHA2 (224, 256, 384, 512) – Legacy Use (L = 2048, N = 224), SHA2 (224, 256, 384, 512) (L = 2048, N = 256), SHA2 (224, 256, 384, 512) (L = 3072, N= 256), SHA2 (224, 256, 384, 512) (L = 2048, N = 224) SHA2 (224, 256, 384, 512) (L = 2048, N = 256) SHA2 (224, 256, 384, 512) (L = 3072, N = 256) SHA2 (224, 256, 384, 512) (L = 2048, N = 224) SHA-1 – Legacy Use (L = 2048, N = 256) SHA-1 – Legacy Use (L = 3072, N = 256) SHA-1 – Legacy Use (L = 1024, N = 160) SHA-1, SHA2(224, 256, 384, 512) – Legacy UseDescription / Key Size(s) / Key Strength(s)Use / Function PQG Gen PQG Ver SigGen SigVer
A4653ECDSA [186]P-224, P-256, P-384, P-521KeyGen
P-192*, P-224, P-256, P-384, P-521 – *Legacy UsePKV
P-224 SHA2 (224, 256, 384, 512) P-256 SHA2 (224, 256, 384, 512) P-384 SHA2 (224, 256, 384, 512) P-521 SHA2 (224, 256, 384, 512)SigGen
P-192* SHA-1, SHA2 (224, 256, 384, 512) – *Legacy Use P-224 SHA-1, SHA2 (224, 256, 384, 512) P-256 SHA-1, SHA2 (224, 256, 384, 512) P-384 SHA-1, SHA2 (224, 256, 384, 512) P-521 SHA-1, SHA2 (224, 256, 384, 512)SigVer
A4653EDDSA [186]ED-25519 SHA-512 – 128-bits of security ED-448 SHAKE256 – 224-bits of securityPure EdDSA (excluding the pre- hash or context variants - RFC8032) KeyGen, KeyVer, SigGen, SigVer
A4653HMAC [198]SHA-1Key Sizes: Key Length = 112-65536 increment 8 MAC = 32–160 increment 8Message Authentication, KDF
A4653HMAC [198]SHA2-224Key Sizes: Key Length = 112-65536 increment 8 MAC = 32–224 increment 8Message Authentication, KDF
Page 10
CAVP CertAlgorithm and StandardMode/MethodDescription / Key Size(s) / Key Strength(s)Use / Function
A4653HMAC [198]SHA2-256Key Sizes: Key Length = 112-65536 increment 8 MAC = 32–256 increment 8Message Authentication, KDF
A4653HMAC [198]SHA2-384Key Sizes: Key Length = 112-65536 increment 8 MAC = 32–384 increment 8Message Authentication, KDF
A4653HMAC [198]SHA2-512Key Sizes: Key Length = 112-65536 increment 8 MAC = 32–512 increment 8Message Authentication, KDF
A4653HMAC [198]SHA3-224Key Sizes: Key Length = 112-65536 increment 8 MAC = 32–224 increment 8Message Authentication, KDF
A4653HMAC [198]SHA3-256Key Sizes: Key Length = 112-65536 increment 8 MAC = 32–256 increment 8Message Authentication, KDF
A4653HMAC [198]SHA3-384Key Sizes: Key Length = 112-65536 increment 8 MAC = 32–384 increment 8Message Authentication, KDF
A4653HMAC [198]SHA3-512Key Sizes: Key Length = 112-65536 increment 8 MAC = 32–512 increment 8Message Authentication, KDF
A4653KAS ECC [SP 800-56Arev3] per IG D.F Scenario 2 path (2)Ephemeral Unified (Initiator, Responder), KPG, Full with twoStepKdfP-224, P-256, P-384, P-521 HMAC SHA-1, SHA2-(224, 256, 384, 512), SHA3-(224, 256, 384, 512) Concatenation KDF mode: feedback, supports empty IVKey Agreement Scheme provides between 112 and 256 bits of encryption strength
Page 11
CAVP CertAlgorithm and StandardMode/MethodDescription / Key Size(s) / Key Strength(s)Use / Function
A4653KAS FFC [SP 800-56Arev3] per IG D.F Scenario 2 path (2)Diffie-Hellman Ephemeral (Initiator, Responder), KPG, Full with twoStepKdfFB, FC MODP-2048, MODP-3072, MODP-4096, MODP-6144, MODP-8192 HMAC SHA-1, SHA2-(224, 256, 384, 512), SHA3-(224, 256, 384, 512) Concatenation KDF mode: feedback, supports empty IVKey Agreement Scheme provides between 112 and 200 bits of encryption strength
A4653KDF SP800- 108 [108]FeedbackHMAC SHA-1, SHA2-(224, 256, 384, 512), SHA3-(224, 256, 384, 512) 8-bit counter after fixed input dataKey Based Key Derivation
A4653RSA [186]KeyGenModulus sizes: 2048, 3072, 4096Asymmetric Key Generation
PKCS1_v1.5Modulus 2048 SHA2 (224, 256, 384, 512) Modulus 3072 SHA2 (224, 256, 384, 512) Modulus 4096 SHA2 (224, 256, 384, 512)Digital Signature Generation
PSSModulus 2048 SHA2 (224, 256, 384, 512) Modulus 3072 SHA2 (224, 256, 384, 512) Modulus 4096 SHA2 (224, 256, 384, 512)Digital Signature Generation
PKCS1_v1.5Modulus 1024* SHA-1*, SHA2-(224, 256, 384, 512) Modulus 2048 SHA-1*, SHA2-(224, 256, 384, 512) Modulus 3072 SHA-1*, SHA2-(224, 256, 384, 512) Modulus 4096 SHA-1*, SHA2-(224, 256, 384, 512) * Legacy UseDigital Signature Verification
Page 12
CAVP CertAlgorithm and StandardMode/MethodDescription / Key Size(s) / Key Strength(s)Use / Function
PSSModulus 1024* SHA-1*, SHA2-(224, 256, 384, 512) Modulus 2048 SHA-1*, SHA2-(224, 256, 384, 512) Modulus 3072 SHA-1*, SHA2-(224, 256, 384, 512) Modulus 4096 SHA-1*, SHA2-(224, 256, 384, 512) * Legacy UseDigital Signature Verification
A4653SHS [180]SHA-1, SHA2- 224, SHA2-256, SHA2-384, SHA2-512Message Digest Generation
A4653SHA-3 [202]SHA3-224 SHA3-256 SHA3-384 SHA3-512 SHAKE128 SHAKE256Hash Function
AlgorithmDescription / Key Size(s) / Key Strength(s)Description
CKGSP800-133rev3SP800-133rev3 - Sections 4 and 5.1 Asymmetric signature key generation using unmodified DRBG output. CKG does not have certificate as IG D.H.states: "The module’s validation certificate shall have a CKG entry only if the module is generating keys for the symmetric-key algorithms."
CKGSP800-133rev3SP800-133rev3 - Sections 4 and 5.2 Asymmetric key establishment key generation using unmodified DRBG output. CKG does not have certificate as IG D.H.states: "The module’s validation certificate shall have a CKG entry only if the module is generating keys for the symmetric-key algorithms."

Table 5

Page 13
AlgorithmUse/Function
AES EAXAuthentication/Encryption, non-approved algorithm
AES GCM 4K AES GCM 64K256-bit encryption/decryption for 256k implementation
AES XCBCMessage Authentication, non-approved algorithm
DESEncryption/Decryption, non-approved algorithm
DHKey agreement; key establishment methodology provides less than 112 bits of encryption strength; non-compliant
DSASigGen using 2048/N=224 using SHA-1
ECC CDHKey agreement; key establishment methodology provides less than 112 bits of encryption strength; non-compliant
EDDHCurve 25519, Curve 448
HMACHMAC generation with key size less than 112 bits; non-compliant
HMAC-MD5Non-approved algorithm
MD2, MD4, MD5Message Digest, non-approved algorithm
RNGFIPS 186-2 Random Number Generation
RSAKey wrapping; key establishment methodology provides less than 112 bits of encryption strength; non-compliant
RSAPKCS #1 v2.1 RSAES-OAEP encryption/decryption
RSA (key wrapping)Key establishment methodology provides between 112 and 128 bit of encryption strength. Per IG D.G the module wraps data sent by the requesting application via an API call. Data being wrapped is unknown. PKCS non-approved padding
Triple-DESEncryption/Decryption, non-approved algorithm.
NameTypeDescriptionSF PropertiesAlgorithms/CAVP Cert
KAS-1KASSP 800-56Arev3. KAS- ECC per IG D.F Scenario 2 path (2).P-224, P-256, P-384, P-521 curves providing between 112 and 196 bits of encryption strengthKAS-ECC SP800- 56Ar3/A4653
KAS-2KASSP 800-56Arev3. KAS- FFC per IG D.F Scenario 2 path (2).2024-bit, 3072-bit, 4096-bit, 6144-bit, 8192-bit keys providing between 112 and 200 bits of encryption strengthKAS-FFC SP800- 56Ar3/A4653

Note: All the various AES mode (e.g., EAX, XCBC, XTS, etc.) use the same underlying AES The Module implements the approved security functions listed in the table below. Table 7 – Security Function Implementation (SFI)

Page 14
2.5 Overall Security Design
  1. The Module provides one operator role: Cryptographic Officer.
  2. The Module does not provide any operator authentication.
  3. An operator does not have access to any cryptographic services prior to assuming an authorized role.
  4. The Module allows the operator to initiate power-up self-tests by power cycling power or reloading the Module into memory.
  5. Pre-operational self-tests do not require any operator action.
  6. Data outputs are inhibited during key generation, self-tests, zeroization, and error states. Because the logical interface is defined as the API of the Module and the API of the Module is single-threaded, key generation or zeroization must be complete before the API returns control to the calling application.
  7. Status information does not contain SSPs or sensitive data that if misused could lead to a compromise of the Module.
  8. There are no restrictions on which keys or SSPs are zeroized by the zeroization service.
  9. The Module does not support concurrent operators.
  10. The Module does not support a maintenance interface or role.
  11. The Module does not support manual SSP establishment method.
  12. The Module does not have any proprietary external input/output devices used for entry/output of data.
  13. The Module does not enter or output plaintext SSPs, except to/from the calling application via API parameters. The module does not support the entry or output of encrypted SSPs.
  14. The Module does not store any plaintext SSPs. SSPs provided to the Module by the calling processes are destroyed when released by the appropriate API function calls.
  15. The Module does not output intermediate key values.
  16. The Module does not provide bypass services or ports/interfaces.
  17. AES GCM IV uniqueness: The AES GCM implementation meets Option 1 of IG C.H. The Module supports TLS 1.2 GCM Cipher Suites for TLS, as described in RFCs 5116, 5288 and 5289. The counter portion of the IV is set by the Module within its cryptographic boundary. When the nonce explicit (counter) part of the IV exhausts the maximum number of possible values for a given session key this condition triggers a handshake to establish a new encryption key per RFC 5246. During operational testing, the Module was tested against an independent version of TLS and found to behave correctly. AES GCM keys are zeroized when the Module is power-cycled and for each new TLS session, a new AES GCM key is established.
  18. AES XTS is to be used only for storage purposes, per SP800-38E.
2.6 Rules of Operation

The Module shall be installed within the operating system confines and structures consistent with Mocana’s operating environment specific documentation. For example: on most linux systems, this means that the libmss.so shared library will be installed in the file system in “/lib” or “/lib64”, or it may be specified in the operating environment specific documentation to be installed in “/usr/local/lib” as appropriate for the target

Page 15

platform. The Module is automatically started when linked and loaded with an application using the cryptographic functions of the Module. To update or replace the module, all SSPs shall first be zeroized and the calling application shall be closed. SSP zeroization is performed through the Key Destruction service that is described below. API calls will overwrite the memory occupied by the key information with zeros before that memory is de-allocated. If the calling application is terminated prior to zeroization, the Linux kernel overwrites the keys in physical memory before the physical memory is allocated to another process. The key zeroization process is performed in a sufficient time to prevent compromise of SSPs, taking only a few milliseconds. The previous existing module files shall be removed prior to following the installation directions above, for the new module version. (RSA) The calling application of the Module must generate RSA key pairs of at least 2048 bits to operate in approved mode. (ECC) The calling application of the module must generate ECC keys using a P-Curve with a security strength of at least 112 bits to operate in the approved mode of operation.

Page 16

(Random Number Generation) The Module implements a CTR-based DRBG per SP800-90A for creation of symmetric and asymmetric keys. The Module accepts input from entropy sources external to the cryptographic boundary for use as seed material for the Module's approved DRBGs. External entropy can be added via several APIs available to the cryptographic module client application. The calling application of the Module shall use entropy sources that meet the security strength required for the random bit generation mechanism as shown in NIST SP 800-90A Table 3 (CTR_DRBG). A minimum of 384 bits of entropy must be provided by the calling application. The calling application shall provide full entropy for 256-bit keys. Due to the entropy being provided by an external source, the following caveat applies: There is no assurance of the minimum strength of generated SSPs (e.g., keys). The Module performs DRBG health tests (Instantiate, Generate, Reseed) as defined in section 11.3 of SP800-90A. (Key Management) The application that uses the module is responsible for appropriate destruction and zeroization of the keys. The Module provides API calls for key allocation and destruction. These API calls overwrite the memory occupied by the key information with zeros before that memory is de-allocated. See Key Destruction Service below. (Key/CSP Authorized Access and Use) An authorized application has access to all key data generated during the operation of the Module. (Key/CSP Storage) Private and public keys are provided to the module by the calling process and are destroyed when released by the appropriate API function calls. The module does not perform persistent storage of keys. (Key/CSP Zeroization) The application is responsible for calling the appropriate destruction functions from the API. These functions overwrite the memory with zeros and de-allocate the memory. In case of abnormal termination, the Linux kernel overwrites the keys in physical memory before the physical memory is allocated to another process. (Key Destruction Service) A context structure is associated with every cryptographic algorithm available in the Module. Context structures hold sensitive information such as cryptographic keys. These context structures must be destroyed via respective API calls when the application software no longer needs to use a specific algorithm. This API call will zeroize all sensitive information before freeing the dynamically allocated memory. This will occur while the application process is still in memory, but no longer needs the specific algorithm, which protects the sensitive information from compromise. See the Mocana Cryptographic API Reference for additional information.

Page 17
Physical PortLogical InterfaceData that passes over port/interface
General Purpose ComputerData InputInput parameters of API function calls
General Purpose ComputerData OutputOutput parameters of API function calls
General Purpose ComputerControl InputAPI Function Calls
General Purpose ComputerControl OutputAPI Function Calls
General Purpose ComputerStatus OutputFor approved mode, function calls returning status information and return codes provided by API function calls
General Purpose ComputerPowerNone
RolesServiceInputOutput
COAsymmetric EncryptionPerform encryption of messages with input of RSA public key and messageReturn encrypted message and status of OK or error condition
COAsymmetric DecryptionPerform decryption of messages with input of RSA private key and messageReturn decrypted message and status of OK or error condition
COAsymmetric Key GenerationGenerate key command with input of random number and key size for RSA, DSA, ECDSA, or EdDSA algorithmReturn of the Key (public and private) and status of OK or error condition
3 Cryptographic Module Interfaces

The Module’s ports and associated defined logical interface categories are listed in Table 8. The module’s Table 8 – Ports and Interfaces

4 Roles, Services and Authentication
4.1 Assumption of Roles and Related Services

The module is Level 1 and does not implement any Authentication techniques. The Module supports one operator role, Cryptographic Officer (CO). The cryptographic module does not support multiple concurrent users, bypass capability, or a maintenance role. The Cryptographic Officer role is implicitly identified by the service that is requested.

Page 18
RolesServiceInputOutput
COAsymmetric Key VerificationPerform key verification with input of (DSA, ECDSA, or EdDSA) Public/Private key pairsReturn of status of OK or error condition
CODigital SignatureSignature command with input of (RSA, DSA, ECDSA, or EdDSA) private key and message using RSA, DSA, ECDSA, or EdDSA algorithmReturn of the Digital Signature and status of OK or error condition
Verify command with input of (RSA, DSA, ECDSA, or EdDSA) public key and signature to be verified by RSA, DSA, ECDSA, or EdDSA algorithmReturn of the Valid Signature Indicator (True or False) and status of OK or error condition
COEvent LoggingInstall callback functionReturn status of algorithm is Approved or non-Approved
COIntegrity StatusIntegrity Command to perform Integrity Check with no input parameterReturn OK or error condition
COKey AgreementGenerate command with input of random number for DH or ECDH algorithmReturn secret shared symmetric key and status of OK or error condition
COKey Derivation (HMAC)Derive key material using input psuedorandom key material to expand into additional key materialReturn key material and status of OK or error condition
COKeyed Message Digest (CMAC)Generate a keyed-hash message authentication code using input of AES key and messageReturn keyed-hash with status of OK or error condition
COKeyed Message Digest (GMAC)Generate a keyed-hash message authentication code using input of AES key and messageReturn keyed-hash with status of OK or error condition
COKeyed Message Digest (HMAC)Generate a keyed-hash message authentication code using input of HMAC key and messageReturn keyed-hash with status of OK or error condition
COMessage AuthenticationAuthenticate command with input of a message, None, and AAD using CMAC, GMAC, and HMAC algorithmReturn MAC and status of OK or error condition
COMessage DigestHash command with input data of a message using a SHA-2 or SHA-3 algorithmReturn hash with status of OK or error condition
CORandom Number GenerationGenerate command with input of entropyReturn random number with OK or error condition
Page 19
RolesServiceInputOutput
COSelf-testsExecute command with input of list of CAST tests to be performedReturn OK or error condition
COShow module’s versioning informationVersion command with no input parameterSW Version: xxx and Git repository name
COShow statusStatus command with no input parameterOverall status of tests run - either OK or error condition
COSymmetric EncryptionEncrypt command with AES, input data, input size, key, key size, mode of operationReturn the ciphertext and status of OK or error condition
COSymmetric DecryptionDecrypt command with AES, input data, input size, key, key size, mode of operationReturn the plaintext and status of OK or error condition
COZeroizeZeroize command, no input parameterReturn OK or an error condition
Page 20
ServiceDescriptionApproved Security FunctionsKeys and/or SSPsRolesAccess rights to Keys and/or SSPsIndicator
Asymmetric Encryption and DecryptionPerform encryption and decryption of messages using public and private keysRSA EncryptionRSA Public KeyCOW, EApproved
RSA DecryptionRSA Private KeyCOW, E
Asymmetric Key Generation and VerificationGenerate and verify Public / Private Asymmetric key pairs.ECDSA Key GenerationECDSA Private KeyCOG, RApproved
ECDSA Public KeyCOG, R
ECDSA Key VerificationECDSA Private KeyCOW, EApproved
ECDSA Public KeyCOW, E
Asymmetric Key Generation and VerificationGenerate and verify Public / Private Asymmetric key pairs.EdDSA Key GenerationEdDSA Private KeyCOG, RApproved
EdDSA Public KeyCOG, R
EdDSA Key VerificationEdDSA Private KeyCOW, EApproved
4.2 Services

All services implemented by the Module are listed in Table 10 and Table 11 below. The SSPs modes of access shown in Table 10 are defined as:

Page 21
ServiceDescriptionApproved Security FunctionsKeys and/or SSPsRolesAccess rights to Keys and/or SSPsIndicator
EdDSA Public KeyCOW, E
Asymmetric Key Generation and VerificationGenerate and verify Public / Private Asymmetric key pairs.RSA Key GenerationRSA Private KeyCOW, EApproved
RSA Public KeyCOG, R
Asymmetric Key Generation and VerificationGenerate and verify Public / Private Asymmetric key pairs.DSA Key GenerationDSA Private KeyCOG, RApproved
DSA Public KeyCOG, R
DSA Key VerificationDSA Private KeyCOW, EApproved
DSA Public KeyCOW, E
Digital SignaturePerform digital signature generation and digital signature verification functions.DSA Signature GenerationDSA Private KeyCOW, EApproved
DSA Signature VerificationDSA Public KeyCOW, E
Digital SignaturePerform digital signature generation and digital signature verification functions.ECDSA Signature GenerationECDSA Private KeyCOW, EApproved
ECDSA Signature VerificationECDSA Public KeyCOW, E
Digital SignaturePerform digital signature generation and digital signature verification functions.EdDSA Signature GenerationEdDSA Private KeyCOW, EApproved
EdDSA Signature VerificationEdDSA Public KeyCOW, E
Page 22
ServiceDescriptionApproved Security FunctionsKeys and/or SSPsRolesAccess rights to Keys and/or SSPsIndicator
Digital SignaturePerform digital signature generation and digital signature verification functions.RSA Signature GenerationRSA Private KeyCOW, EApproved
RSA Signature VerificationRSA Public KeyCOW, E
Integrity StatusPerform integrity test and return the statusN/AN/ACOEN/A
Key AgreementGenerate a secret key to be used between two or more parties based on the key- agreement protocolDH Key GenerationFCC Private KeyCOR, G, EApproved
FFC Public KeyCOR, G, E
DH Key ExchangeFCC Private KeyCOW, E
FFC Public KeyCOW, E
ECC CDH Key GenerationECC CDH Private KeyCOR, G, E
ECC CDH Public KeyCOR, G, E
ECC CDH Key ExchangeECC CDH Private KeyCOW, E
ECC CDH Public KeyCOW, E
Key AgreementGenerate a secret key to be used between two or more parties based on the key- agreement protocolDH Shared SecretDH Shared SecretCOR, GApproved
Page 23
ServiceDescriptionApproved Security FunctionsKeys and/or SSPsRolesAccess rights to Keys and/or SSPsIndicator
Key AgreementGenerate a secret key to be used between two or more parties based on the key- agreement protocolECC CDH Shared SecretECC CDH Shared SecretCOR, GApproved
Key Derivation (HMAC)Extract input key material and expand into additional keysHMAC- SHA-1, HMAC- SHA2-224, - 256, -384, -512, HMAC- SHA3-224, - 256, -384, - 512, Shake128, Shake256HMAC- KDF psuedor andom KeyCOW, EApproved
Keyed Message Digest (CMAC)Generate a keyed-hash message authentication codeAES-CMACAES KeyCOW, EApproved
Keyed Message Digest (GMAC)Generate a keyed-hash message authentication codeAES-GMACAES KeyCOW, EApproved
Keyed Message Digest (HMAC)Generate a keyed-hash message authentication codeHMAC- SHA-1, HMAC- SHA2-224, - 256, -384, -512, HMAC- SHA3-224, - 256, -384, - 512, Shake128, Shake256HMAC KeyCOW, EApproved
Message HashGenerate a SHA-1, SHA-2, or SHA-3 message digestSHA-1, SHA2-224, SHA2-256, SHA2-384, SHA2-512, SHA3-224, SHA3-256, SHA3-384, SHA3-512N/ACON/AApproved
Page 24
ServiceDescriptionApproved Security FunctionsKeys and/or SSPsRolesAccess rights to Keys and/or SSPsIndicator
Random Number GenerationGenerate and Re-seed random numbers.AES-CTR DRBG GenerationSeed, Nonce and DRBG ValuesCORApproved
AES-CTR DRBG Re- seedDRBG Entropy InputCOWApproved
Self-testsInitiate self-tests (Software Integrity Check, DRBG KAT, SHA-256 KAT, HMAC-SHA- 256 KAT)N/AN/ACOR, EApproved
Show StatusReturn status of the module state, exit codes, kernel log (dmesg).N/AN/ACOEN/A
Show VersionReturn module version informationN/AN/ACOEN/A
Symmetric Encryption/ DecryptionPerform encryption and decryption on a block of data using the shared keyAES-CBC, AES-CTR, AES-ECB, AES-CFB, AES-OFB, AES-XTS EncryptionAES KeysCOW, EApproved
AES-CBC, AES-CTR, AES-ECB, AES-CFB, AES-OFB, AES-XTS DecryptionAES KeysCOW, E
Symmetric Encryption/ Decryption with Message Digest (CCM)Perform encryption and decryption on a block of data using shared key and message authentication codeAES-CCMAES KeysCOW, EApproved
Symmetric Encryption/ Decryption with Message Digest (GCM)Perform encryption and decryption on a block of data using shared key and message authentication codeAES-GCMAES KeysCOW, EApproved
ZeroizeDestroys all SSPsN/AAll SSPsCOZApproved
Page 25
ServiceDescriptionAlgorithm AccessedRoleIndicator
Digital SignatureSigGen using 2048/N=224 using SHA-1DSACONon- Approved
Key AgreementGenerate a secret key to be used between 2 or more parties based on the key- agreement protocolEDDH Key Generation/Key ExchangeCONon- Approved
Key AgreementKey agreement; key establishment methodology provides less than 112 bit of encryption strength; non- compliantDH, ECC CDHCONon- Approved
Keyed Message DigestAES GCM encryption and decryption for 256 implementationsAES-GCM 4k / GMAC 4k AES-GCM 64k / GMAC 64kCONon- Approved
Keyed Message DigestHMAC generation with key size less than 112 bit; non- compliantHMAC-MD5CONon- Approved
Key WrappingKey wrapping; key establishment methodology non-compliantRSA Encryption/DecryptionCONon- Approved
Message DigestGenerate an MD2, MD4, or MD5 message digestMD2, MD4, MD5CONon- Approved
Random Number GenerationFIPS 186-2 Random Number GenerationRNGCONon- Approved
Symmetric Encryption/ DecryptionNon Approved AlgorithmAES-EAX, AES-XCBC, DESCONon- Approved
Symmetric Encryption/ DecryptionNon Approved AlgorithmTriple-DESCONon- Approved

Table 11 – Non-Approved Services

Page 26
5 Software Security

The Module is composed of the following single software component packaged as a shared object (also known as a shared library).

Page 27
MethodDescription
G1Generated external (logical) to the Module and input from calling application
G2Derived from the DRBG input per SP800-90Ar1
G3Derived from the DRBG output
G4FIPS 186-4 compliant DSA key generation, using the internal CAVP validated DRBG
G5FIPS 186-4 compliant RSA key generation, using the internal CAVP validated DRBG
G6FIPS 186-4 compliant ECDSA key generation, using the internal CAVP validated DRBG.
G7FIPS 186-5 compliant EdDSA key generation, using the internal CAVP validated DRBG.
G8Diffie-Hellman shared secret generation using the internal CAVP validated 56Arev3 protocol

After the CAST test for each algorithm is run, the status of each algorithm CAST test is stored as an array within the FIPS module so that subsequent usage of each algorithm can detect the CAST test for that module has completed successfully and no longer needs to run. If the CAST test fails for an algorithm, then a global CAST status is set to a failure code and subsequent calls to FIPS cryptographic functions will fail. The FIPS module provides an API to allow the Cryptographic Officer to initiate the FIPS powerup selftests on demand. This includes all CAST tests. Additionally, an API is provided to enable the Cryptographic Officer to persist the state of these self-tests. The state of the self-test is stored in the mssp.bin file. During Module startup, the presence of the previously saved state of self-tests is detected. If the saved-state is more recent than the O/S boot time, then the saved state information for the self-tests is loaded as the starting state. This will enable a cryptographic officer to execute a single run of all conditional self-tests after each boot of the operating system, and subsequent applications using the same Module will not have to re-run the conditional self-tests. Note that the Pre-Integrity Check Power up Self Tests, and Integrity Check described above are always run within each instance of the Module.

6 Operational Environment

The Module has a modifiable operational environment under the FIPS 140-3 definitions. The tested operational environments - Software are listed in Table 2 above. In addition, Mocana claims that the Module can be ported on the Operational Environment(s) listed in Table 3; no statement is made regarding the correct operation of the Module on the Vendor Affirmed Operational Environments.

7 Physical Security

The FIPS 140-3 Physical Security requirements are not applicable because the Mocana Cryptographic Suite B Module is software only.

8 Non-Invasive Security

The Module does not implement any mitigation method against non-invasive attacks.

9 Sensitive Security Parameter (SSP) Management

The SSPs access methods are described in Table 12 below: Table 12 – SSP Management Methods

Page 28
MethodDescription
G9EC Diffie-Hellman shared secret generation using the internal CAVP validated 56Arev3 protocol
S1Only stored in volatile memory (RAM).
E1Input in plaintext (client key)
E2Output in plaintext
E3Output in plaintext public key
Z1Zeroized by the Key destruction service by overwriting with a fixed pattern of zeros.
Key/SSP Name/TypeStrengthSecurity Function and Cert. NumberGener- ationImport /ExportEstablish- mentStorageZeroiza -tionUse & Related keys
FFC Private Key112 to 200 bitsKASG3N/AN/AS1Z1Used to derive the secret key during DH key agreement protocol
DH Shared Secret112 to 200 bitsKASN/AE2G8S1Z1Shared secret computation established as part of DH key agreement scheme
FFC Public Key112 to 200 bitsKASG3E1, E2N/AS1Z1Used to derive the secret key during DH key agreement protocol
ECC CDH Private Key112 to 256 bitsKASG3E1N/AS1Z1Used to derive the secret session key during ECC CDH key agreement protocol
ECC CDH112 toKASN/AE1G9S1Z1Shared secret
Shared Secret256 bitscomputation
ECC CDH Public Key112 to 256 bitsKASG3E1, E2N/AS1Z1Used to derive the secret session key during ECC CDH key agreement protocol
DRBG Entropy Input384 bitsCTR DRBGN/AE1N/AS1Z1Used to seed the DRBG for key generationUsed to seed the
for 384DRBG for key
entropy bitsgeneration

All SSPs used by the Module are described in this section. All usage of these SSPs by the Module is described in the services detailed in Section 4.2. Table 13 – SSPs

Page 29
Key/SSP Name/TypeStrengthSecurity Function and Cert. NumberGener- ationImport /ExportEstablish- mentStorageZeroiza -tionUse & Related keys
Seed, Nonce and DRBG values384 bitsCTR DRBGCTRG2N/AN/AS1Z1Used by the DRBG to generate random bits
for 384 entropy bitsDRBG
RSA Private Key112 to 256 bits112 toRSAG1, G5E1, E2N/AS1Z1Used to create
256 bitsRSA digital signatures
RSA Public112 toRSAG5E1, E3N/AS1Z1Used to verify
Key256 bitsRSA signatures
DSA Private KeyDSA Private112 to 128 bits112 toDSAG1, G4E1, E2N/AS1Z1Used to create
Key128 bitsDSA digital signatures
DSA Public112 toDSAG4E1, E3N/AS1Z1Used to verify
Key128 bitsDSA signatures
ECDSA Private KeyECDSA112 to 256 bits112 toECDSAG1, G6E1, E2N/AS1Z1Used to create
Private Key256 bitsECDSA digital signatures
ECDSA112 toECDSAG6E1, E3N/AS1Z1Used to verify
Public Key256 bitsECDSA signatures
EdDSA Private KeyEdDSA128 to 224 bits128 toEdDSAG1, G7E1, E2N/AS1Z1Used to create
Private Key224 bitsEdDSA digital signatures
EdDSA128 toEdDSAG7E1, E3N/AS1Z1Used to verify
Public Key224 bitsEdDSA signatures
AES KeysAES Keys128 to 256 bits128 toAESG1E1N/AS1Z1Used during AES
256 bitsencryption, decryption, CMAC and GMAC operations
HMAC Key112 to 256 bitsHMACG1E1N/AS1Z1Used during HMAC-SHA-1, HMAC-SHA-224, 256, 384, 512, HMAC-SHA3- 224, 256, 384, 512 operations
HMAC-KDF Psuedorando m Key112 to 256 bitsHMAC- KDFG1E1N/AS1Z1Used in deriving other keys per SP 800-108 with HMAC-SHA2- 224, 256, 384, 512, HMAC- SHA3-224, 256, 384, 512 operations
Page 30
Entropy SourceMinimum number of bits of entropyDetails
External Entropy Source (API)384The calling application of the Module shall use entropy sources that meet the security strength required for the random bit generation mechanism. A minimum of 384 bits of entropy must be provided by the calling application. The module does not exercise control over the amount or quality of the entropy that is provided to it.
Security FunctionMethodDescriptionError state
DRBG AES-256 CTR-DRBGDRBG AES-256KATCritical Function Test (Instantiation, Generation,ES2
CTR-DRBGReseed): This CAST is performed before the Software Integrity Check. This is the first KAT performed
HMAC-SHA-256KATSoftware Integrity on shared lib .so file, result isES1
(Cert. A4653)compared against the hash value in the signature .sig file.

Table 14 – Non-Deterministic Random Number Generation Specification

10 Self-Tests

The Module performs self-tests to ensure the proper operation of the Module. Per FIPS 140-3 these are categorized as either pre-operational self-tests or conditional self-tests.

10.1 Pre-Operational Self-Tests

Security Level 1 - Pre-operational self-tests are available on demand by power cycling or reloading the Module into memory. The Module is available to perform services only after successfully completing the pre-operational self-tests. The Module performs the following pre-operational self-tests: Table 15 – Pre-Operational Self-Test Note: The module does not perform pre-operational bypass tests. Bypass is not implemented.

Page 31
Security FunctionMethodDescriptionError state
AES-ECB, CBC,KATAES encryption and decryption KAT – Inclusive to AES,ES2
OFB, CFB, CTRCBC, CFB, CTR, ECB, OFB with 256-bit key
AES-XTSKATAES encryption and decryption KAT with 128-bit keyES2
AES-CCM,KATAES encryption and decryption with CBC-MACES2
CMACauthentication with 128-bit key
AES-GCM, GMACAES-GCM,KATAES encryption and decryption with GMACES2
GMACauthentication with 128-bit key – for both 4k and 64k versions
DHKATDiffie Hellman key exchange-agreement protocol tested by comparing the shared secret key followed by testing the key derivation function used in deriving the keying material.ES2
DRBG: AES-256 CTR-DRBGKATCritical Function Test (Instantiation, Generation, Reseed): This CAST is performed before the Software Integrity Check. This is the first KAT performedES2
DSAKATDigital Signature Algorithm tested using a public-private key pair to perform a Signature and verify the resultant Signature against a known value.ES2
DSAPCTDigital Signature Algorithm tested using a public-private key pair to perform a Signature and verify the resultant SignatureES3
ECC CDHKATElliptic Curve Cryptography Co-factor Diffie Hellman key exchange-agreement protocol tested by comparing the shared secret key by testing the key derivation function used in deriving the keying material.ES2
ECDSAKATElliptic Curve Digital Signature Algorithm tested using a public-private key pair to perform a Signature and verify the resultant Signature against a known value.ES2
ECDSAPCTECDSA P-224 Pairwise Consistency TestES3
EdDSAEdDSAKATEdwards Curve Digital Signature Algorithm tested using a public-private key pair to perform a Signature and verify the resultant Signature against a known value.ES2
EdDSAPCTEdDSA Pairwise Consistency TestES3
HMAC-SHA2HMAC-SHA2KATCalculate a cryptographic hash-based authentication on data for SHA-1, SHA-224, SHA-256*, SHA-384, SHA- 512ES2
10.2 Conditional Self-Tests

The Module performs the following conditional self-tests: Table 16 – Conditional Self-Tests

Page 32
* HMAC-SHA-256 instantiation: This CAST is
performed before the Software Integrity Check. This is
the third KAT performed.
HMAC-SHA3KATCalculate a cryptographic hash-based authentication on data for SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE-128, SHAKE-256ES2
HMAC-KDF-KATExtract and expand the input key into additional keysES2
SHAusing SHA-1, SHA-224, -256, -384, -512
HMAC-KDF- SHA3HMAC-KDF-KATExtract and expand the input key into additional keysES2
SHA3using SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE-128, SHAKE-256
SHAKATCalculate a cryptographic hash function on the data for SHA-1, SHA-224, SHA-256*, SHA-384, SHA-512 * SHA-256 instantiation: This CAST is performed before the Software Integrity Check. This is the second KAT performed.ES2
SHA3KATCalculate a cryptographic hash function on the data for SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE- 128, SHAKE-256ES2
Triple-DES CBCKAT3-key Triple-DES encryption and decryption tested using a 192-bit keyES2
RSAKAT2048-bit RSA PKCSv1.5 with SHA-224 - no hash - Signature Generation and Signature VerificationES2
RSAPCTRSA Pairwise Consistency Test Signature Generation and Signature VerificationES3
RSAKAT3072-bit RSA Encryption and Decryption per IG D.G.ES2
Error stateDescriptionIndicator
ES1The Module fails the software integrity pre- operational self-test.The Module enters the disable Crypto Module “Error State” and outputs status of ERR_FIPS_INTEGRITY_FAIL, otherwise it indicates successful completion by outputting the OK status.
ES2The Module fails the software CAST test with a specified error number.The Module enters the disable Crypto Module “Error State” and outputs a specific error status; otherwise, it indicates successful completion by enable Crypto Module with OK status.
ES3Module fails all other self-tests not listed above.The Module enters the disable Crypto Module “Error State” and outputs a specific error status; otherwise, it indicates successful completion by enable Crypto Module with OK status.
10.3 Error States and Indicators

The self-tests error states and status indicator are described in table below: Table 17 – Error States and Indicators

Page 33
AbbreviationFull Specification Name
[FIPS140-3]Security Requirements for Cryptographic Modules, March 22, 2019
[ISO19790]International Standard, ISO/IEC 19790, Information technology — Security techniques — Test requirements for cryptographic modules, Third edition, March 2017
[ISO24759]International Standard, ISO/IEC 24759, Information technology — Security techniques — Test requirements for cryptographic modules, Second and Corrected version, 15 December 2015
[IG]Implementation Guidance for FIPS PUB 140-3 and the Cryptographic Module Validation Program, 10/07/22
[108]NIST Special Publication 800-108, Recommendation for Key Derivation Using Pseudorandom Functions (Revised), October 2009
[131A]Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths, Revision 2, March 2019
11 Life-Cycle Assurance

Installation is performed by placing the module in the target file system during the OEM or ISV’s manufacturing process. The module initialization is performed automatically by the operating system’s loader when a calling application is loaded into memory. Operation of the module is controlled by the There is no specific guidance for Administrator or non-Administrators. The module is provided with supporting documentation which includes an API Reference document and Operating Environment document.

11.1 (Cryptographic Officer Guidance)

The Cryptographic Officer will install the Module and associated signature of the Module into the proper location within the computer system. For example, the shared memory library and signature file may be installed in the /usr/local/lib directory, which is protected by Linux access control mechanisms. The Module is protected from modification by the integrity self-test performed during start-up. The Module is initialized by the operating system upon loading the Module into memory for use by calling applications. The Module must be operated in the approved mode to ensure that FIPS 140-3 validated cryptographic

12 Mitigation of Other Attacks

The Module does not implement any mitigation method against other attacks beyond the requirements for

13 References and Definitions

The following standards are referred to in this Security Policy. Table 18 – References

Page 34
AbbreviationFull Specification Name
[132]NIST Special Publication 800-132, Recommendation for Password-Based Key Derivation, Part 1: Storage Applications, December 2010
[133]NIST Special Publication 800-133, Recommendation for Cryptographic Key Generation, Revision 2, June 2020
[135]National Institute of Standards and Technology, Recommendation for Existing Application-Specific Key Derivation Functions, Special Publication 800-135rev1, December 2011.
[186]National Institute of Standards and Technology, Digital Signature Standard (DSS), Federal Information Processing Standards Publication 186-4, July 2013.
[197]National Institute of Standards and Technology, Advanced Encryption Standard (AES), Federal Information Processing Standards Publication 197, November 26, 2001
[198]National Institute of Standards and Technology, The Keyed-Hash Message Authentication Code (HMAC), Federal Information Processing Standards Publication 198-1, July, 2008
[180]National Institute of Standards and Technology, Secure Hash Standard, Federal Information Processing Standards Publication 180-4, August, 2015
[202]FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION, SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions, FIPS PUB 202, August 2015
[38A]National Institute of Standards and Technology, Recommendation for Block Cipher Modes of Operation, Methods and Techniques, Special Publication 800-38A, December 2001
[38B]National Institute of Standards and Technology, Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication, Special Publication 800- 38B, May 2005
[38C]National Institute of Standards and Technology, Recommendation for Block Cipher Modes of Operation: The CCM Mode for Authentication and Confidentiality, Special Publication 800-38C, May 2004
[38D]National Institute of Standards and Technology, Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC, Special Publication 800-38D, November 2007
[38E]National Institute of Standards and Technology, Recommendation for Block Cipher Modes of Operation: The XTS-AES Mode for Confidentiality on Storage Devices, Special Publication 800-38E, January 2010
[38F]National Institute of Standards and Technology, Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping, Special Publication 800-38F, December 2012
[56Ar3]NIST Special Publication 800-56A Revision 3, Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography, April 2018
[56Br2]NIST Special Publication 800-56B Revision 2, Recommendation for Pair-Wise Key Establishment Schemes Using Finite Field Cryptography, March 2019
Page 35
AbbreviationFull Specification Name
[56Cr2]NIST Special Publication 800-56C Revision 2, Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography, August 2020
[67]National Institute of Standards and Technology, Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher, Special Publication 800-67, May 2004
[90A]National Institute of Standards and Technology, Recommendation for Random Number Generation Using Deterministic Random Bit Generators, Special Publication 800-90A, Revision 1, June 2015.
[90B]National Institute of Standards and Technology, Recommendation for the Entropy Sources Used for Random Bit Generation, Special Publication 800-90B, January 2018.
AcronymDefinition
AESAdvanced Encryption Standard
AES-NIAdvanced Encryption Standard New Instructions
APIApplication Program Interface
CBCCipher Block Chaining
CCMCounter with Cipher Block Chaining-Message Authentication Code
CMACCipher-based Message Authentication Code
CMVPCryptographic Module Validation Program
CSPCritical Security Parameter
CTRCounter Mode
DESData Encryption Standard
DHDiffie-Hellman
DRBGDeterministic Random Bit Generator
DSADigital Signature Algorithm
ECC CDHElliptic Curve Cryptography Cofactor Diffie-Hellman
ECDSAElliptic Curve Digital Signature Algorithm
EdDSAEdwards-curve Digital Signature Algorithm
EMCElectromagnetic Compatibility
EMIElectromagnetic Interference
FIPSFederal Information Processing Standard
GCMGalois Counter Mode
HMACHash Message Authentication Code
IGImplementation Guidance

Table 19 – Acronyms and Definitions

Page 36
AcronymDefinition
KATKnown Answer Test
KDFKey Derivation Function
KVMKernel-based Virtual Machine
PAAProcessor Algorithm Acceleration
PCTPair-wise Consistency Test
RNGRandom Number Generator
RSARivest, Shamir and Adleman Algorithm
SHASecure Hash Algorithm
SHSSecure Hash Standard
SOShared Object
TDESTriple-DES
XTSXEX-based Tweaked-codebook mode with ciphertext Stealing