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

KeyPair FIPS Provider for OpenSSL 3

Certificate#4724StandardFIPS 140-3Level1TypeSoftwareEmbodimentMulti-Chip Stand AloneStatusActiveVendorKeyPair Consulting Inc.
Medium review priority  ·  no TCB surface named  ·  OpenSSL upstream has published 40 CVEs since this module's initial validation  ·  last validated 2 months ago. How this is derived →

Certificate

StandardFIPS 140-3
Overall level1
Module typeSoftware
EmbodimentMulti-Chip Stand Alone
StatusActive
Sunset date7/10/2029
CaveatNo assurance of the minimum strength of generated SSPs (e.g., keys).
VendorKeyPair Consulting Inc.

Approved Algorithms (99)

AlgorithmACVP Cert
AES-CBCA4481
AES-CBC-CS1A4481
AES-CBC-CS2A4481
AES-CBC-CS3A4481
AES-CCMA4481
AES-CFB1A4481
AES-CFB128A4481
AES-CFB8A4481
AES-CTRA4481
AES-ECBA4481
AES-GCMA4481
AES-KWA4481
AES-KWPA4481
AES-OFBA4481
AES-XTS Testing Revision 2.0A4481
AES-CMACA4481
AES-GMACA4481
HMAC-SHA-1A4481
HMAC-SHA2-224A4481
HMAC-SHA2-256A4481
HMAC-SHA2-384A4481
HMAC-SHA2-512A4481
HMAC-SHA2-512/224A4481
HMAC-SHA2-512/256A4481
HMAC-SHA3-224A4481
HMAC-SHA3-256A4481
HMAC-SHA3-384A4481
HMAC-SHA3-512A4481
DRBG
Hash DRBGA4481
HMACA4481
DSA KeyGen (FIPS186-A4481
DSA PQGGen (FIPS186-A4481
DSA PQGVer (FIPS186-A4481
ECDSA KeyGenA4481
ECDSA KeyVerA4481
EDDSA KeyGenA4481
EDDSA KeyVerA4481
RSA KeyGen (FIPS186-A4481
DSA SigGen (FIPS186-4)A4481
DSA SigVer (FIPS186-4)A4481
ECDSA SigGen (FIPS186-4)A4481
ECDSA SigVer (FIPS186-4)A4481
EDDSA SigGenA4481
EDDSA SigVerA4481
RSA SigGen (FIPS186-4)A4481
RSA SigGen (FIPS186-5)A4481
RSA Signature PrimitiveA4481
RSA SigVer (FIPS186-4)A4481
RSA SigVer (FIPS186-5)A4481
KAS-ECC CDH-ComponentA4481
KAS-ECC-SSC Sp800-56Ar3A4481
KAS-FFC-SSC Sp800-56Ar3A4481
KAS-IFC-SSCA4481
KDA HKDF SP800-A4481
56Cr2
KDA OneStepA4481
SP800-56Cr2
KDA TwoStepA4481
KDF ANS 9.42A4481
KDF ANS 9.63A4481
KDF SP800-108A4481
KDF SSH (CVL)A4481
PBKDFA4481
TLS v1.2 KDFA4481
TLS v1.3 KDFA4481
KTS-IFCA4481
SHA-1A4481
SHA2-224A4481
SHA2-256A4481
SHA2-384A4481
SHA2-512A4481
SHA2-512/224A4481
SHA2-512/256A4481
SHA3-224A4481
SHA3-256A4481
SHA3-384A4481
SHA3-512A4481
SHAKE-128A4481
SHAKE-256A4481
Counter DRBG
DSA SigGen
DSA SigVer
ECDSA SigGen
ECDSA SigVer
EDDSA ED448
EDDSA ED25519
HMAC DRBG
KAS-ECC-SSC
Sp800-56Ar3
KAS-FFC-SSC
KAS-KDF
OneStep SP800-
TwoStep SP800-
KDF SSH
RSA SigGen
RSA SigVer
DSA KeyGen
RSA KeyGen

Security Levels (Table 1)

Requirement areaLevel
Cryptographic Module Specification2
Cryptographic Module Interfaces3
Roles, Services, and Authentication4
Software/Firmware Security5
Operational Environment6
Physical SecurityN/A
Non-Invasive SecurityN/A
Self-Tests1
Life-Cycle Assurance1
Mitigation of Other Attacks1

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

flowchart LR
  %% Deterministic review-risk graph for KeyPair FIPS Provider for OpenSSL 3
  %% Review prompts and evidence gaps, NOT vulnerability findings.
  subgraph CMVP["CMVP-disclosed clues"]
    C2["[high] Firmware update / recovery<br/>/ rollback services<br/><i>Self-test<br/>failure</i>"]
    C3["[high] Unauthenticated /<br/>self-test / status service<br/>surface<br/><i>Cipher (Unauth)<br/>BC-UnAuth<br/>Cipher</i>"]
    C5["[low] Protocol / secure-channel<br/>references (may be KDF<br/>names, not a live channel)<br/><i>TLS<br/>SSH<br/>DTLS</i>"]
    C6["[low] Operating system / runtime<br/>referenced (boundary<br/>membership not asserted)<br/><i>operating system<br/>linux<br/>application</i>"]
  end
  subgraph Inference["Derived inference"]
    I2["Trusted code is reachable<br/>through update and<br/>recovery paths."]
    I3["Some services may process<br/>input 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["update image format ·<br/>signature-before-parse<br/>proof · anti-rollback /<br/>downgrade policy"]
    E3["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 KeyPair FIPS Provider for OpenSSL 3
  %% confidence: high = structured record field; medium = structured but soft; low (dashed) = bare keyword hit, context unverified
  subgraph CMVP["CMVP-disclosed clues (deterministic)"]
    C2["[high] Firmware update / recovery / rollback services<br/><i>Self-test<br/>failure</i><br/>src: securityPolicy.services"]
    C3["[high] Unauthenticated / self-test / status service surface<br/><i>Cipher (Unauth)<br/>BC-UnAuth<br/>Cipher</i><br/>src: securityPolicy.services"]
    C5["[low] Protocol / secure-channel references (may be KDF names, not a live channel)<br/><i>TLS<br/>SSH<br/>DTLS</i><br/>src: text:keyword"]
    C6["[low] Operating system / runtime referenced (boundary membership not asserted)<br/><i>operating system<br/>linux<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 clueHigh;
  class C5,C6 clueLow;

Security Policy, page by page

Page 1

KeyPair Consulting Inc. KeyPair FIPS Provider for OpenSSL 3 Document Version 1.5 December 2, 2025 KeyPair Consulting Inc.

987 Osos Street

San Luis Obispo, CA 93401 keypair.us +1 805.316.5024

Page 2

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 Table of Contents 1.1 1.2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 6.1 5.1 5.2 5.3 4.1 4.2 4.3 4.4 4.5 3.1 9.1

Page 3

FIPS 140-3 Security Policy 9.2 9.3 9.4 9.5 10.1 10.2 10.3 10.4 10.5 11.1 11.2 11.3 11.4 12.1 12.2 12.3 KeyPair FIPS Provider for OpenSSL 3

Page 4

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 List of Tables List of Figures

Page 5
Security level
NameISO SectionRequirementLevel
11General1
22Cryptographic module specification1
33Cryptographic module interfaces1
44Roles, services, and authentication1
55Software/Firmware security1
66Operational environment1
77Physical securityN/A
88Non-invasive securityN/A
99Sensitive security parameter management1
1010Self-tests1
1111Life-cycle assurance3
1212Mitigation of other attacks1
Overall LevelOverall Level1

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

1.1 Overview

hereafter denoted the Module. The Module meets FIPS 140-3 overall Level 1 requirements, with security levels as shown in Section 1.2. In accordance with AS02.05, ISO/IEC 19790:2012 §7.7 Physical Security is optional and does not apply to the Module.

1.2 Security Levels
2.1 Description

Purpose and Use: The Module is a cryptographic software library, intended for use by US and Canadian Federal agencies and other markets that require FIPS 140-3 validated cryptographic functionality. The Module is distributed by KeyPair to vendors for incorporation into their products. The Module design corresponds to the Module security rules. Security rules enforced by the Module are described in the appropriate context of this document. Module Embodiment: Multi-Chip Standalone

Page 6

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 Cryptographic Boundary: Figure 1 depicts the Module operational environment, with the cryptographic boundary highlighted in red inclusive of all Module entry points (API calls). The Module is defined as a Software module per AS02.03. The pre-operational approved integrity test is performed over all components within the cryptographic boundary. Tested Operational Environment’s Physical Perimeter (TOEPP): The General Purpose Computer is the TOEPP. Figure 1: Block Diagram

Page 7
Module configuration
NameOperating SystemHardware PlatformFirmware VersionSoftware VersionProcessorPaa PaiHypervisorFeaturesPackageIntegrity Test
fips.so3.0.10 with KP_1.2fips.so for Unix/Linux platformsfips.soHMAC-SHA2-256 #A4481 over the
fips.dll3.0.10 with KP_1.2fips.dll for Windows platformsfips.dllHMAC-SHA2-256 #A4481 over the
AIX 7.3 32-bitAIX 7.3 32-bitIBM Power E1080 (9080-HEX)3.0.10 withIBM POWER10 (PPC)YesPowerVM 1060
AIX 7.3 32-bitAIX 7.3 32-bitIBM Power E1080 (9080-HEX)3.0.10 withIBM POWER10 (PPC)NoPowerVM 1060
AIX 7.3 64-bitAIX 7.3 64-bitIBM Power E1080 (9080-HEX)3.0.10 withIBM POWER10 (PPC)YesPowerVM 1060
AIX 7.3 64-bitAIX 7.3 64-bitIBM Power E1080 (9080-HEX)3.0.10 withIBM POWER10 (PPC)NoPowerVM 1060
HID Intelligent Controller OS 2.0HID Intelligent Controller OS 2.0LP45023.0.10 withAtmel SAMA5 (ARMv7)No
HID Intelligent Controller OS 2.0HID Intelligent Controller OS 2.0MP45023.0.10 withSTMicroelectronics STM32MP133CAF3 (ARMv7)No
Linux 5.4Linux 5.4Gallagher Controller 70003.0.10 withNXP i.MX 8X (Cortex-A35)Yes
Linux 5.4Linux 5.4Gallagher Controller 70003.0.10 withNXP i.MX 8X (Cortex-A35)No
Linux 6.1Linux 6.1Gallagher Controller 60003.0.10 withAtmel AT91SAM9No
PexOS 1.0PexOS 1.0SuperMicro SuperServer 6018R-3.0.10 withIntel® Xeon® Gold 6248 (Cascade Lake)YesVMware ESXi 7
MTRMTRKP_1.2
PexOS 1.0PexOS 1.0SuperMicro SuperServer 6018R-3.0.10 withIntel® Xeon® Gold 6248 (Cascade Lake)NoVMware ESXi 7
MTRMTRKP_1.2
Panzura Base OS 1.2Panzura Base OS 1.2Lenovo ThinkPad X1 Extreme3.0.10 withIntel® Core™ i7-10850H vPro® CPU @ 2.70GHzYes
Gen 3Gen 3KP_1.2(Comet Lake)
Module configuration
NameOperating SystemHardware PlatformFirmware VersionSoftware VersionProcessorPaa PaiHypervisorFeaturesPackageIntegrity Test
fips.so3.0.10 with KP_1.2fips.so for Unix/Linux platformsfips.soHMAC-SHA2-256 #A4481 over the
fips.dll3.0.10 with KP_1.2fips.dll for Windows platformsfips.dllHMAC-SHA2-256 #A4481 over the
AIX 7.3 32-bitAIX 7.3 32-bitIBM Power E1080 (9080-HEX)3.0.10 withIBM POWER10 (PPC)YesPowerVM 1060
AIX 7.3 32-bitAIX 7.3 32-bitIBM Power E1080 (9080-HEX)3.0.10 withIBM POWER10 (PPC)NoPowerVM 1060
AIX 7.3 64-bitAIX 7.3 64-bitIBM Power E1080 (9080-HEX)3.0.10 withIBM POWER10 (PPC)YesPowerVM 1060
AIX 7.3 64-bitAIX 7.3 64-bitIBM Power E1080 (9080-HEX)3.0.10 withIBM POWER10 (PPC)NoPowerVM 1060
HID Intelligent Controller OS 2.0HID Intelligent Controller OS 2.0LP45023.0.10 withAtmel SAMA5 (ARMv7)No
HID Intelligent Controller OS 2.0HID Intelligent Controller OS 2.0MP45023.0.10 withSTMicroelectronics STM32MP133CAF3 (ARMv7)No
Linux 5.4Linux 5.4Gallagher Controller 70003.0.10 withNXP i.MX 8X (Cortex-A35)Yes
Linux 5.4Linux 5.4Gallagher Controller 70003.0.10 withNXP i.MX 8X (Cortex-A35)No
Linux 6.1Linux 6.1Gallagher Controller 60003.0.10 withAtmel AT91SAM9No
PexOS 1.0PexOS 1.0SuperMicro SuperServer 6018R-3.0.10 withIntel® Xeon® Gold 6248 (Cascade Lake)YesVMware ESXi 7
MTRMTRKP_1.2
PexOS 1.0PexOS 1.0SuperMicro SuperServer 6018R-3.0.10 withIntel® Xeon® Gold 6248 (Cascade Lake)NoVMware ESXi 7
MTRMTRKP_1.2
Panzura Base OS 1.2Panzura Base OS 1.2Lenovo ThinkPad X1 Extreme3.0.10 withIntel® Core™ i7-10850H vPro® CPU @ 2.70GHzYes
Gen 3Gen 3KP_1.2(Comet Lake)
Panzura Base OS 1.2Panzura Base OS 1.2Lenovo ThinkPad X1 Extreme3.0.10 withIntel® Core™ i7-10850H vPro® CPU @ 2.70GHzNo
Gen 3Gen 3KP_1.2(Comet Lake)
Scientific Linux 6.9Scientific Linux 6.9SteelHead CXA-005803.0.10 withIntel® Xeon® D-1513N (Broadwell)Yes
Scientific Linux 6.9Scientific Linux 6.9SteelHead CXA-005803.0.10 withIntel® Xeon® D-1513N (Broadwell)No
SFOS 20.0SFOS 20.0XGS 31003.0.10 withAMD Ryzen Embedded V1780BYes
SFOS 20.0SFOS 20.0XGS 31003.0.10 withAMD Ryzen Embedded V1780BNo
SnowflakeOS 1.2SnowflakeOS 1.2HPE ProLiant DL60 Gen93.0.10 withIntel® Xeon® E5-2609 (Sandy Bridge EP)Yes
SnowflakeOS 1.2SnowflakeOS 1.2HPE ProLiant DL60 Gen93.0.10 withIntel® Xeon® E5-2609 (Sandy Bridge EP)No
SnowflakeOS 1.2SnowflakeOS 1.2Ampere® Altra® 2U Server3.0.10 withAmpere® Altra® SOC with Aarch64 ARMv8Yes
R272-P33R272-P33KP_1.2
SnowflakeOS 1.2SnowflakeOS 1.2Ampere® Altra® 2U Server3.0.10 withAmpere® Altra® SOC with Aarch64 ARMv8No
R272-P33R272-P33KP_1.2
Ubuntu 20.04 LTSUbuntu 20.04 LTSDell Inspiron 75913.0.10 withIntel Core i7-10510UYes
Ubuntu 20.04 LTSUbuntu 20.04 LTSDell Inspiron 75913.0.10 withIntel Core i7-10510UNo
Ubuntu 20.04 LTSUbuntu 20.04 LTSDell PowerEdge R75153.0.10 withAMD EPYC 7313PYes
Ubuntu 20.04 LTSUbuntu 20.04 LTSDell PowerEdge R75153.0.10 withAMD EPYC 7313PNo
ZPE Systems' Nodegrid OSZPE Systems' Nodegrid OSNet Services Router (NSR)3.0.10 withIntel® Atom™ CPU C3758 (Denverton)Yes
version 6.0version 6.0KP_1.2
ZPE Systems' Nodegrid OSZPE Systems' Nodegrid OSNet Services Router (NSR)3.0.10 withIntel® Atom™ CPU C3758 (Denverton)No
version 6.0version 6.0KP_1.2
Red Hat Enterprise Linux 9Red Hat Enterprise Linux 9HPE ProLiant XL420 Gen103.0.10 withIntel® Xeon® Silver 4214R CPUYes
Red Hat Enterprise Linux 9Red Hat Enterprise Linux 9HPE ProLiant XL420 Gen103.0.10 withIntel® Xeon® Silver 4214R CPUNo
Microsoft Windows 11 ProMicrosoft Windows 11 ProDell Optiplex SFF 70203.0.10 withIntel® Core™ i3-14100 (Raptor Lake)Yes
Microsoft Windows 11 ProMicrosoft Windows 11 ProDell Optiplex SFF 70203.0.10 withIntel® Core™ i3-14100 (Raptor Lake)No
Microsoft Windows Server 2022Microsoft Windows Server 2022Dell PowerEdge R4503.0.10 withIntel® Xeon® Silver 4309Y (Ice Lake)Yes
Microsoft Windows Server 2022Microsoft Windows Server 2022Dell PowerEdge R4503.0.10 withIntel® Xeon® Silver 4309Y (Ice Lake)No
Rocky Linux 8Rocky Linux 8Lenovo ThinkPad P14s Gen 13.0.10 withIntel® Core™ i7- 10510U (Comet Lake)Yes
Rocky Linux 8Rocky Linux 8Lenovo ThinkPad P14s Gen 13.0.10 withIntel® Core™ i7- 10510U (Comet Lake)No
Ubuntu 18.04Ubuntu 18.04Dell Inspiron 7591 with Intel® Core™ i7-10510U
Ubuntu 18.04Ubuntu 18.04Dell PowerEdge R7515 with AMD EPYC 7313P
Ubuntu 22.04 LTSUbuntu 22.04 LTSHPE ProLiant DL325 Gen10 Plus v2 with AMD EPYC 7313P
Ubuntu 22.04 LTSUbuntu 22.04 LTSHPE ProLiant DL60 Gen9 with Intel® Xeon® E5-2609
CentOS 7.9CentOS 7.9Ampere® Altra® 2U Server R272-P33 with Ampere® Altra® SOC with Aarch64 ARMv8
CentOS 7.9CentOS 7.9HW Platform: HPE ProLiant DL60 Gen9 with Intel® Xeon® E5-2609

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

2.2 Tested and Vendor Affirmed Module Version and Identification

Tested Module Identification

Page 8

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

Page 9
Module configuration
NameOperating SystemHardware PlatformSoftware VersionProcessorPaa Pai
Microsoft Windows 11 ProMicrosoft Windows 11 ProDell Optiplex SFF 70203.0.10 withIntel® Core™ i3-14100 (Raptor Lake)No
Microsoft Windows Server 2022Microsoft Windows Server 2022Dell PowerEdge R4503.0.10 withIntel® Xeon® Silver 4309Y (Ice Lake)Yes
Microsoft Windows Server 2022Microsoft Windows Server 2022Dell PowerEdge R4503.0.10 withIntel® Xeon® Silver 4309Y (Ice Lake)No
Rocky Linux 8Rocky Linux 8Lenovo ThinkPad P14s Gen 13.0.10 withIntel® Core™ i7- 10510U (Comet Lake)Yes
Rocky Linux 8Rocky Linux 8Lenovo ThinkPad P14s Gen 13.0.10 withIntel® Core™ i7- 10510U (Comet Lake)No
Ubuntu 18.04Ubuntu 18.04Dell Inspiron 7591 with Intel® Core™ i7-10510U
Ubuntu 18.04Ubuntu 18.04Dell PowerEdge R7515 with AMD EPYC 7313P
Ubuntu 22.04 LTSUbuntu 22.04 LTSHPE ProLiant DL325 Gen10 Plus v2 with AMD EPYC 7313P
Ubuntu 22.04 LTSUbuntu 22.04 LTSHPE ProLiant DL60 Gen9 with Intel® Xeon® E5-2609
CentOS 7.9CentOS 7.9Ampere® Altra® 2U Server R272-P33 with Ampere® Altra® SOC with Aarch64 ARMv8
CentOS 7.9CentOS 7.9HW Platform: HPE ProLiant DL60 Gen9 with Intel® Xeon® E5-2609
Service
NameDescriptionType
NominalApproved mode of operationApproved

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 Table 3: Tested Operational Environments - Software, Firmware, Hybrid Vendor-Affirmed Operational Environments - Software, Firmware, Hybrid: Table 4: Vendor-Affirmed Operational Environments - Software, Firmware, Hybrid CMVP makes no statement as to the correct operation of the Module or the security strengths of the generated keys when so ported if the specific operational environment is not listed on the validation certificate.

2.3 Excluded Components

N/A for this Module. Modes List and Description: Table 5: Modes List and Description

Page 10
Approved algorithm
NameCAVP CertPropertiesReference
AES-CBCA4481Direction - Decrypt, EncryptSP 800-38A
AES-CBC-CS1A4481Direction - decrypt, encryptSP 800-38A
AES-CBC-CS2A4481Direction - decrypt, encryptSP 800-38A
AES-CBC-CS3A4481Direction - decrypt, encryptSP 800-38A
AES-CCMA4481Key Length - 128, 192, 256SP 800-38C
AES-CFB1A4481Direction - Decrypt, EncryptSP 800-38A
AES-CFB128A4481Direction - Decrypt, EncryptSP 800-38A
AES-CFB8A4481Direction - Decrypt, EncryptSP 800-38A
AES-CTRA4481Direction - Decrypt, EncryptSP 800-38A
AES-ECBA4481Direction - Decrypt, EncryptSP 800-38A
AES-GCMA4481Direction - Decrypt, EncryptSP 800-38D
AES-KWA4481Direction - Decrypt, EncryptSP 800-38F
AES-KWPA4481Direction - Decrypt, EncryptSP 800-38F
AES-OFBA4481Direction - Decrypt, EncryptSP 800-38A
AES-XTS Testing Revision 2.0A4481Direction - Decrypt, EncryptSP 800-38E
AES-CMACA4481Direction - Generation, VerificationSP 800-38B
AES-GMACA4481Direction - Decrypt, EncryptSP 800-38D
HMAC-SHA-1A4481MAC - MAC: 32-160 Increment 8FIPS 198-1
HMAC-SHA2-224A4481MAC - MAC: 32-224 Increment 8FIPS 198-1
HMAC-SHA2-256A4481MAC - MAC: 32-256 Increment 8FIPS 198-1
HMAC-SHA2-384A4481MAC - MAC: 32-384 Increment 8FIPS 198-1
HMAC-SHA2-512A4481MAC - MAC: 32-512 Increment 8FIPS 198-1
HMAC-SHA2-512/224A4481MAC - MAC: 32-224 Increment 8FIPS 198-1
HMAC-SHA2-512/256A4481MAC - MAC: 32-256 Increment 8FIPS 198-1
HMAC-SHA3-224A4481MAC - MAC: 32-224 Increment 8FIPS 198-1
HMAC-SHA3-256A4481MAC - MAC: 32-256 Increment 8FIPS 198-1
HMAC-SHA3-384A4481MAC - MAC: 32-384 Increment 8FIPS 198-1
HMAC-SHA3-512A4481MAC - MAC: 32-512 Increment 8FIPS 198-1
KMAC-128A4481Message Length - Message Length: 0-65536 Increment 8SP 800-185
KMAC-256A4481Message Length - Message Length: 0-65536 Increment 8SP 800-185
CounterA4481Prediction Resistance - YesSP 800-90A Rev. 1
DRBGSupports Reseed - Yes
Hash DRBGA4481Prediction Resistance - YesSP 800-90A Rev. 1
HMACA4481Prediction Resistance - YesSP 800-90A Rev. 1
DRBGSupports Reseed - Yes
DSA KeyGen (FIPS186-A4481L - 2048, 3072 N - 224, 256FIPS 186-4
DSA PQGGen (FIPS186-A4481P/Q Generation Methods - Probable G Generation Methods - Canonical, Unverifiable L - 2048, 3072 N - 224, 256 Hash Algorithm - SHA2-224, SHA2-256, SHA2-384, SHA2-512, SHA2-512/224, SHA2-512/256FIPS 186-4
DSA PQGVer (FIPS186-A4481P/Q Generation Methods - Probable G Generation Methods - Canonical, Unverifiable L - 1024, 2048, 3072 N - 160, 224, 256 Hash Algorithm - SHA-1, SHA2-224, SHA2-256, SHA2-384, SHA2-512, SHA2-512/224, SHA2-512/256FIPS 186-4
ECDSA KeyGenA4481Curve - B-233, B-283, B-409, B-571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, P-521 Secret Generation Mode - Testing CandidatesFIPS 186-4
ECDSA KeyVerA4481Curve - B-163, B-233, B-283, B-409, B-571, K-163, K-233, K-283, K-409, K-571, P-192, P-224, P-256, P-384, P- 521FIPS 186-4
EDDSA KeyGenA4481Curve - ED-25519, ED-448FIPS 186-5
EDDSA KeyVerA4481Curve - ED-25519, ED-448FIPS 186-5
RSA KeyGen (FIPS186-A4481Key Generation Mode - B.3.3 Modulo - 2048, 3072, 4096 Primality Tests - Table C.2 Info Generated By Server - Yes Public Exponent Mode - Random Private Key Format - StandardFIPS 186-4
Safe Primes KeyA4481Safe Prime Groups - ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192, modp-2048, modp-3072, modp-4096, modp-6144, modp-8192SP 800-56A
Safe Primes KeyA4481Safe Prime Groups - ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192, modp-2048, modp-3072, modp-4096, modp-6144, modp-8192SP 800-56A
VerificationRev. 3
DSA SigGen (FIPS186-4)A4481L - 2048, 3072FIPS 186-4
DSA SigVer (FIPS186-4)A4481L - 1024, 2048, 3072FIPS 186-4
ECDSA SigGen (FIPS186-4)A4481Component - No, YesFIPS 186-4
ECDSA SigVer (FIPS186-4)A4481Component - NoFIPS 186-4
EDDSA SigGenA4481Curve - ED-25519, ED-448FIPS 186-5
EDDSA SigVerA4481Curve - ED-25519, ED-448FIPS 186-5
RSA SigGen (FIPS186-4)A4481Signature Type - ANSI X9.31, PKCS 1.5, PKCSPSSFIPS 186-4
RSA SigGen (FIPS186-5)A4481Hash Pair -FIPS 186-5
RSA Signature PrimitiveA4481Private Key Format - crtFIPS 186-4
(CVL)Public Exponent Mode - fixed
RSA SigVer (FIPS186-4)A4481Signature Type - ANSI X9.31, PKCS 1.5, PKCSPSSFIPS 186-4
RSA SigVer (FIPS186-5)A4481Hash Pair - F Hash Algorithm - SHA-1 Modulo - 2048, 3072, 4096 Signature Type - pkcs1v1.5, pss Mask Function - MGF1 Public Exponent Mode - randomIPS 186-5
KAS-ECC CDH-ComponentA4481Curve - B-233, B-283, B-409, B-571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, P-521SP 800-56A Rev. 3
KAS-ECC-SSC Sp800-56Ar3A4481Domain Parameter Generation Methods - B-233, B-283, B-409, B-571, K-233, K-283, K-409, K-571, P-224,SP 800-56A Rev. 3
KAS-FFC-SSC Sp800-56Ar3A4481Domain Parameter Generation Methods - FB, FC, ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144,SP 800-56A Rev. 3
KAS-IFC-SSCA4481Modulo - 2048, 3072, 4096, 6144, 8192SP 800-56A Rev. 3
KDA HKDF SP800-A4481Fixed Info Pattern - algorithmId||l||uPartyInfo||vPartyInfoSP 800-56C Rev. 2
56Cr2Fixed Info Encoding - concatenation
KDA OneStepA4481Auxiliary Function Methods -SP 800-56C Rev. 2
SP800-56Cr2Auxiliary Function Name - SHA2-512
KDA TwoStepA4481MAC Salting Methods - default, randomSP 800-56C Rev. 2
SP800-56Cr2Fixed Info Pattern - algorithmId||l||uPartyInfo||vPartyInfo
KDF ANS 9.42A4481KDF Type - DERSP 800-135 Rev. 1
(CVL)Hash Algorithm - SHA-1, SHA2-224, SHA2-256, SHA2-384, SHA2-512, SHA2-512/224, SHA2-512/256, SHA3-224, SHA3-
KDF ANS 9.63A4481Hash Algorithm - SHA2-224, SHA2-256, SHA2-384, SHA2-512SP 800-135 Rev. 1
(CVL)Field Size - 224, 571
KDF SP800-108A4481KDF Mode - Counter, FeedbackSP 800-108 Rev. 1
KDF SSH (CVL)A4481Cipher - AES-128, AES-192, AES-256SP 800-135 Rev. 1
PBKDFA4481Iteration Count - Iteration Count: 1-10000 Increment 1SP 800-132
TLS v1.2 KDFA4481Hash Algorithm - SHA2-256, SHA2-384, SHA2-512SP 800-135 Rev. 1
RFC7627 (CVL)Key Block Length - Key Block Length: 1024
TLS v1.3 KDFA4481HMAC Algorithm - SHA2-256, SHA2-384SP 800-135 Rev. 1
(CVL)KDF Running Modes - DHE, PSK, PSK-DHE
KTS-IFCA4481Function - keyPairGen, partialValSP 800-56B Rev. 2
SHA-1A4481Message Length - Message Length: 0-65528 Increment 8FIPS 180-4
SHA2-224A4481Message Length - Message Length: 0-65528 Increment 8FIPS 180-4
SHA2-256A4481Message Length - Message Length: 0-65528 Increment 8FIPS 180-4
SHA2-384A4481Message Length - Message Length: 0-65528 Increment 8FIPS 180-4
SHA2-512A4481Message Length - Message Length: 0-65528 Increment 8FIPS 180-4
SHA2-512/224A4481Message Length - Message Length: 0-65528 Increment 8FIPS 180-4
SHA2-512/256A4481Message Length - Message Length: 0-65528 Increment 8FIPS 180-4
SHA3-224A4481Message Length - Message Length: 0-65536 Increment 8FIPS 202
SHA3-256A4481Message Length - Message Length: 0-65536 Increment 8FIPS 202
SHA3-384A4481Message Length - Message Length: 0-65536 Increment 8FIPS 202
SHA3-512A4481Message Length - Message Length: 0-65536 Increment 8FIPS 202
SHAKE-128A4481Supports Bit-Oriented Messages - NoFIPS 202
SHAKE-256A4481Supports Bit-Oriented Messages - NoFIPS 202

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 The Module only supports an Approved mode of operation. The conditions for using the Module in the Approved mode of operation are:

  1. Installation of the Module as described in Section 11.1 results in the settings described below, which are required for operation in the Approved mode: a. security-checks = 1 Enforce minimum key strengths and approved curve names. b. allow-plaintext-csp-output = 1 Enforce the AS09.16 and AS09.17 requirement for a second independent action to output CSPs as a result of calls that produce CSPs, such as key generation, key unwrap (or decapsulate) and shared secret calculation. c. conditional-errors = 1 Enforce the Module entering the error state on conditional test errors such as PCT failure.
  2. The Module is a cryptographic library used by a calling application. The calling application is responsible for: a. Use of the primitives in the correct sequence. b. Use of keys in accordance with SP 800-140D Rev. 2 (as the keys used by the Module for cryptographic purposes are provided over the call stack by the calling application). c. Use of a SP 800-90B compliant entropy source outside the Module boundary with at least 256 bits of security strength. Entropy is supplied to the Module via callback functions. The callback functions shall return an error if the minimum entropy strength cannot be met.
2.5 Algorithms
Page 11

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 Table 6: Approved Algorithms - Cipher

Page 12

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 Message authentication

Page 13

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 Table 7: Approved Algorithms - Message authentication Random

Page 14

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 Table 8: Approved Algorithms - Random Key management 4) 4) 4) 4) Table 9: Approved Algorithms - Key management

Page 15

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

Page 16

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 FIPS 186-5 Table 10: Approved Algorithms - Signature Key agreement Table 11: Approved Algorithms - Key agreement Key derivation

Page 17

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

Page 18

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 Table 12: Approved Algorithms - Key derivation

Page 19
Service
NamePropertiesReference
CKG Section 4KeyPair FIPS Provider for OpenSSL 3NIST, SP 800-133 Rev. 2
CKG Section 5KeyPair FIPS Provider for OpenSSL 3NIST, SP 800-133 Rev. 2
CKG Section 6.2KeyPair FIPS Provider for OpenSSL 3NIST, SP 800-133 Rev. 2
Hash DRBG with SHA3-256, SHA3-512KeyPair FIPS Provider for OpenSSL 3NIST, SP 800-90A Rev. 1
HMAC DRBG with SHA3-256, SHA3-512KeyPair FIPS Provider for OpenSSL 3NIST, SP 800-90A Rev. 1

FIPS 140-3 Security Policy Table 13: Approved Algorithms - Key transport Message digest Table 14: Approved Algorithms - Message digest Vendor-Affirmed Algorithms:

Page 20

FIPS 140-3 Security Policy Table 15: Vendor-Affirmed Algorithms Non-Approved, Allowed Algorithms: N/A for this module. Non-Approved, Allowed Algorithms with No Security Claimed: N/A for this Module. Non-Approved, Not Allowed Algorithms: N/A for this Module.

Page 21
Service
NameDescriptionApproved FunctionsTypeProperties
Cipher (Unauth)AES ciphersAES-CBC: (A4481)BC-UnAuth
Cipher (Auth)Authenticated ciphersAES-CCM: (A4481)BC-Auth
CKG Section 4Using the Output of a Random Bit GeneratorCKG Section 4: ()CKG
CKG Section 5Generation of Key Pairs for Asymmetric-Key AlgorithmsCKG Section 5: ()CKG
CKG Section 6.2Derivation of Symmetric KeysCKG Section 6.2: ()CKG
Key agreementKey agreementKAS-ECC CDH-ComponentKAS-SSCKAS:KAS-ECC-SSC provides between 112 and 256 bits of encryption strength; KAS-FFC- SSC provides between 112 and 200 bits of encryption strength; KAS-IFC-SSC provides between 112 and 200 bits of encryption strength
Key derivationKAS-KDF HKDF SP800-56Cr2:KAS-135KDF
KAS-56CKDF(A4481)KAS-56CKDF
KBKDFKAS-KDF OneStep SP800-56Cr2:KBKDF
PBKDF(A4481)PBKDF
Key management ECCECDSA KeyGen (FIPS186-4):AsymKeyPair-KeyGen
AsymKeyPair-KeyVer(A4481)AsymKeyPair-KeyVer
Key management EdwardsEDDSA KeyGen: (A4481)AsymKeyPair-KeyGen
AsymKeyPair-KeyVerEDDSA KeyVer: (A4481)AsymKeyPair-KeyVer
Key management FFCDSA KeyGen (FIPS186-4):AsymKeyPair-KeyGen
Key management IFCRSA KeyGen (FIPS186-4):AsymKeyPair-KeyGen
Key transportKTS-IFC: (A4481)KTS-EncapKTS:2048, 3072, 4096 or 6144- bit keys provide between 112 and 176 bits of encryption strength
KTS (Cipher w/ CMAC, GMAC, HMAC, KMAC)SP 800-38F Section 3.1 ProvisionsAES-CBC: (A4481)BC-AuthKTS:128, 192 or 256-bit keys provide between 128 and 256 bits of encryption strength
BC-UnAuthAES-CBC-CS1: (A4481)BC-UnAuth
MACAES-CBC-CS2: (A4481)MAC
KTS (AES KW, KWP)AES-KW: (A4481)BC-AuthKTS:128, 192 or 256-bit keys provide between 128 and 256 bits of encryption strength
MAC AES (CMAC, GMAC)AES-GMAC: (A4481)MAC
MAC HMACHMAC-SHA-1: (A4481)MAC
MAC KMAC (XOF)KMAC-128: (A4481)XOF
Message DigestSHA-1: (A4481)SHA
Message Digest (XOF SHAKE)SHAKE-128: (A4481)XOF
RandomCounter DRBG: (A4481)DRBG
Signature DSADSA SigGen (FIPS186-4):DigSig-SigGen
DigSig-SigVer(A4481)DigSig-SigVer
Signature ECDSAECDSA SigGen (FIPS186-4):DigSig-SigGen
DigSig-SigVer(A4481)DigSig-SigVer
Signature EDDSAEDDSA SigGen: (A4481)DigSig-SigGen
DigSig-SigVerEDDSA SigVer: (A4481)DigSig-SigVer
Signature RSARSA SigGen (FIPS186-4):DigSig-SigGen
DigSig-SigVer(A4481)DigSig-SigVer

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

2.6 Security Function Implementations
Page 22

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

Page 23

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

Page 24

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 Table 16: Security Function Implementations

2.7 Algorithm Specific Information

AES-GCM: The Module supports internal IV generation using the Approved DRBG. The IV is at least 96 bits in length per SP 800-38D Section 8.2.2, and the Approved DRBG generates outputs such that the (key, IV) pair collision probability is less than 2-32 per SP 800-38D Section 8.

Page 25

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 AES-GCM IVs shall be used in compliance with FIPS 140-3 IG C.H scenario 1a (TLS/DTLS 1.2, per RFC 5288), 1d (SSHv2, per RFC 5647) and 5 (TLS 1.3, per RFC 8446). The Module is compatible with TLS/DTLS 1.2 protocol and provides the primitives to support the AES GCM ciphersuites from SP 800-52 Rev. 1 Section 3.3.1. The Module’s implementation of AES-GCM is used together with one or more applications outside the Module’s cryptographic boundary that implement the specified protocols; these protocols have not been reviewed or tested by the CAVP and CMVP. In each of the protocols, if the Module’s power is lost and then restored, the key used for the AES GCM encryption/decryption shall be re-distributed. This condition is not enforced by the Module but is met implicitly. The Module does not retain any state across reset or power-cycles: AES-GCM key/IVs are not stored in non-volatile persistent memory (i.e., disk), hence no re-connection can occur without a fresh key establishment operation and the associated SSPs. The Module explicitly ensures that the counter (the nonce_explicit part of the IV) does not exhaust the maximum number of possible values of 264-1 for a given session key. If this exhaustion condition is observed, the Module returns an error indication to the calling application, which will then need to either abort the connection, or trigger a handshake to establish a new encryption key. XTS-AES: In accordance with SP 800-38E, the XTS-AES algorithm is to be used for confidentiality on storage devices. The Module complies with FIPS 140-3 IG C.I by:

Page 26

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 The choice to use the PBKDF with a password or passphrase is entirely outside the scope of the Module, managed by the calling application

Page 27

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

2.8 RBG and Entropy

N/A for this Module. The calling application is responsible for use of a SP 800-90B compliant entropy source outside the Module boundary providing at least 256 bits of security strength. Entropy is supplied to the Module via callback functions. The following caveat applies per FIPS 140-3 IG 9.3.A: No assurance of the minimum strength of generated SSPs (e.g., keys).

2.9 Key Generation

The Module:

2.10 Key Establishment

The Module implements key agreement methods compliant with FIPS 140-3 IG D.F and key transport methods compliant with FIPS 140-3 IG D.G. Strengths are provided in Section 2.6.

2.11 Industry Protocols

The Module conforms to FIPS 140-3 IG D.C References to the Support of Industry Protocols: while it provides SP 800-56A Rev. 3 conformant schemes and API entry points oriented to TLS usage, the Module does not contain the full implementation of TLS. The following caveat is required: No parts of the TLS protocol, other than the approved cryptographic algorithms and the KDFs, have been tested by the CAVP and CMVP.

Page 28
Ports and interfaces
NamePhysical PortLogical InterfaceData That Passes
N/A (API - input)N/A (API - input)Control InputAPI input: stack frame including non-sensitive parameters.
Data InputData Input
N/A (API - output)N/A (API - output)Data OutputAPI output: output parameters and return value resulting from call execution.
Status OutputStatus Output
Service
NameDescriptionRole AccessCsps AccessedApproved FunctionsIndicatorTypeInputOutput
COCORole
CipherEncrypt or decrypt data, including AEAD modes (CCM, GCM).COCipher (Unauth)FIPS_OKEncryption or decryption key;Status return. Plaintext
plaintext or ciphertext data; flags.- SC_EDK_AES: W,ECipher (Auth)plaintext or ciphertext data; flags.or ciphertext data.
Get capabilitiesReports information on the requested capabilities.FIPS_OKProvider context, capability,Description of
callback pointer and arguments.callback pointer and arguments.capabilities.
InitializeModule initialization, including instantiation of theCORandomFIPS_OKCore handle, dispatch in and out,Initialization status (1 =
provider context.- DRBG_EI: W,E,ZMAC HMACprovider context.pass, 0 = fail).
Service
NameDescriptionRole AccessCsps AccessedApproved FunctionsIndicatorTypeInputOutput
COCORole
CipherEncrypt or decrypt data, including AEAD modes (CCM, GCM).COCipher (Unauth)FIPS_OKEncryption or decryption key;Status return. Plaintext
plaintext or ciphertext data; flags.- SC_EDK_AES: W,ECipher (Auth)plaintext or ciphertext data; flags.or ciphertext data.
Get capabilitiesReports information on the requested capabilities.FIPS_OKProvider context, capability,Description of
callback pointer and arguments.callback pointer and arguments.capabilities.
InitializeModule initialization, including instantiation of theCORandomFIPS_OKCore handle, dispatch in and out,Initialization status (1 =
provider context.- DRBG_EI: W,E,ZMAC HMACprovider context.pass, 0 = fail).
opaque (managed within theopaque (managed within the- DRBG_Seed: G,E,Z
module) Counter DRBGmodule) Counter DRBG- DRBG_Key: G,W,E
instance.instance.- DRBG_V: G,W,E
Key agreementPerform key agreementCOCKG Section 5 Key agreementFIPS_OKKey structs (key agreement keys); flags.Status return; key agreement shared secret.
primitives on behalf of theprimitives on behalf of the- KAS_Private_ECC:
calling process (does notcalling process (does notW,E
establish keys into theestablish keys into the- KAS_Public_ECC: W,E
module).module).- KAS_Private_FFC: W,E
Key derivationDerive keying material from aCOKey derivation CKG Section 6.2FIPS_OKKey agreement shared secret; flags.Status return; derived keying material.
shared secret.shared secret.- KD_DKM_KDF: G,R
Key managementGenerate asymmetric keyCOKey management ECC Key management Edwards Key management FFC Key management IFC CKG Section 4FIPS_OKECDSA, EdDSA: curve identifier. DSA, RSA: domain parameter targets.Status return; general digital signature private and public keys.
pairs.pairs.- DRBG_C: G,W,E
Key transportEncapsulate or decapsulateCOCKG Section 5 Key transport KTS (Cipher w/ CMAC, GMAC,FIPS_OKKey encapsulation/decapsulation key or Key wrap/unwrap key.Status return; key transport shared secret.
key material on behalf of thekey material on behalf of the- KTS_KDK_IFC: W,E
calling process.calling process.- KTS_KEK_IFC: W,E
Message authenticationGenerate or verify dataCOMAC AES (CMAC,FIPS_OKKeyed hash key.Status return; MAC output value.
integrity.integrity.- KH_Key_AES-CMAC:GMAC)
MAC HMACW,EMAC HMAC
MAC KMAC (XOF)- KH_Key_AES-GMAC:MAC KMAC (XOF)
Message digestGenerate a message digest.Message DigestFIPS_OKMessage; flags.Status return; Hash output value.
QueryReport available cryptoFIPS_OKProvider context, operation ID.Array of available operations.
RandomGenerate random bits usingCORandomFIPS_OKDRBG struct (RBG State); DRBG_Seed.Status return; Random value.
the DRBG.the DRBG.- DRBG_C: W,ECKG Section 4
Self-testPerform the self-testFIPS_OKProvider context.Status (1 = pass, 0 = fail).
Show module name and versioning informationReturn module name andFIPS_OKProvider context, parameter types (array).Parameter types (array) with: Name, Version.
Show statusOpenSSL core metadataFIPS_OKProvider context, parameter types (array).Parameter types with: BuildInfo, Status, SecurityChecks; Status return.
SignatureGenerate or verify digitalCOCKG Section 5FIPS_OKSign: signing key; message. Verify: signature value; flags; sizes.Status return; Signature value.
signatures. (SSPs are passed insignatures. (SSPs are passed in- DS_SGK_ECC: W,ESignature DSA
by the calling process.)by the calling process.)- DS_SVK_ECC: W,ESignature ECDSA
Signature EDDSA- DS_SGK_Edwards:Signature EDDSA
Signature RSAW,ESignature RSA
TeardownUninstantiate the module;COFIPS_OKProvider context.None.
zeroizes internal CTR DRBGzeroizes internal CTR DRBG- DRBG_Key: Z
state (DRBG_Key, DRBG_V).state (DRBG_Key, DRBG_V).- DRBG_V: Z
ZeroizeZeroization of allocated keyCOFIPS_OKMemory pointer.Void.
structures usingstructures using- DRBG_C: Z
openssl_cleanse.openssl_cleanse.- DRBG_EI: Z

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

3 Cryptographic Module Interfaces
3.1 Ports and Interfaces

Table 17: Ports and Interfaces The Module does not interact with physical ports. The Control Output interface is not applicable, as the Module does not control other components.

4 Roles, Services, and Authentication
4.2 Roles

Table 18: Roles The Module supports the mandatory Cryptographic Officer (CO) operational role only (implicitly identified), and does not support a maintenance role or a bypass capability. The Module does not provide an authentication or identification method of its own. The CO role is assumed by meeting the conditions of Section 11 of this document and in associated KeyPair FIPS Provider for OpenSSL 3 Guidance Documentation.

4.3 Approved Services
Page 29

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 W,E G,R G,R

Page 32

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 Table 19: Approved Services All services implemented by the Module correspond to the functionality described by the fips_query function, which returns available services based on an operation_id input. The fips_get_params function provides access to the current status of the Module as well as the name and version; this information correlates to the validation listing. A 1 value returned in status indicates the Module is running without error (FIPS_OK); a 0 return indicates an error (with additional error details indicated as described in the release specific API documentation). Services are only operational in the running state. Any attempts to access services in any other state will result in an error being returned. If the integrity test or any CAST fails then any attempt to access any service will result in an error being returned. The OpenSSL toolkit OSSL_PROVIDER_get_params function is used to invoke fips_get_params, when called with the Module’s global handle and a pointer to a parameter structure (initialized using provider_gettable_params or the equivalent). Regarding the Indicator of approved security services, the Module conforms to FIPS 140-3 IG 2.4.C Approved Security Service Indicator, similar to example 2. Each service provides context sensitive status responses as described in the OpenSSL 3 API manual pages; generally, functions of return type int return the value 1 for success with other error codes as appropriate for the call (described in API documentation). The Module’s name and version parameters (as cited in Section 2) along with the Module’s internal indicators of the security-check and conditional-errors settings are used to confirm the Module is the validated Module operating in the approved mode with only approved security services. Note that the caller provides the KAS_Private and KAS_Public keys for shared secret computation; the caller’s exchange and assurance of PSPs with the remote participant is outside the scope of the Module.

Page 33

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

4.4 Non-Approved Services
4.5 External Software/Firmware Loaded
5 Software/Firmware Security
5.1 Integrity Techniques

The Module uses HMAC-SHA2-256 as the approved integrity technique; the file fips.so.mac (for Linux environments) or fips.dll.mac (for Windows environments) contains the integrity reference value. The Module is provided in an executable form (as fips.so shared object for use in Linux environments or fips.dll for use in Windows environments).

5.2 Initiate on Demand

The operator can initiate the integrity test on demand by calling fips_self_test (invoked using OSSL_PROVIDER_self_test called with the Module’s global handle) or reloading the Module.

5.3 Open-Source Parameters

In accordance with ISO/IEC 19790:2012 Annex B, as the Module is open source, the tools used to build the Module as tested are:

6 Operational Environment
6.1 Operational Environment Type and Requirements

Type of Operational Environment: Modifiable No operational environment restrictions are required for operation in the approved mode. All conditions for operation of the Module in the approved mode are given in Section 2.4. The Module conforms to FIPS 140-3 IG 2.3.C Processor Algorithm Accelerators (PAA) and Processor Algorithm Implementation (PAI). The AES-NI functions are identified by FIPS 140-3 IG 2.3.C as a known PAA.

Page 34
Service
NameApproved FunctionsTypeFromToDistribution Type
IElectronicPlaintextCalling processCall stack (API) input parametersManual
OElectronicPlaintextCall stack (API) output parametersCalling processManual
StorageDescriptionPersistence
AreaType
Name
RAMR: Random access memoryDynamic
ZeroizationDescriptionRationaleOperator Initiation
Method
CC (Cleanse): Caller invocation of openssl_cleanse.Overwrites with zerosCaller invocation of openssl_cleanse
TT (Teardown): Module unload - invokes cleanse internally.Overwrites with zerosOccurs when module is unloaded

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

7 Physical Security
8 Non-Invasive Security
9 Sensitive Security Parameters Management
9.1 Storage Areas
9.2 SSP Input-Output Methods

I O Table 21: SSP Input-Output Methods

9.3 SSP Zeroization Methods

C T Table 22: SSP Zeroization Methods All SSPs are zeroized (overwritten with 0s) when they are no longer needed:

Page 35
Sensitive security parameter
NameTypeDescriptionStrengthGenerationEstablishmentStorageZeroizationUseInputStorage DurationRelated SSPs
DRBG_CHash_DRBG_C - CSPElement of Hash DRBG state.Size: 440-888 -RandomRandom
DRBG_EIOther - CSPEntropy input from an external source used for DRBG seeding.Size: 128-2^35 -Random
DRBG_KeyCTR_DRBG_Key, HMAC_DRBG_Key - CSPElement of CTR DRBG or HMAC DRBG state.Size: 128-256, 128-256 -RandomRandom
DRBG_SeedOther - CSPSeed used for DRBG Instantiation and Reseed.Size: 128-256 -RandomRandom
DRBG_VCTR_DRBG_Key, Hash_DRBG_Key, HMAC_DRBG_Key - CSPElement of CTR, Hash or HMAC DRBG state.Size: 128-256, 128-256, 128-256RandomRandom
DS_SGK_ECCB-233, B-283, B-409, B-571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, P-521 - CSPSigGen (private) key.Size: 233, 283, 409, 571, 233,Signature
283, 409, 571, 224, 256, 384,283, 409, 571, 224, 256, 384,ECDSA
DS_SGK_EdwardsEdwards25519, Edwards448 - CSPSigGen (private) key.Size: 255, 448 -Signature
Strength: s = 128, s = 224Strength: s = 128, s = 224EDDSA
DS_SGK_FFCL=2048/N=224, L=2048/N=256, L=3072/N=256 - CSPSigGen (private) key.Size: 2048, 2048, 3072 -Signature DSA
DS_SGK_IFCk=2048, k=3072, k=4096, k=6144, k=8192 - CSPSigGen (private) key.Size: 2048, 3072, 4096, 6144,Signature RSA
DS_SVK_ECCB-163, B-233, B-283, B-409, B-571, K-163, K-233, K-283, K-409, K-571, P-192, P-224, P-256, P-384, P-521 - PSPSigVer (public) key.Size: 163, 233, 283, 409, 571,Signature
163, 233, 283, 409, 571, 192,163, 233, 283, 409, 571, 192,ECDSA
DS_SVK_EdwardsEdwards25519, Edwards448 - PSPSigVer (public) key.Size: 255, 448 -Signature
Strength: s = 128, s = 224Strength: s = 128, s = 224EDDSA
DS_SVK_FFCL=1024/N=160, L=2048/N=224, L=2048/N=256, L=3072/N=256 - PSPSigVer (public) key.Size: 1024, 2048, 2048, 3072 -Signature DSA
DS_SVK_IFCk=1024, k=2048, k=3072, k=4096, k=6144, k=8192 - PSPSigVer (public) key.Size: 1024, 2048, 3072, 4096,Signature RSA
GKP_Private_ECCB-233, B-283, B-409, B-571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, P-521 - CSPGeneral ECDSA (private) key.Size: 233, 283, 409, 571, 233,KeyKey
283, 409, 571, 224, 256, 384,283, 409, 571, 224, 256, 384,managementmanagement
521 -521 -ECCECC
GKP_Private_EdwardsEdwards25519, Edwards448 - CSPGeneral EdDSA (private) key.Size: 255, 448 -KeyKey
Strength: s = 128, s = 224Strength: s = 128, s = 224managementmanagement
EdwardsEdwardsEdwards
GKP_Private_FFCL=2048/N=224, L=2048/N=256, L=3072/N=256 - CSPGeneral FFC (private) key.Size: 2048, 2048, 3072 -KeyKey
Strength: s = 112, s = 112, s =Strength: s = 112, s = 112, s =managementmanagement
128128FFCFFC
GKP_Private_IFCk=2048, k=3072, k=4096, k=6144, k=8192 - CSPGeneral RSA (private) key.Size: 2048, 3072, 4096, 6144,KeyKey
8192 -8192 -managementmanagement
Strength: s = 112, s = 128, s =Strength: s = 112, s = 128, s =IFCIFC
GKP_Public_ECCB-233, B-283, B-409, B-571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, P-521 - PSPGeneral ECDSA (public) key.Size: 233, 283, 409, 571, 233,KeyKey
283, 409, 571, 224, 256, 384,283, 409, 571, 224, 256, 384,managementmanagement
521 -521 -ECCECC
GKP_Public_EdwardsEdwards25519, Edwards448 - PSPGeneral EdDSA (public) key.Size: 255, 448 -Key management EdwardsKey
Strength: s = 128, s = 224Strength: s = 128, s = 224management
GKP_Public_FFCL=2048/N=224, L=2048/N=256, L=3072/N=256 - PSPGeneral FFC (public) key.Size: 2048, 2048, 3072 -Key management FFCKey
Strength: s = 112, s = 112, s =Strength: s = 112, s = 112, s =management
128128FFC
GKP_Public_IFCk=2048, k=3072, k=4096, k=6144, k=8192 - PSPGeneral RSA (public) key.Size: 2048, 3072, 4096, 6144,Key management IFCKey
8192 -8192 -management
Strength: s = 112, s = 128, s =Strength: s = 112, s = 128, s =IFC
KAS_Private_ECCB-233, B-283, B-409, B-571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, P-521 - CSPKey pair component used for shared secret generation.Size: 233, 283, 409, 571, 233,Key agreement
KAS_Private_FFCffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192 - CSPKey pair component used for shared secret generation.Size: 2048, 3072, 4096, 6144,Key agreement
KAS_Private_IFCk=2048, k=3072, k=4096, k=6144, k=8192 - CSPKey pair component used for shared secret generation.Size: 2048, 3072, 4096, 6144,Key agreement
KAS_Public_ECCB-233, B-283, B-409, B-571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, P-521 - PSPPeer key pair component used for shared secret generation.Size: 233, 283, 409, 571, 233,Key agreement
KAS_Public_FFCffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192 - PSPPeer key pair component used for shared secret generation.Size: 2048, 3072, 4096, 6144,Key agreement
KAS_Public_IFCk=2048, k=3072, k=4096, k=6144, k=8192 - PSPPeer key pair component used for shared secret generation.Size: 2048, 3072, 4096, 6144,Key agreement
KAS_SS_ECCOther - CSPShared secret calculation z output value (for KDF).Size: 112 - 256 -KeyKey agreement
Strength: 112 - 256Strength: 112 - 256agreement
KAS_SS_FFCOther - CSPShared secret calculation z output value (for KDF).Size: 112 - 256 -KeyKey agreement
Strength: 112 - 200Strength: 112 - 200agreement
KAS_SS_IFCOther - CSPShared secret calculation z output value (for KDF).Size: 112 - 256 -KeyKey agreement
Strength: 112 - 200Strength: 112 - 200agreement
KD_DKM_KDFOther - CSPKey derivation derived keying material.Size: 128 - 256 -Key derivationKey derivation
KD_DKM_PBKDFOther - CSPPBKDF derived key materialSize: 128 -Key derivationKey derivation
KD_PW_PBKDFOther - CSPPBKDF password input.Size: 128 -Key derivationKey derivation
KD_SKOther - CSPKey derivation source key material.Size: 128 - 256 -Key derivation
KH_Key_AES-CMACAES-128, AES-192, AES-256 - CSPKeyed Hash key.Size: 128, 192, 256 -MAC AES
Strength: s = 128, s = 192, s =Strength: s = 128, s = 192, s =(CMAC, GMAC)
KH_Key_AES-GMACAES-128, AES-192, AES-256 - CSPKeyed Hash key.Size: 128, 192, 256 -MAC AES
Strength: s = 128, s = 192, s =Strength: s = 128, s = 192, s =(CMAC, GMAC)
KH_Key_HMACOther - CSPKeyed Hash key.Size: 112 - 2048 -MAC HMAC
KH_Key_KMACKMAC128, KMAC256 - CSPKeyed Hash key.Size: 128, 256 -MAC KMAC
Strength: 112 ≤ s ≤ 128, 112 ≤ s ≤Strength: 112 ≤ s ≤ 128, 112 ≤ s ≤(XOF)
KTS_KDK_IFCOther - CSPRSA key de- encapsulation Key (key transport).Size: 2048, 3072, 4096, 6144 -Key transport
KTS_KEK_IFCOther - PSPRSA key encapsulationSize: 2048, 3072, 4096, 6144 - Strength: s = 112, s = 128, s = 152, s = 176Key transport
KTS_SS_IFCOther - CSPRSA key transportSize: 112 - 256 - Strength: s = 112 - s = 176KeyKey transport
shared secret.shared secret.transport
SC_EDK_AESAES-128, AES-192, AES-256 - CSPSymmetric encryptionSize: 128, 192, 256 - Strength: s = 128, s = 192, s = 256Cipher
and decryption.and decryption.(Unauth)
SC_EDK_XTSXTS-128, XTS-256 - CSPSymmetric encryptionSize: 256, 512 - Strength: s = 128, s = 256Cipher
and decryption.and decryption.(Unauth)
DRBG_CRAM:PlaintextCICall lifetimeDRBG_Seed:Derived From
OODRBG_V:Used with
DRBG_EIRAM:PlaintextCICall lifetimeDRBG_Seed:Constituent
DRBG_KeyRAM:PlaintextC TICall lifetime (module up time for internal DRBG)DRBG_Seed:Derived From
OODRBG_V:Used with
DRBG_SeedRAM:PlaintextCCall lifetimeDRBG_C:Derives
DRBG_VRAM:PlaintextC TICall lifetime (module up time for internal DRBG)DRBG_Seed:Derived From
OODRBG_Key:Used with
DS_SGK_ECCRAM:PlaintextCICall lifetimeDS_SVK_ECC:Paired With
DS_SGK_EdwardsRAM:PlaintextCICall lifetimeDS_SVK_Edwards:Paired With
DS_SGK_FFCRAM:PlaintextCICall lifetimeDS_SVK_FFC:Paired With
DS_SGK_IFCRAM:PlaintextCICall lifetimeDS_SVK_IFC:Paired With
DS_SVK_ECCRAM:PlaintextCICall lifetimeDS_SGK_ECC:Paired With
DS_SVK_EdwardsRAM:PlaintextCICall lifetimeDS_SGK_Edwards:Paired With
DS_SVK_FFCRAM:PlaintextCICall lifetimeDS_SGK_FFC:Paired With
DS_SVK_IFCRAM:PlaintextCICall lifetimeDS_SGK_IFC:Paired With
GKP_Private_ECCRAM:PlaintextCOCall lifetimeGKP_Public_ECC:Paired With
GKP_Private_EdwardsRAM:PlaintextCOCall lifetimeGKP_Public_Edwards:Paired With
GKP_Private_FFCRAM:PlaintextCOCall lifetimeGKP_Public_FFC:Paired With

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

9.4 SSPs
Page 36

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

Page 37

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

Page 38

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

Page 39
Sensitive security parameter
NameTypeDescriptionStrengthEstablishmentStorageZeroizationUseInputStorage DurationRelated SSPs
KTS_KEK_IFCOther - PSPRSA key encapsulationSize: 2048, 3072, 4096, 6144 - Strength: s = 112, s = 128, s = 152, s = 176Key transport
KTS_SS_IFCOther - CSPRSA key transportSize: 112 - 256 - Strength: s = 112 - s = 176KeyKey transport
shared secret.shared secret.transport
SC_EDK_AESAES-128, AES-192, AES-256 - CSPSymmetric encryptionSize: 128, 192, 256 - Strength: s = 128, s = 192, s = 256Cipher
and decryption.and decryption.(Unauth)
SC_EDK_XTSXTS-128, XTS-256 - CSPSymmetric encryptionSize: 256, 512 - Strength: s = 128, s = 256Cipher
and decryption.and decryption.(Unauth)
DRBG_CRAM:PlaintextCICall lifetimeDRBG_Seed:Derived From
OODRBG_V:Used with
DRBG_EIRAM:PlaintextCICall lifetimeDRBG_Seed:Constituent
DRBG_KeyRAM:PlaintextC TICall lifetime (module up time for internal DRBG)DRBG_Seed:Derived From
OODRBG_V:Used with
DRBG_SeedRAM:PlaintextCCall lifetimeDRBG_C:Derives
DRBG_VRAM:PlaintextC TICall lifetime (module up time for internal DRBG)DRBG_Seed:Derived From
OODRBG_Key:Used with
DS_SGK_ECCRAM:PlaintextCICall lifetimeDS_SVK_ECC:Paired With
DS_SGK_EdwardsRAM:PlaintextCICall lifetimeDS_SVK_Edwards:Paired With
DS_SGK_FFCRAM:PlaintextCICall lifetimeDS_SVK_FFC:Paired With
DS_SGK_IFCRAM:PlaintextCICall lifetimeDS_SVK_IFC:Paired With
DS_SVK_ECCRAM:PlaintextCICall lifetimeDS_SGK_ECC:Paired With
DS_SVK_EdwardsRAM:PlaintextCICall lifetimeDS_SGK_Edwards:Paired With
DS_SVK_FFCRAM:PlaintextCICall lifetimeDS_SGK_FFC:Paired With
DS_SVK_IFCRAM:PlaintextCICall lifetimeDS_SGK_IFC:Paired With
GKP_Private_ECCRAM:PlaintextCOCall lifetimeGKP_Public_ECC:Paired With
GKP_Private_EdwardsRAM:PlaintextCOCall lifetimeGKP_Public_Edwards:Paired With
GKP_Private_FFCRAM:PlaintextCOCall lifetimeGKP_Public_FFC:Paired With
GKP_Private_IFCRAM:PlaintextCOCall lifetimeGKP_Public_IFC:Paired With
GKP_Public_ECCRAM:PlaintextCOCall lifetimeGKP_Private_ECC:Paired With
GKP_Public_EdwardsRAM:PlaintextCOCall lifetimeGKP_Private_Edwards:Paired With
GKP_Public_FFCRAM:PlaintextCOCall lifetimeGKP_Private_FFC:Paired With
GKP_Public_IFCRAM:PlaintextCOCall lifetimeGKP_Private_IFC:Paired With
KAS_Private_ECCRAM:PlaintextCICall lifetimeKAS_Public_ECC:Paired With
KAS_Private_FFCRAM:PlaintextCICall lifetimeKAS_Public_FFC:Paired With
KAS_Private_IFCRAM:PlaintextCICall lifetimeKAS_Public_IFC:Paired With
KAS_Public_ECCRAM:PlaintextCICall lifetimeKAS_Private_ECC:Paired With
KAS_Public_FFCRAM:PlaintextCICall lifetimeKAS_Private_FFC:Paired With
KAS_Public_IFCRAM:PlaintextCICall lifetimeKAS_Private_IFC:Paired With
KAS_SS_ECCRAM:PlaintextCOCall lifetimeKAS_Private_ECC:Calculated From
KAS_SS_FFCRAM:PlaintextCOCall lifetimeKAS_Private_FFC:Calculated From
KAS_SS_IFCRAM:PlaintextCOCall lifetimeKAS_Private_IFC:Calculated From
KD_DKM_KDFRAM:PlaintextCOCall lifetimeKD_SK:Derived From
KD_DKM_PBKDFRAM:PlaintextCOCall lifetimeKD_PW_PBKDF:Derived From
KD_PW_PBKDFRAM:PlaintextCICall lifetimeKD_DKM_PBKDF:Derives
KD_SKRAM:PlaintextCICall lifetimeKD_DKM_KDF:Derives
KH_Key_AES-CMACRAM:PlaintextCICall lifetime
KH_Key_AES-GMACRAM:PlaintextCICall lifetime
KH_Key_HMACRAM:PlaintextCICall lifetime
KH_Key_KMACRAM:PlaintextCICall lifetime
KTS_KDK_IFCRAM:PlaintextCICall lifetimeKTS_SS_IFC:Unwraps
KTS_KEK_IFCRAM:PlaintextCICall lifetimeKTS_SS_IFC:Wraps
KTS_SS_IFCRAM:PlaintextCOCall lifetimeKTS_KDK_IFC:Unwrapped By
SC_EDK_AESRAM:PlaintextCICall lifetime
SC_EDK_XTSRAM:PlaintextCICall lifetime

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 Table 23: SSP Table 1 I C O I C I O T C I O T I C I C I C I C I C I C I C I C O C C O C

Page 40

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 O O O O I I I I I I O O C O C O O I I I I I I I I O C C C C C C C C C C C Table 24: SSP Table 2 I I C C C C C C C C C C C C C C Keys used for CASTs and the temporary value used in the integrity test are not SSPs; however, the latter is deleted after use as required by AS05.10.

Page 41

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 The Module maintains only the Counter DRBG state used for key generation as a persistent CSP; this DRBG instance is used exclusively for approved services.

9.5 Additional Information

Key/Algorithm Type Equivalent Strengths: Reference sources for the strengths provided in SSP Table 1 are specified below. Equivalent strength is given for each key or algorithm type (as some algorithms do not use or produce keys). Block Cipher (and related functions): • AES (AES-128, AES-192, AES-256): SP 800-57 Part 1 Rev. 5 Table

  1. Digital Signature: ECC (B-163, B-233, B-283, B-409, B-571, K-163, K-233, K-283, K-409, K-571, P-192, P-224, P-256, P-384, P-521): SP 800-186 Table 1 (provides approximate elliptic curve security strengths). SP 800-186 and FIPS 140-3 IG C.K indicate that the Binary (B-) and Koblitz (K-) curves are deprecated. • EdDSA (ED-25519, ED-448): SP 800-186 Table 1. • FFC (DSA: L=1024/N=160, L=2048/N=224, L=2048/N=256, L=3072/N=256): SP 800-57 Part 1 Rev. 5 Table
  2. Security strength for L=2048/N=256 is determined in accordance with FIPS 140-3 IG D.B Strength of SSP Establishment Methods as y = min(x, N/2), where x is 112 and therefore y = min(112, 128) = 112. • IFC (RSA: k=1024, k=2048, k=3072, k=4096): SP 800-57 Part 1 Rev. 5 Table
  3. In Digital Signature applications, security strength is primarily associated with the asymmetric key pair specification. The hash function used must have equivalent strength equal to or greater than the security strength of the associated key pair. • Secure Hash (and related functions): • SHA-1, SHA2 (SHA2-224, SHA2-256, SHA2-384, SHA2-512, SHA2-512/224, SHA2-512/256): SP 800-107 Rev. 1 Table 1. • SHA3 (SHA3-224, SHA3-256, SHA3-384, SHA3-512): SP 800-57 Part 1 Rev. 5 Table 3. • SHAKE (SHAKE128, SHAKE256): SP 800-185 Section 8.1. Preimage resistance strength applies to hash algorithms used in DRBG, KDFs. Described also in SP 800-57 Part 1 Rev. 5 Table
  4. Message Authentication: • KMAC (KMAC128, KMAC256): SP 800-56C Rev. 2 Table
  5. Key Agreement: • • • KAS-ECC-SSC (B-233, B-283, B-409, B-571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, P-521): SP 800-56A Rev. 3 Table
  6. KAS-FFC-SSC (FB, FC, ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192, modp-2048, modp-3072, modp-4096, modp-6144, modp-8192): SP 800-56A Rev. 3 Tables 25 and
  7. KAS-IFC-SSC (k=2048, k=3072, k=4096, k=6144, k=8192): SP 800-56B Rev. 2 Table 4 (provides approximate security strengths). Key Agreement Key Derivation: • KDA OneStep: SP 800-56C Rev. 2 Table 1 (hash), Table 2 (HMAC) and Table 3 (KMAC).
Page 42
Self test
NameAlgorithm Or TestTest MethodTest TypeTest PropertiesIndicator
SW IntegritySW IntegrityHMAC over the complete module file imageSW/FW IntegrityHMAC-SHA2-256 #A4481FIPS_OK or PROV_R_FIPS_MODULE_IN_ERROR_STATE
Approved algorithm
NamePropertiesTestIndicatorDetailsConditions
TestType
AES-ECB128-bitCASTFIPS_OKEncryptPerformed on module load.
AES-ECB128-bitCASTFIPS_OKDecryptPerformed on module load.
AES-GCM256-bitCASTFIPS_OKEncryptPerformed on module load.
AES-GCM256-bitCASTFIPS_OKDecryptPerformed on module load.
Counter DRBGAES-128 with derivation functionCASTFIPS_OKInstantiate, Generate, ReseedPerformed on module load.
DSA SigGen2048-bit with SHA2-384CASTFIPS_OKSignPerformed on module load.
DSA SigVer2048-bit with SHA2-384CASTFIPS_OKVerifyPerformed on module load.
ECDSA SigGenP-224 with SHA2-512CASTFIPS_OKSignPerformed on module load.
ECDSA SigVerP-224 with SHA2-512CASTFIPS_OKVerifyPerformed on module load.
EDDSA ED448Edwards448 SigGen with SHA2- 256CASTFIPS_OKSignPerformed on module load.
EDDSA ED448Edwards448 SigVer with SHA2- 256CASTFIPS_OKVerifyPerformed on module load.
EDDSA ED25519Edwards25519 SigGen with SHA2-512CASTFIPS_OKSignPerformed on module load.
EDDSA ED25519Edwards25519 SigVer with SHA2-512CASTFIPS_OKVerifyPerformed on module load.
Hash DRBGSHA2-256CASTFIPS_OKInstantiate, Generate, ReseedPerformed on module load.
HMAC DRBGSHA-1CASTFIPS_OKInstantiate, Generate, ReseedPerformed on module load.
HMAC-SHA2-256SHA2-256 with a 256-bit keyCASTFIPS_OKGeneratePerformed on module load.
TestType
KAS-ECC-SSCP-256CASTFIPS_OKEphemeral Unified Shared SecretPerformed on module load.
Sp800-56Ar3(Z) Computation
KAS-FFC-SSCL=2048/N=256CASTFIPS_OKdhEphem Shared Secret (Z)Performed on module load.
Sp800-56Ar3Computation
KAS-IFC-SSCk=2048CASTFIPS_OKSP 800-56B Rev. 2 Section 8.2.2 RSAPerformed on module load.
KAS-KDFSHA2-224CASTFIPS_OKSP 800-56C Rev. 2 Section 4Performed on module load.
OneStep SP800-OneStep KDF (AKA OpenSSL single-
56Cr2step or SS-KDF)
KAS-KDFSHA2-256CASTFIPS_OKSP 800-56C Rev. 2 Section 5Performed on module load.
TwoStep SP800-TwoStep KDF (HKDF variant)
KDF ANS 9.42Fixed input KATCASTFIPS_OKSP 800-135 Rev. 1 Section 5.1 ANSIPerformed on module load.
KDF ANS 9.63Fixed input KATCASTFIPS_OKSP 800-135 Rev. 1 Section 5.1Performed on module load.
KDF SP800-108HMAC-SHA2-256CASTFIPS_OKSP 800-108 Rev. 1 Section 4.1 KATPerformed on module load.
KDF SSHFixed input KATCASTFIPS_OKSP 800-135 Rev. 1 Section 5.2Performed on module load.
KTS-IFCk=2048CASTFIPS_OKSP 800-56B Rev. 2 Decrypt for CRTPerformed on module load.
KTS-IFCk=2048CASTFIPS_OKSP 800-56B Rev. 2 Encrypt for BasicPerformed on module load.
KTS-IFCk=2048CASTFIPS_OKSP 800-56B Rev. 2 Decrypt for BasicPerformed on module load.
PBKDFSHA2-256, 24-byte password, 36-byte salt, iteration count of 4096CASTFIPS_OKSP 800-132 Section 5.3 KAT ofPerformed on module load.
RSA SigGenk=2048 with SHA2-256CASTFIPS_OKSignPerformed on module load.
RSA SigVerk=2048 with SHA2-256CASTFIPS_OKVerifyPerformed on module load.
SHA-1SHA-1CASTFIPS_OKSimple SHA KATPerformed on module load.
SHA2-512SHA2-512CASTFIPS_OKSimple SHA KATPerformed on module load.
SHA3-256SHA3-256CASTFIPS_OKSimple SHA KATPerformed on module load.
TLS v1.2 KDFFixed input KATCASTFIPS_OKSP 800-135 Rev. 1 Section 4.2.2 TLSPerformed on module load.
RFC76271.2 KAT

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

10 Self-Tests
10.1 Pre-Operational Self-Tests

Table 25: Pre-Operational Self-Tests

10.2 Conditional Self-Tests
Page 43

FIPS 140-3 Security Policy OneStep SP80056Cr2 TwoStep SP80056Cr2

Page 44
Approved algorithm
NameMode MethodPropertiesTesT Indicator eDetailsConditions
TestTyp
TLS v1.3 KDFKATFixed input KATCAST FIPS_OKRFC8446 Section 7.1 TLS v1.3 KDF KATPerformed on module load.
DSA KeyGenPCTPCT performed using thePCTFIPS_OKSign, VerifyPerformed on FFC (DSA, KAS-FFC-SSC) key pair
(FIPS186-4)generated key pairgeneration, prior to returning the key pair on
ECDSA KeyGenPCTPCT performed using thePCTFIPS_OKSign, VerifyPerformed on ECC (ECDSA) key pair generation,
(FIPS186-4)generated key pairprior to returning the key pair on conclusion of
EDDSA KeyGenPCTPCT performed using thePCTFIPS_OKSign, VerifyPerformed on Edwards (EdDSA) key pair
generated key pairgenerated key pairgeneration, prior to returning the key pair on
RSA KeyGenPCTPCT performed using thePCTFIPS_OKSign, VerifyPerformed on IFC (RSA, KAS-IFC-SSC, KTS-IFC) key
(FIPS186-4)generated key pairpair generation, prior to returning the key pair on
Self test
NameAlgorithm Or TestTest MethodTest TypePeriodPeriodic Method
SW IntegritySW IntegrityHMAC over the complete module file imageSW/FW IntegrityOn demandModule load
AES-ECBAES-ECBKAT CASTOn demandOn power on or reset
AES-ECBAES-ECBKAT CASTOn demandOn power on or reset
AES-GCMAES-GCMKAT CASTOn demandOn power on or reset
AES-GCMAES-GCMKAT CASTOn demandOn power on or reset
Counter DRBGCounter DRBGKAT CASTOn demandOn power on or reset
DSA SigGen (FIPS186-4)DSA SigGen (FIPS186-4)KAT CASTOn demandOn power on or reset
DSA SigVer (FIPS186-4)DSA SigVer (FIPS186-4)KAT CASTOn demandOn power on or reset
ECDSA SigGen (FIPS186-4)ECDSA SigGen (FIPS186-4)KAT CASTOn demandOn power on or reset
ECDSA SigVer (FIPS186-4)ECDSA SigVer (FIPS186-4)KAT CASTOn demandOn power on or reset
EDDSA ED448 SigGenEDDSA ED448 SigGenKAT CASTOn demandOn power on or reset
EDDSA ED448 SigVerEDDSA ED448 SigVerKATCASTOn demandOn power on or reset
EDDSA ED25519 SigGenEDDSA ED25519 SigGenKATCASTOn demandOn power on or reset
EDDSA ED25519 SigVerEDDSA ED25519 SigVerKATCASTOn demandOn power on or reset
Hash DRBGHash DRBGKATCASTOn demandOn power on or reset
HMAC DRBGHMAC DRBGKATCASTOn demandOn power on or reset
HMAC-SHA2-256HMAC-SHA2-256KATCASTOn demandOn power on or reset
KAS-ECC-SSC Sp800-56Ar3KAS-ECC-SSC Sp800-56Ar3KATCASTOn demandOn power on or reset
KAS-FFC-SSC Sp800-56Ar3KAS-FFC-SSC Sp800-56Ar3KATCASTOn demandOn power on or reset
KAS-IFC-SSCKAS-IFC-SSCKATCASTOn demandOn power on or reset
KAS-KDF OneStep SP800-56Cr2KAS-KDF OneStep SP800-56Cr2KATCASTOn demandOn power on or reset
KAS-KDF TwoStep SP800-56Cr2KAS-KDF TwoStep SP800-56Cr2KATCASTOn demandOn power on or reset
KDF ANS 9.42KDF ANS 9.42KATCASTOn demandOn power on or reset
KDF ANS 9.63KDF ANS 9.63KATCASTOn demandOn power on or reset
KDF SP800-108KDF SP800-108KATCASTOn demandOn power on or reset
KDF SSHKDF SSHKATCASTOn demandOn power on or reset
KTS-IFCKTS-IFCKATCASTOn demandOn power on or reset
KTS-IFCKTS-IFCKATCASTOn demandOn power on or reset
KTS-IFCKTS-IFCKATCASTOn demandOn power on or reset
PBKDFPBKDFKATCASTOn demandOn power on or reset
RSA SigGen (FIPS186-4)RSA SigGen (FIPS186-4)KATCASTOn demandOn power on or reset
RSA SigVer (FIPS186-4)RSA SigVer (FIPS186-4)KATCASTOn demandOn power on or reset
SHA-1SHA-1KATCASTOn demandOn power on or reset
SHA2-512SHA2-512KATCASTOn demandOn power on or reset
SHA3-256SHA3-256KATCASTOn demandOn power on or reset
TLS v1.2 KDF RFC7627TLS v1.2 KDF RFC7627KATCASTOn demandOn power on or reset
TLS v1.3 KDFTLS v1.3 KDFKATCASTOn demandOn power on or reset
DSA KeyGen (FIPS186-4)DSA KeyGen (FIPS186-4)PCTPCTOn demandOn power on or reset
ECDSA KeyGen (FIPS186-4)ECDSA KeyGen (FIPS186-4)PCTPCTOn demandOn power on or reset
EDDSA KeyGenEDDSA KeyGenPCTPCTOn demandOn power on or reset
RSA KeyGen (FIPS186-4)RSA KeyGen (FIPS186-4)PCTPCTOn demandOn power on or reset

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 Table 26: Conditional Self-Tests The intended usage of asymmetric key pairs generated by the Module is not known at the time when the key pair is generated and the pairwise consistency test (PCT) is performed. In all cases, a sign and verify PCT is performed.

10.3 Periodic Self-Test Information

Table 27: Pre-Operational Periodic Information CAST CAST CAST CAST CAST CAST CAST CAST CAST CAST

Page 45

FIPS 140-3 Security Policy Table 28: Conditional Periodic Information KeyPair FIPS Provider for OpenSSL 3

Page 46
Service
NameDescriptionRole AccessIndicatorRecovery Method
Self-testThe self-test failure errorIf one of the KATs fails or integrity testPROV_R_FIPS_MODULE_IN_ERROR_STATEReload the Module into
failurestatefailsmemory

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

10.4 Error States
10.5 Operator Initiation of Self-Tests

Each time the Module is powered up it tests that the cryptographic algorithms still operate correctly and that sensitive data has not been damaged. The pre-operational self-tests are available on demand by reloading the Module. On instantiation, the Module performs the pre-operational self-test and all CASTs. All KATs must complete successfully prior to any other use of cryptography by the Module. The fips_self_test function (inclusive of software integrity verification) can also be called on demand, fulfilling AS05.11.

11 Life-Cycle Assurance
11.1 Installation, Initialization, and Startup Procedures

The Module is based on the open-source OpenSSL 3 FIPS Provider, with a set of patches applied for conformance to FIPS 140-3 requirements. The Module is provided to vendors who integrate it into their product, typically in a manufacturing environment, and is not provided directly to US or Canadian Federal agencies. Adherence to these steps maintains security throughout the distribution, build, installation and configuration processes. Tamper is detected via the use of HMAC integrity checking using a utility built with a separate FIPS 140-2 validated module. An authorized Cryptographic Officer is required to perform these steps on each platform where it is intended to be used. The config file output contains information about the Module (such as the self-test status and the Module checksum) and must not be copied from one machine to another. The Module is distributed by KeyPair to vendors as a tarball containing:

Page 47

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3 The process to build and install the KeyPair Module is:

  1. Untar (tar -xzvf) the distribution tarball.
  2. Run the apply script. The apply script only needs to be run once, although reapplying patches is not harmful. This step includes: • the HMAC integrity check on the OpenSSL tarball; • the HMAC integrity check on the KeyPair patch set; • untar of the OpenSSL 3 tarball; • application of the patch set.
  3. Run the make script The make script builds and installs all aspects of the OpenSSL 3 toolkit, including the FIPS provider with KeyPair patches for conformance to FIPS 1403. The make script will: • Confirm install location; • Assure correct configuration for the build process; • Perform all build and install steps, including setting the configuration file as described in Section 2.4; • Print out status, as well as instructions to run the verify tool for assurance of the correct install and configuration of the Module.
11.2 Administrator Guidance

Additional Guidance Documentation inclusive of all information required per ISO/IEC 19790:2012 Section 7.11.9 is available from KeyPair Consulting by request.

11.3 Non-Administrator Guidance
11.4 Design and Rules

The inherent properties of the Module are:

  1. Manual key entry is not supported.
  2. Data output is inhibited during self-tests, zeroization, SSP generation, and error states.
  3. The Module does not perform any cryptographic function if any self-test has failed.
Page 48

FIPS 140-3 Security Policy KeyPair FIPS Provider for OpenSSL 3

12 Mitigation of Other Attacks
12.1 Attack List

The Module implements mitigations for constant-time implementations and blinding attacks.

12.2 Mitigation Effectiveness

Constant-time implementations protect cryptographic implementations in the Module against timing analysis since such attacks exploit differences in execution time depending on the cryptographic operation, and constant-time implementations ensure that the variations in execution time cannot be traced back to the key, CSP or secret data. Numeric blinding protects the RSA, DSA and ECDSA algorithms from timing attacks. These algorithms are vulnerable to such attacks since attackers can measure the time of signature operations or RSA decryption. To mitigate this, the Module generates a random blinding factor which is provided as an input to the decryption/signature operation and is discarded once the operation has completed and resulted in an output. This makes it difficult for attackers to attempt timing attacks on such operations without the knowledge of the blinding factor, and therefore the execution time cannot be correlated to the RSA/DSA/ECDSA key.

12.3 Guidance and Constraints

The mitigation mechanisms described in Section 12.2 are inherent within the validated algorithms. No other guidance or constraints are specified.