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

Brocade Fabric OS FIPS Cryptographic Module

Certificate#4849StandardFIPS 140-3Level1TypeFirmwareEmbodimentMulti-Chip Stand AloneStatusActiveVendorBrocade Communications Systems LLC
Medium review priority  ·  no TCB surface named  ·  last validated 21 months ago. How this is derived →

Certificate

StandardFIPS 140-3
Overall level1
Module typeFirmware
EmbodimentMulti-Chip Stand Alone
StatusActive
Sunset date10/22/2029
CaveatWhen operated in approved mode
VendorBrocade Communications Systems LLC

Approved Algorithms (34)

AlgorithmACVP Cert
AES-CBCA2604
AES-CCMA2604
AES-CMACA2604
AES-CTRA2604
AES-ECBA2604
Counter DRBGA2604
ECDSA KeyGen (FIPS186-4)A2604
ECDSA KeyVer (FIPS186-4)A2604
ECDSA SigGen (FIPS186-4)A2604
ECDSA SigVer (FIPS186-4)A2604
HMAC-SHA-1A2604
HMAC-SHA2-256A2604
HMAC-SHA2-384A2604
HMAC-SHA2-512A2604
HMAC-SHA3-224A2604
HMAC-SHA3-256A2604
HMAC-SHA3-384A2604
HMAC-SHA3-512A2604
KAS-ECC-SSC Sp800-56Ar3A2604
KAS-FFC-SSC Sp800-56Ar3A2604
RSA KeyGen (FIPS186-4)A2604
RSA SigGen (FIPS186-4)A2604
RSA SigVer (FIPS186-4)A2604
Safe Primes Key GenerationA2604
Safe Primes Key VerificationA2604
SHA-1A2604
SHA2-224A2604
SHA2-256A2604
SHA2-384A2604
SHA2-512A2604
SHA3-224A2604
SHA3-256A2604
SHA3-384A2604
SHA3-512A2604

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

flowchart LR
  %% Deterministic review-risk graph for Brocade Fabric OS FIPS Cryptographic 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>status output<br/>No authentication<br/>Show status</i>"]
    C5["[low] Protocol / secure-channel<br/>references (may be KDF<br/>names, not a live channel)<br/><i>HTTPS<br/>no library/version identified</i>"]
    C6["[low] Operating system / runtime<br/>referenced (boundary<br/>membership not asserted)<br/><i>operating system<br/>application</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 Brocade Fabric OS FIPS Cryptographic 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>status output<br/>No authentication<br/>Show status</i><br/>src: text:keyword"]
    C5["[low] Protocol / secure-channel references (may be KDF names, not a live channel)<br/><i>HTTPS<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/>application</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

Brocade Fabric OS FIPS Cryptographic Module Firmware Version 9.1.1 Document Revision 1.3 Last Update: October 21, 2024 Brocade Communications Systems LLC

1320 Ridder Park Drive

San Jose, CA 95131 USA Brocade Communications Systems LLC grants permission to freely reproduce in entirety without revision

Page 2
Table of Contents
#SectionPage
Page 3
List of tables
ItemPage
Table 1 - Security levels4
Table 2 - Tested operational environments5
Table 3 - Vendor affirmed operational environments5
Table 4 - Approved algorithms8
Table 5 - Non-approved algorithms not allowed in approved mode8
Table 6 - Cryptographic module interfaces10
Table 7 - Roles, service commands, input and output11
Table 8 - Approved services13
Table 9 - Non-approved services14
Table 10 - Sensitive security parameters22
Table 11 - Non-deterministic random number generation specification23
Table 12 - Error state26
Figure 1 - Cryptographic boundary9
Page 4
ISO/IEC 24759:2017 Section 6FIPS 140-3 Section TitleSecurity Level
1General1
2Cryptographic module specification1
3Cryptographic module interfaces1
4Roles, services, and authentication1
5Software/Firmware security1
6Operational environment1
7Physical security1
8Non-invasive securityN/A
9Sensitive security parameter management1
10Self-tests1
11Life-cycle assurance1
12Mitigation of other attacksN/A

This non-proprietary FIPS 140-3 security policy for the Brocade Fabric OS FIPS Cryptographic Module with firmware version 9.1.1 (hereinafter referred to the module) details the secure operation of the Brocade Communications Systems LLC Brocade Fabric OS FIPS Cryptographic Module as required in Federal Information Processing Standards Publication 140-3 (FIPS 140-3) as published by the National Institute of Standards and Technology (NIST) of the United State Department of Commerce. This document, the Cryptographic Module Security Policy, also referred to as the Security Policy, specifies the security rules under which the module must operate. The Brocade Fabric OS FIPS Cryptographic Module underpins Brocade’s Fabric Operating System equipment and is used as a shared library object by applications in Brocade’s Fabric Operating System, for its various cryptographic requirements. The calling applications leverage the module’s well-defined APIs to initialize the module and call cryptographic algorithms for encryption/decryption, key generation, signature generation/verification, and hashing. The Brocade Fabric OS is the firmware foundation for Brocade’s purpose-built network infrastructure for mission-critical storage. The Brocade Fabric OS family of supported products includes Fiber Channel directors, switches, embedded switches and network extension switches. In addition to supporting the switching functionality of these product lines, Fabric OS supports Fabric Vision Technology features for network monitoring, management, and diagnostics, as well as advanced features that help ensure the highest level of reliability, availability, and serviceability. Table 1 - Security levels The module is designed to meet an overall security level of 1.

Page 5
#Operating SystemHardware PlatformProcessorPAA/Acceleration
1Fabric OS 9.1.1Brocade G630 SwitchNXP Semiconductors T1042 (e5500 core)Not applicable
2Fabric OS 9.1.1Brocade X7-8 DirectorNXP Semiconductors P4080 (e500mc core)Not applicable
3Fabric OS 9.1.1Brocade G730 SwitchIntel(R) Atom(TM) CPU C3338R (2 cores)With PAA
4Fabric OS 9.1.1Brocade G730 SwitchIntel(R) Atom(TM) CPU C3338R (2 cores)Without PAA
#Operating SystemHardware Platform
1Fabric OS 9.1.1Brocade X7-4 Director
2Fabric OS 9.1.1Brocade X6-8 Switch
3Fabric OS 9.1.1Brocade X6-4 Switch
4Fabric OS 9.1.1Brocade G610 Switch
5Fabric OS 9.1.1Brocade G620 Switch
6Fabric OS 9.1.1Brocade G720 Switch
7Fabric OS 9.1.1Brocade 7810 Extension Switch
  1. Cryptographic module specification The module is a single binary object file (libfipscrypto.so) running on the tested platform defined in Table 2, and is classified as a multi-chip standalone firmware module. Table 2 - Tested operational environments The following platforms have not been tested as part of the FIPS 140-3 Level 1 certification however Brocade affirms that these platforms are compliance to the tested and validated platforms. Additionally, Brocade also affirms that the Module will function the same way and provide the same security services on any of the operating systems listed below. Table 3 - Vendor affirmed operational environments Please note that 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 which is not listed on the validation certificate. Modes of operation The module supports both approved and non-approved mode of operation. The module will be in approved mode when all pre-operational self-tests have completed successfully and only approved algorithms/services are invoked. See Table 4 and Table 8 below for a list of the supported approved/allowed algorithms/services. The non-approved mode is entered when a non-approved algorithm/non-approved service is invoked. See Table 5 and Table 9 below for a list of non-approved algorithms/non-approved services. The Approved mode of operation can only be transitioned into the non-Approved mode by calling one of the non-Approved services listed in Table
  2. Table 4 below lists all Approved or Vendor-affirmed security functions of the module, including specific key size(s) -in bits otherwise noted- employed for approved services, and implemented modes of operation.
Page 6
CAVP / ACVP CertAlgorithm and StandardMode / MethodDescription / Key Size(s) / Key Strength(s)Use / Function
A2604AES • FIPS 197SP800-38DECB128, 192, 256 bitsEncryption/decryption
A2604AES • FIPS 197SP800-38DCBC128, 192, 256 bitsEncryption/decryption
A2604AES • FIPS 197SP800-38DCTR128, 192, 256 bitsEncryption/decryption
A2604AES-CCM • SP800-38BAES-CCM128, 192, 256 bitsAuthenticated encryption/decryption
A2604AES-CMAC • SP800-38BAES-CMAC128 or 256 bitsMAC generation/verification
A2604Counter DRBG • SP800-90Arev1Counter DRBG (AES- 256) with Derivation Function (df)N/ADeterministic random bit generation
A2604ECDSA • FIPS186-4ECDSA KeyGenCurves: P-256, P-384, P- 521ECDSA key generation
A2604ECDSA • FIPS186-4ECDSA KeyVerCurves: P-256, P-384, P- 521ECDSA key verification
A2604ECDSA • FIPS186-4ECDSA SigGenCurves: P-256, P-384, P- 521ECDSA signature generation
A2604ECDSA • FIPS186-4ECDSA SigVerCurves: P-256, P-384, P- 521ECDSA signature verification
N/AENT (NP) • SP800-90BN/AN/ANon-physical entropy source used for seeding DRBG
A2604HMAC • FIPS198-1HMAC-SHA1112 bits (minimum)Message authentication code
A2604HMAC • FIPS198-1HMAC-SHA2-256112 bits (minimum)Message authentication code
A2604HMAC • FIPS198-1HMAC-SHA2-384112 bits (minimum)Message authentication code
A2604HMAC • FIPS198-1HMAC-SHA2-512112 bits (minimum)Message authentication code
A2604HMAC • FIPS198-1HMAC-SHA3-224112 bits (minimum)Message authentication code
A2604HMAC • FIPS198-1HMAC-SHA3-256112 bits (minimum)Message authentication code
A2604HMAC • FIPS198-1HMAC-SHA3-384112 bits (minimum)Message authentication code
A2604HMAC • FIPS198-1HMAC-SHA3-512112 bits (minimum)Message authentication code
Page 7
CAVP / ACVP CertAlgorithm and StandardMode / MethodDescription / Key Size(s) / Key Strength(s)Use / Function
A2604KAS-ECC-SSC • SP800-56Arev3KAS-ECC-SSC ephemeralUnified: KAS Role: initiator, responderCurve: P-256, P-384 and P-521 Key establishment methodology provides between 128 and 256 bits of encryption strengthSP800-56Arev3 compliant KAS-ECC shared secret computation
A2604KAS-FFC-SSC • SP800-56Arev3KAS-FFC-SSC Scheme: dhEphem: KAS Role: initiator, responderMODP-2048, MODP- 3072 and MODP-4096 Key establishment methodology provides between 112 and 152 bits of encryption strengthSP800-56Arev3 compliant KAS-FFC shared secret computation
A2604RSA • FIPS186-4RSA KeyGenModulus: 2048, 3072, 4096 bitsRSA key generation
A2604RSA • FIPS186-4RSA SigGenModulus: 2048, 3072, 4096 bitsRSA digital signature generation
A2604RSA • FIPS186-4RSA SigVerModulus: 2048, 3072, 4096 bitsRSA digital signature verification
A2604Safe Primes Key Generation • SP800-56Arev3Safe Primes KeyGenMODP-2048, MODP-3072, MODP- 4096, and MODP-8192Keys generation with SafePrimes groups
A2604Safe Primes Key Verification • SP800-56Arev3Safe Primes KeyVerMODP-2048, MODP-3072, MODP- 4096, and MODP-8192Keys verification with SafePrimes groups
A2604SHS • FIPS180-4SHA-1Message Length: 0- 65024 Increment 32Hashing Note: SHA-1 is not used for digital signature generation
A2604SHS • FIPS180-4SHA2-224Message Length: 0-65024 Increment 32Hashing
A2604SHS • FIPS180-4SHA2-256Message Length: 0-65024 Increment 32Hashing
A2604SHS • FIPS180-4SHA2-384Message Length: 0-65024 Increment 32Hashing
A2604SHS • FIPS180-4SHA2-512Message Length: 0-65024 Increment 32Hashing
A2604SHA-3 • FIPS202SHA3-224Message Length: 0-65536 Increment 8Hashing
A2604SHA-3 • FIPS202SHA3-256Message Length: 0-65536 Increment 8Hashing
A2604SHA-3 • FIPS202SHA3-384Message Length: 0-65536 Increment 8Hashing
Page 8
CAVP / ACVP CertAlgorithm and StandardMode / MethodDescription / Key Size(s) / Key Strength(s)Use / Function
A2604SHA-3 • FIPS202SHA3-512Message Length: 0-65536 Increment 8Hashing
N/ACKG (vendor affirmed) [SP 800-133rev2]N/AN/ACryptographic Key Generation (CKG) compliant with SP800- 133rev2 and IG D.H The cryptographic module performs Cryptographic Key Generation (CKG) for asymmetric keys as per sections 4 and 5 in SP800-133rev2 (vendor affirmed). A seed (i.e., the random value) used in asymmetric key generation is a direct output from SP800- 90Arev1 CTR_DRBG
Algorithm/FunctionUse / Function
RSA key wrappingRSA key wrapping
HMAC-MD5Authentication
MD5Hashing
AES-GCMAuthenticated encryption/decryption
DSADSA signature sign/verify
Triple-DESEncryption/decryption
CamelliaEncryption/decryption
SEEDEncryption/decryption
RC4Encryption/decryption
ARIAGCMEncryption/decryption
CHACHA20/POLY1305Encryption/decryption

Table 4 - Approved algorithms Notes: • There are some algorithm modes that were tested but not implemented by the module. Only the algorithms, modes, and key sizes that are implemented by the module are shown in this table. Table 5 - Non-approved algorithms not allowed in approved mode The module does not implement non-approved algorithms allowed in approved mode of operation and non-approved algorithms allowed in approved mode of operation with No security claimed. vetted conditioning component in ENT (NP).

Page 9

Cryptographic boundary Figure 1 below depicts the cryptographic boundary (red dashed line) and physical perimeter (solid red line). The cryptographic boundary is defined as the cryptographic library. The physical perimeter is the Tested Operational Environment’s Physical Perimeter (TOEPP) on which the module runs. Figure 1 - Cryptographic boundary

Page 10
Physical PortLogical Interface TypeData that passes over port/interface
N/AData Input InterfaceArguments for an API call that provide the data to be used or processed by the module (input arguments to all functions specifying input parameters).
N/AData Output InterfaceArguments output from an API call (includes modified input arguments (those passed by reference) and return values for all functions modifying input arguments and returning values).
N/AControl Input InterfaceArguments for an API call used to control and configure module operation.
N/AControl Output InterfaceN/A
N/AStatus Output InterfaceReturn values from firmware API commands used to obtain information on the status of the module. The Status Output Interface also includes the log file where the module messages are output.

3. Cryptographic module interfaces The module’s physical perimeter encompasses the peripheral’s devices (USB devices, network devices [Ethernet and Wireless adapters], and power adapter) on the tested platform running Brocade’s Fabric Operating System. However, the module provides only a logical interface via Application Programming Interface (API) calls and does not interface or communicate with or across any of the physical ports of the GPC. This logical interface exposes service that calling applications may use directly. The logical interfaces (APIs) provided by the module are mapped onto the FIPS 140-3 defined logical interfaces (data input, data output, control input, control output and status output). It is through this logical API that the module logically separates them into distinct and separate interfaces. Please note FIPS 140-3 interfaces is as follows. Table 6 - Cryptographic module interfaces

Page 11
RoleServiceInputOutput
Crypto Officer (CO)Module initializationCommand to initialize the moduleModule initialization status
UserShow statusAPI commandModule’s current status
UserShow versionAPI commandDisplays the module’s name/ID and versioning information
UserZeroizationModule reboot or power down the tested platformSSPs Zeroization status
UserFirmware integrity testCommand to enable the firmware integrity testFirmware Integrity Test completion status
UserSelf-testsCommand to enable self-test (bootup / on-demand)Self-Tests or conditional tests completion status
UserEncryption and decryptionCommand to conduct the encryption and decryption operationEncrypted or decrypted completion status
UserKeyed hashCommand to conduct the HMAC/CMAC operationKeyed Hash completion status
UserMessage digestCommand to conduct the Message Digest operationHashed completion status
UserRandom number generationCommand to conduct the Counter DRBG generationRandom value generation status
UserKey agreement shared secret computationCommand to run key agreement shared secret computationKey agreement shared secret computation status
UserSignature generation and verificationCommand to conduct the signature generation and verificationSignature generation or verification completion status
UserAsymmetric key generation and verificationCommand to generate/verify asymmetric cryptographic keypairKeypair generation/verification status

4. Roles, services, and authentication The module supports both Crypto Officer (CO) role and User role. No authentication is required at security level 1 and the assumption of the role is implicit by the service being performed. The module Table 7 - Roles, service commands, input and output Table 8 below defines the relationship between access to CSPs and the different module services. The modes of access shown in the table are defined as: G = Generate: The module generates or derives the SSP. R = Read: The SSP is read from the module (e.g., the SSP is output). W = Write: The SSP is updated, imported, or written to the module. E = Execute: The module uses the SSP in performing a cryptographic operation. Z = Zeroize: The module zeroizes the SSP.

Page 12
ServiceDescriptionApproved Security FunctionsKeys and/or SSPsRolesAccess Rights to Keys and/or SSPsIndicator
Module initializationInitialize the moduleN/AN/ACrypto OfficerEN/A
Show statusDisplay running status of the moduleN/ANoneUserN/AN/A
Show versionProvide module’s name and version informationN/ANoneCON/AN/A
ZeroizationZeroize all SSPsN/AAll SSPsUserZN/A
Firmware integrity testCheck signature during the firmware integrity testHMAC-SHA-1Firmware integrity test key (non-SSP)UserESuccess or error code
Self-testsRun pre- operational and conditional Algorithm Self- TestsN/AN/AUserEPass/fail status output
Encryption and decryptionConduct symmetric encryption and decryptionAES-ECB; AES-CBC; AES-CTR; AES-CCMAES KeyUserEService Indicator log (per every use of approved algorithm)
Keyed hashAuthentication/i ntegrity checksAES-CMAC; HMACHMAC Key; CMAC KeyUserEService Indicator log (per every use of approved algorithm)
Message digestConduct message digest operationSHA-1; SHA2-256; SHA2-384; SHA2-512; SHA3-224; SHA3-256; SHA3-384; SHA3-512N/AUserEService Indicator log (per every use of approved algorithm)
Random number generationGenerate random numbers for use by crypto moduleCounter DRBG; ENT (NP)DRBG entropy inputs; DRBG seed; DRBG internal state v; DRBG keyUserEService Indicator log (per every use of approved algorithm)
Page 13
ServiceDescriptionApproved Security FunctionsKeys and/or SSPsRolesAccess Rights to Keys and/or SSPsIndicator
Key agreement shared secret computationConduct key agreement shared secret computationKAS-ECC-SSC; KAS-FFC-SSC; Safe Prime Key Generation (for KAS-FFC-SSC only)DH private key; DH public key; DH shared secret; ECDH private key; ECDH public key; ECDH shared secretUserEService Indicator log (per every use of approved algorithm)
Signature generation and verificationGenerate and verify signaturesRSA SigGen; RSA SigVer; ECDSA SigGen; ECDSA SigVerRSA private key; RSA public key; ECDSA private key; ECDSA public keyUserEService Indicator log (per every use of approved algorithm)
Asymmetric key generation and verificationGenerate/verify asymmetric key pairCKG; Counter DRBG; KAS-ECC-SSC; KAS-FFC-SSC; Safe Primes KeyGen; Safe Primes KeyVer; RSA KeyGen; ECDSA KeyGen; ECDSA KeyVerDH private key; DH public key; ECDH private key; ECDH public key; RSA private Key; RSA public key; ECDSA private key; ECDSA public keyUserG; EService Indicator log (per every use of approved algorithm)
ServiceDescriptionAlgorithms AccessedRolesIndicator
RSA key wrappingRSA key wrappingRSAUser
AuthenticationAuthentication by using HMAC-MD5HMAC-MD5UserN/A
HashingHashing by using MD5MD5UserN/A
Authenticated encryption/decryptionAuthenticated encryption/decryption by using AES-GCMAES-GCMUserN/A
DSA signature sign/verifyDSA Signature sign/verifyDSAUserN/A
Encryption/decryptionEncryption/decryption by using Triple-DESTriple-DESUserN/A
Page 14
ServiceDescriptionAlgorithms AccessedRolesIndicator
Encryption/decryptionEncryption/decryption by using CamelliaCamelliaUserN/A
Encryption/decryptionEncryption/decryption by using SEEDSEEDUserN/A
Encryption/decryptionEncryption/decryption by using RC4RC4UserN/A
Encryption/decryptionEncryption/decryption by using ARIAGCMARIAGCMUserN/A
Encryption/decryptionEncryption/decryption by using CHACHA20/POLY1305CHACHA20/P OLY1305UserN/A

Table 9 - Non-approved services

Page 15

5. Software/Firmware security Integrity techniques The cryptographic module is a binary file (libfipscrypto.so) dynamically linked within the application in FOS (Fabric Operating System). To ensure firmware security, the module is protected by an HMAC-SHA-1 (HMAC Cert. #A2604) algorithm. The firmware integrity test key was preloaded to the module’s binary at the factory and used only for the pre-operational firmware integrity self-test. During initialization of the module, the integrity of the runtime executable is verified using an HMAC-SHA-1 which is compared to a value computed at build time. If at load time the MAC does not match the stored, known MAC value, the module enters a critical error state where all crypto functionality inhibited. The module must be reloaded to attempt the integrity test again. Integrity test on-demand The integrity test is performed as part of the pre-operational self-tests. It is automatically executed at power-on. The operator can power-cycle or reboot the tested platform to initiate the integrity test ondemand.

Page 16
  1. Operational environment The module will operate in a non-modifiable operational environment per the definition in FIPS 140-3 level 1 specifications. The module runs on the operating system executing on the tested platforms listed in Table
  2. The operational environment shall be restricted to a single operator mode of operation (i.e., concurrent operators are explicitly excluded). The application that requests cryptographic services is the single user of the module. All cryptographic keys and CSPs are under the control of the OS, which protects its SSPs against unauthorized disclosure, modification, and substitution. Additionally, the OS provides dedicated process space to each executing process, and the module operates entirely within the process space.
Page 17
  1. Physical security The module is running on the multi-chip standalone production grade platform to meet physical security requirements from FIPS 140-3 level
  2. The module’s Tested Operational Environment’s Physical Perimeter (TEOPP) is drawn at the casing of the tested platforms in Table
  3. The module’s tested platforms consist of production-grade components. All ICs are coated with industry standard passivation.
Page 18

8. Non-invasive security The module does not claim to implement non-invasive security beyond the FIPS 140-3 Level 1 requirements for validation.

Page 19
Key/SSP/ Name TypeStrengthSecurity Function and Cert.GenerationImport / ExportEstablish mentStorageZeroizationUse & related keys
AES key128-256 bitsAES-CBC; AES-ECB; AES-CTR; AES-CCM Cert. #A2604N/AImport: Module’s API Export: NoMD/EEN/A: The module does not provide persistent keys/SSPs storageModule reboot or power down the tested platformData protection
DRBG entropy inputs384 bitsENT (NP)Obtained from the entropy source ENT (NP)Import: From the entropy source ENT (NP) via the API Export: NoMD/EEN/A: The module does not provide persistent keys/SSPs storageN/A: The module does not provide persistent keys/SSPs storageModule reboot or power down the tested platformUsed for DRBG generation
DRBG seed256 bitsCounter DRBG Cert. #A2604Derived from entropy input string as defined by SP800-90Arev1Import: No Export: NoN/AN/A: The module does not provide persistent keys/SSPs storageModule reboot or power down the tested platformUsed for DRBG generation
DRBG internal state v256 bitsCounter DRBG Cert. #A2604Derived from entropy input string as defined by SP800-90Arev1Import: No Export: NoN/AN/A: The module does not provide persistent keys/SSPs storageModule reboot or power down the tested platformUsed for DRBG generation
DRBG key256 bitsCounter DRBG Cert. #A2604Derived from entropy input string as defined by SP800-90Arev1Import: No Export: NoN/AN/A: The module does not provide persistent keys/SSPs storageModule reboot or power down the tested platformUsed for DRBG generation

9. Sensitive security parameter management The module possesses firmware integrity test HMAC key (non-SSP). Beyond that key, the module does not store any other keys persistently, and it is the calling applications responsibility to appropriately manage keys.

Page 20
Key/SSP/ Name TypeStrengthSecurity Function and Cert.GenerationImport / ExportEstablish mentStorageZeroizationUse & related keys
DH private key112-152 bits (MODP- 2048, MODP- 3072, MODP- 4096)CKG; Counter DRBG; Safe Primes KeyGen; Safe Primes KeyVer; KAS-FFC-SSC Cert. #A2604Internally generated conformant to SP800-133r2 (CKG) using SP800-56Arev3 Diffie-Hellman key generation method, and the random value used in key generation is generated using SP800-90Arev1 DRBGImport: No Export: NoN/AN/A: The module does not provide persistent keys/SSPs storageModule reboot or power down the tested platformUsed for DH key agreement
DH public key112-152 bits (MODP- 2048, MODP- 3072, MODP- 4096)Safe Primes KeyGen; Safe Primes KeyVer; KAS-FFC-SSC Cert. #A2604Internally derived per Diffie-Hellman key agreement (SP800-56Arev3)Import: No Export: NoN/AN/A: The module does not provide persistent keys/SSPs storageModule reboot or power down the tested platformUsed for DH key agreement
DH shared secret112-152 bits (MODP- 2048, MODP- 3072, MODP- 4096)KAS-FFC-SSC Cert. #A2604Internally derived per SP800-56Arev3 Diffie-Hellman shared secret computation methodImport: No Export: NoN/AN/A: The module does not provide persistent keys/SSPs storageModule reboot or power down the tested platformUsed for DH key agreement
ECDH private key128-256 bits (Curves: P-256, P- 384, P- 521)CKG; Counter DRBG; KAS-ECC-SSC Cert. #A2604Internally generated conformant to SP800-133r2 (CKG) using SP800-56Arev3 EC Diffie- Hellman key generation method, and the random value used in key generation is generated using SP800-90Arev1 DRBGImport: No Export: NoN/AN/A: The module does not provide persistent keys/SSPs storageModule reboot or power down the tested platformUsed for ECDH key agreement
Page 21
Key/SSP/ Name TypeStrengthSecurity Function and Cert.GenerationImport / ExportEstablish mentStorageZeroizationUse & related keys
ECDH public key128-256 bits (Curves: P-256, P- 384, P- 521)KAS-ECC-SSC Cert. #A2604Internally derived per EC Diffie-Hellman key agreement (SP800-56Arev3)Import: No Export: NoN/AN/A: The module does not provide persistent keys/SSPs storageModule reboot or power down the tested platformUsed for ECDH key agreement
ECDH shared secret128-256 bits (Curves: P-256, P- 384, P- 521)KAS-ECC-SSC Cert. #A2604Internally derived per SP800-56Arev3 EC Diffie- Hellman shared secret computation methodImport: No Export: NoN/AN/A: The module does not provide persistent keys/SSPs storageModule reboot or power down the tested platformUsed for ECDH key agreement
RSA private key112-152 bits (Modulus : 2048, 3072, 4096 bits)CKG; Counter DRBG; RSA KeyGen; RSA SigGen Cert. #A2604Internally generated conformant to SP800-133r2 (CKG) using FIPS 186-4 RSA key generation method, and the random value used in key generation is generated using SP800-90Arev1 DRBGImport: No Export: NoN/AN/A: The module does not provide persistent keys/SSPs storageModule reboot or power down the tested platformDigital signature generation
RSA public key112-152 bits (Modulus : 2048, 3072, 4096 bits)RSA SigVer Cert. #A2604Internally derived per FIPS186-4 RSA Keypair generation methodImport: No Export: NoN/AN/A: The module does not provide persistent keys/SSPs storageModule reboot or power down the tested platformDigital signature verification
Page 22
Key/SSP/ Name TypeStrengthSecurity Function and Cert.GenerationImport / ExportEstablish mentStorageZeroizationUse & related keys
ECDSA private key128-256 bits (Curves: P-256, P- 384, P- 521)CKG; Counter DRBG; ECDSA KeyGen; ECDSA SigGen Cert. #A2604Internally generated conformant to SP800-133r2 (CKG) using FIPS 186-4 ECDSA key generation method, and the random value used in key generation is generated using SP800-90Arev1 DRBGImport: No Export: NoN/AN/A: The module does not provide persistent keys/SSPs storageModule reboot or power down the tested platformDigital signature generation
ECDSA public key128-256 bits (Curves: P-256, P- 384, P- 521)ECDSA SigVer Cert. #A2604Internally derived per FIPS186-4 ECDSA Keypair generation methodImport: No Export: NoN/AN/A: The module does not provide persistent keys/SSPs storageModule reboot or power down the tested platformDigital signature verification
HMAC key112 bits (minimu m)HMAC-SHA-1; HMAC-SHA2- 256; HMAC-SHA2- 384; HMAC-SHA2- 512; HMAC-SHA3- 224; HMAC-SHA3- 256; HMAC-SHA3- 384; HMAC-SHA3- 512 Cert. #A2604N/AImport: Module’s API Export: NoMD/EEN/A: The module does not provide persistent keys/SSPs storageModule reboot or power down the tested platformUsed for keyed hash
CMAC key128 or 256 bitsAES-CMAC Cert. #A2604N/AImport: Module’s API Export: NoMD/EEN/A: The module does not provide persistent keys/SSPs storageModule reboot or power down the tested platformUsed for keyed hash

Table 10 - Sensitive security parameters

Page 23
Entropy sourcesMinimum number of bits of entropyDetails
ENT (NP): CPU Jitter (libjitterentropy v3.0.1)0.9075 bits per bitCPU Jitter Random Number Generator (Jitter Entropy Library v3.0.1) from Stephen Muller provides at least 256 bits entropy. Please see https://www.chronox.de/jent/doc/CPU-Jitter- NPTRNG.pdf for more information. The SHA3-256 algorithm as a vetted conditioner used in Jitter Entropy Library has been ACVP tested with the SHS Cert. #A2610

Note: All SSPs will be zeroized by all “0”s and cannot be retrievable or reusable after zeroization operation. RBG entropy source Table 11 - Non-deterministic random number generation specification

Page 24

10. Self-tests The module automatically performs both Pre-Operational Self-Tests and Cryptographic Algorithm SelfTests (CASTs) after the power is on. Prior to providing any data output via the data output interface, the module would perform and pass the pre-operational self-tests. Following the successful pre-operational self-tests, the module would execute the Conditional Cryptographic Algorithm Self-tests (CASTs). The remaining self-tests for all approved algorithms are performed right before first instance of use of the respective algorithm. In the event a self-test fails, the module enters the critical error state and an error message is logged. In this state, cryptographic operations are halted and the module inhibits all data output from the module as the API interface is disabled. In order to attempt to exit the error state, the module must be rebooted. If the error persists, the module must be reinitialized. Pre-operational self-tests:

Page 25
Page 26
Cause of ErrorError State Indicator
Failed Pre-Operational Firmware Integrity TestERROR: Libfipscrypto Critical Failure! Integrity check failed... System going for reboot!
Failed Conditional CASTSelftest of <algorithm name> failed. System going for reboot!
Failed Conditional PCT<Algorithm> pairwise consistency test failed
SP 800-90B Entropy Source (Start-up/Continuous health tests)Entropy request is not serviced and error is returned to crypto module.
Page 27

11. Life-cycle assurance The module design corresponds to the module security rules. This section documents the security rules enforced by the cryptographic module to implement the security requirements of this FIPS 140-3 Level 1 module. General guidance The module meets all the Level 1 requirements for FIPS 140-3. The module functions entirely within the process space of the process that invokes it, and thus satisfies the FIPS 140-3 requirement for a single user mode of operation. During system start-up the OS will call the fipscrypto_init_func() function. The fipscrypto_init_func() function is the default entry point for the module. The function initiates all self-tests and does not return to the OS until all self-tests are completed successfully and the module is in an approved mode of operation. No other tasks are executed while the self-tests are performed so no data is passed and all cryptographic operations are prohibited. If a self-test fails, the module enters a critical error state and must be reloaded to clear the error state and retry the self-tests. End of life In addition, the module is not distributed as a standalone library and is only used in conjunction with the solution. The end user of the operating system is also responsible for SSPs zeroization based on the methods listed in Table 12.

Page 28

12. Mitigation of other attacks The module does not claim to mitigate any attacks beyond the FIPS 140-3 Level 1 requirements for validation.