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

CorSSL

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

Certificate

StandardFIPS 140-3
Overall level1
Module typeSoftware
EmbodimentMulti-Chip Stand Alone
StatusActive
Sunset date11/20/2026
CaveatInterim validation. When operated in approved mode. When installed, initialized and configured as specified in Section 11 of the Security Policy. No assurance of the minimum strength of generated SSPs (e.g., keys)
VendorCorsec Security, Inc.

Approved Algorithms (63)

AlgorithmACVP Cert
AES-CBCA3254
AES-CCMA3254
AES-CFB1A3254
AES-CFB128A3254
AES-CFB8A3254
AES-CMACA3254
AES-CTRA3254
AES-ECBA3254
AES-GCMA3254
AES-GMACA3254
AES-KWA3254
AES-KWPA3254
AES-OFBA3254
AES-XTS Testing Revision 2.0A3254
Counter DRBGA3254
DSA KeyGen (FIPS186-4)A3254
DSA PQGGen (FIPS186-4)A3254
DSA PQGVer (FIPS186-4)A3254
DSA SigGen (FIPS186-4)A3254
DSA SigVer (FIPS186-4)A3254
ECDSA KeyGen (FIPS186-4)A3254
ECDSA KeyVer (FIPS186-4)A3254
ECDSA SigGen (FIPS186-4)A3254
ECDSA SigVer (FIPS186-4)A3254
HMAC-SHA-1A3254
HMAC-SHA2-224A3254
HMAC-SHA2-256A3254
HMAC-SHA2-384A3254
HMAC-SHA2-512A3254
HMAC-SHA3-224A3254
HMAC-SHA3-256A3254
HMAC-SHA3-384A3254
HMAC-SHA3-512A3254
KAS-ECC-SSC Sp800-56Ar3A3254
KAS-FFC-SSC Sp800-56Ar3A3254
PBKDFA3254
RSA KeyGen (FIPS186-4)A3254
RSA SigGen (FIPS186-4)A3254
RSA SigGen (FIPS186-4)A3254
RSA SigGen (FIPS186-4)A3254
RSA SigVer (FIPS186-4)A3254
RSA SigVer (FIPS186-4)A3254
RSA SigVer (FIPS186-4)A3254
SHA-1A3254
SHA2-224A3254
SHA2-256A3254
SHA2-384A3254
SHA2-512A3254
SHA3-224A3254
SHA3-256A3254
SHA3-384A3254
SHA3-512A3254
SHAKE-128A3254
SHAKE-256A3254
TDES-CBCA3254
TDES-CFB1A3254
TDES-CFB64A3254
TDES-CFB8A3254
TDES-CMACA3254
TDES-ECBA3254
TDES-OFBA3254
TLS v1.2 KDF RFC7627A3254
TLS v1.3 KDFA3253

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

flowchart LR
  %% Deterministic review-risk graph for CorSSL
  %% Review prompts and evidence gaps, NOT vulnerability findings.
  subgraph CMVP["CMVP-disclosed clues"]
    C3["[low] Self-test / status surface<br/>(referenced in text)<br/><i>Self-Test<br/>Status Output</i>"]
    C5["[low] Protocol / secure-channel<br/>references (may be KDF<br/>names, not a live channel)<br/><i>TLS<br/>HTTPS<br/>library named: openssl</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"]
    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"]
    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"]
    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
  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 C3,C5,C6 clue;
  class I3,I5,I6 infer;
  class R3,R5,R6 risk;
  class E3,E5,E6 evidence;
Underlying clues
flowchart LR
  %% Deterministic clue tier for CorSSL
  %% confidence: high = structured record field; medium = structured but soft; low (dashed) = bare keyword hit, context unverified
  subgraph CMVP["CMVP-disclosed clues (deterministic)"]
    C3["[low] Self-test / status surface (referenced in text)<br/><i>Self-Test<br/>Status Output</i><br/>src: text:keyword"]
    C5["[low] Protocol / secure-channel references (may be KDF names, not a live channel)<br/><i>TLS<br/>HTTPS<br/>library named: openssl</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 C3,C5,C6 clueLow;

Security Policy, page by page

Page 1

Corsec Security, Inc. CorSSL™ Software Version: 1.1.1s.005 FIPS Security Level: 1 Document Version: 0.1 Prepared by: Corsec Security, Inc.

12600 Fair Lakes Circle, Suite 210

Fairfax, VA 22033 United States of America Phone: +1 703 267 6050 www.corsec.com

Page 2

Abstract This is a non-proprietary Cryptographic Module Security Policy for CorSSL™ (version: 1.1.1s.005) from Corsec Security, Inc. (Corsec). This Security Policy describes how CorSSL™ meets the security requirements of Federal Information Processing Standards (FIPS) Publication 140-3, which details the U.S. and Canadian government requirements for cryptographic modules. More information about the FIPS 140-3 standard and validation program is available on the National Institute of Standards and Technology (NIST) and the Canadian Centre for Cyber Security (CCCS) Cryptographic Module Validation Program (CMVP) website at http://csrc.nist.gov/groups/STM/cmvp. This document also describes how to run the module in a secure Approved mode of operation. This policy was prepared as part of the Level 1 FIPS 140-3 validation of the module. CorSSL™ is also referred to in this document as the module. References This document deals only with operations and capabilities of the module in the technical terms of a FIPS 140-3 cryptographic module security policy. More information is available on the module from the following sources:

Page 3
Table of Contents
#SectionPage
Page 4
List of Tables
ItemPage
Table 1 – Security Levels5
Table 2 – Tested Operational Environments7
Table 3 – Approved Algorithms8
Table 4 – Non-Approved Algorithms Allowed in the Approved Mode of Operation14
Table 5 – Non-Approved Algorithms Not Allowed in the Approved Mode of Operation14
Table 6 – Ports and Interfaces18
Table 7 – Roles, Service Commands, Input and Output19
Table 8 – Approved Services21
Table 9 – Non-Approved Services23
Table 10 – Keys29
Table 11 – Non-Deterministic Random Number Generation Specification33
Table 12 – CVEs39
Table 13 – Acronyms and Abbreviations41
Figure 1 – GPC Block Diagram16
Figure 2 – Module Block Diagram (with Cryptographic Boundary)17
Page 5
ISO/IEC 24579 Section 6. [Number Below]FIPS 140-3 Section TitleSecurity Level
1General1
2Cryptographic Module Specification1
3Cryptographic Module Interfaces1
4Roles, Services, and Authentication1
5Software/Firmware Security1
6Operational Environment1
7Physical SecurityN/A
8Non-Invasive SecurityN/A

Corsec Security, Inc. is a privately owned company dedicated to assisting organizations through the security certification and validation process. Over the past 22 years, Corsec has grown significantly, becoming a global leader in product and corporate security, offering critical guidance and expertise to meet important business challenges in product security and third-party certifications and security validations, including FIPS 140-2, FIPS 140-3, Common Criteria, and the DoDIN1 APL2. Corsec’s certification methodology helps open doors to new markets and increase revenue for clients with products ranging from mobile phones to satellites. Corsec’s broad knowledge safeguards against common pitfalls and thwarts delays, translating to a swift and seamless path to certification. Corsec has created the benchmark for providing business leaders with fast, flexible access to industry knowledge on security certifications and validations. CorSSL™ v1.1.1s.005 is a software library providing a C language API 3 for use by other applications requiring cryptographic functionality. CorSSL™ v1.1.1s.005 offers symmetric encryption/decryption, digital signature generation/verification, hashing, cryptographic key generation, random number generation, message authentication, and key establishment functions to secure data-at-rest/data-in-flight and to support industrystandard secure communications protocols (including TLS4 1.2/1.3). Corsec’s CorSSL™ is built upon the OpenSSL 1.1.1 code base, providing engineering teams with a completely compatible cryptographic/protocol engine, allowing quick “drop-in” replacement into any existing OpenSSL 1.1.1based architecture. CorSSL™ (which includes both the libcrypto crypto library and the libssl protocol library) does not modify the OpenSSL interface, maintaining complete compatibility, and eliminating engineering development time to meet FIPS 140-3 requirements. CorSSL™ is validated at the FIPS 140-3 section levels shown in Table 1. Table 1 – Security Levels

1 DoDIN – Department of Defense Information Network

2 APL – Approved Product List

API – Application Programming Interface

4 TLS – Transport Layer Security

CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 6
ISO/IEC 24579 Section 6. [Number Below]FIPS 140-3 Section TitleSecurity Level
9Sensitive Security Parameter Management1
10Self-tests1
11Life-Cycle Assurance1
12Mitigation of Other AttacksN/A

The module has an overall security level of 1. CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 7
#Operating SystemHardware PlatformProcessorPAA/Acceleration
1Debian 9Dell PowerEdge R440Intel® Xeon Silver 4214RWith (AES-NI)
2Debian 9Dell PowerEdge R440Intel® Xeon Silver 4214RWithout

2. Cryptographic Module Specification CorSSL™ v1.1.1s.005 is a software module with a multi-chip standalone embodiment. The module is designed to operate within a modifiable operational environment.

2.1 Operational Environments

The module was tested and found to be compliant with FIPS 140-3 requirements on the environments listed in Table 2. Table 2 – Tested Operational Environments The module is designed to utilize the AES-NI5 extended instruction set when available on the host platform’s CPU to accelerate the processing of its AES implementation. There are no vendor-affirmed operational environments claimed. The cryptographic module maintains validation compliance when operating on any general-purpose computer (GPC) provided that the GPC uses any single-user operating system/mode specified on the validation certificate, or another compatible single-user operating system. 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 not listed on the validation certificate.

2.2 Algorithm Implementations

The module implements cryptographic algorithms in the following providers:

5 AES-NI – Advanced Encryption Algorithm New Instructions

CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 8
CAVP Cert6 CorSSL (libcrypto)Algorithm and StandardMode / MethodDescription / Key Size(s) / Key Strength(s)Use / Function
A3254AES-CBC7 FIPS PUB8 197 NIST SP 800-38ACBC128, 192, 256Encryption/Decryption
A3254AES-CCM9 NIST SP 800-38CCCM128, 192, 256Encryption/Decryption
A3254AES-CFB110 FIPS PUB 197 NIST SP 800-38ACFB1128, 192, 256Encryption/Decryption
A3254AES-CFB128 FIPS PUB 197 NIST SP 800-38ACFB128128, 192, 256Encryption/Decryption
A3254AES-CFB8 FIPS PUB 197 NIST SP 800-38ACFB8128, 192, 256Encryption/Decryption
A3254AES-CMAC11 NIST SP 800-38BCMAC128, 192, 256MAC Generation/Verification
A3254AES-CTR12 FIPS PUB 197 NIST SP 800-38ACTR128, 192, 256Encryption/Decryption
A3254AES-ECB13 FIPS PUB 197 NIST SP 800-38AECB128, 192, 256Encryption/Decryption
A3254AES-GCM14 NIST SP 800-38DGCM128, 192, 256Authenticated Encryption/Decryption
A3254AES-GMAC15 NIST SP 800-38DGMAC128, 192, 256Encryption/Decryption
A3254AES-KW16 NIST SP 800-38FKW128, 192, 256Encryption/Decryption
A3254AES-KWP17 NIST SP 800-38FKWP128, 192, 256Encryption/Decryption
A3254AES-OFB18 FIPS PUB 197 NIST SP 800-38AOFB128, 192, 256Encryption/Decryption

6 This table includes vendor-affirmed algorithms that are approved but CAVP testing is not yet available.

7 CBC – Cipher Block Chaining

9 CCM – Counter with Cipher Block Chaining - Message Authentication Code

10 CFB – Cipher Feedback

11 CMAC – Cipher-Based Message Authentication Code

13 ECB – Electronic Code Book

14 GCM – Galois Counter Mode

15 GMAC – Galois Message Authentication Code

16 KW – Key Wrap

KWP – Key Wrap with Padding

18 OFB – Output Feedback

CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 9
CAVP Cert6Algorithm and StandardMode / MethodDescription / Key Size(s) / Key Strength(s)Use / Function
A3254AES-XTS19,20,21 Testing Revision 2.0 NIST SP 800-38EXTS22,23,24128, 256Encryption/Decryption
A3254Counter DRBG25 NIST SP 800-90Arev1Counter-based128, 192, 256-bit AES-CTRDeterministic Random Bit Generation
A3254DSA26 KeyGen (FIPS186-4) FIPS PUB 186-4DSA KeyGen2048/224, 2048/256, 3072/256Key Pair Generation
A3254DSA PQGGen (FIPS186-4) FIPS PUB 186-4DSA PQGGen2048/224, 2048/256, 3072/256 (SHA2-224, SHA2-256, SHA2-384, SHA2-512)Domain Parameter Generation
A3254DSA PQGVer (FIPS186-4) FIPS PUB 186-4DSA PQGVer1024/160, 2048/224, 2048/256, 3072/256 (SHA- 1, SHA2-224, SHA2-256, SHA2-384, SHA2-512)Domain Parameter Verification
A3254DSA SigGen (FIPS186-4) FIPS PUB 186-4DSA SigGen2048/224, 2048/256, 3072/256 (SHA2-224, SHA2-256, SHA2-384, SHA2-512)Digital Signature Generation
A3254DSA SigVer (FIPS186-4) FIPS PUB 186-4DSA SigVer1024/160, 2048/224, 2048/256, 3072/256 (SHA- 1, SHA2-224, SHA2-256, SHA2-384, SHA2-512)Digital Signature Verification
A3254ECDSA27 KeyGen (FIPS186-4) FIPS PUB 186-4ECDSA KeyGen Secret generation mode: Testing candidatesB-233, B-283, B-409, B-571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, P-521Key Pair Generation
A3254ECDSA KeyVer (FIPS186-4) FIPS PUB 186-4ECDSA KeyVerB-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 (SHA-1, SHA2-224, SHA2-256, SHA2-384, SHA2-512)Public Key Validation
A3254ECDSA SigGen (FIPS186-4) FIPS PUB 186-4ECDSA SigGenB-233, B-283, B-409, B-571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, P-521 (SHA2-224, SHA2-256, SHA2-384, SHA2-512)Digital Signature Generation

19 XOR – Exclusive OR

20 XEX – XOR Encrypt XOR

XTS – XEX-Based Tweaked-Codebook Mode with Ciphertext Stealing

22 XOR – Exclusive OR

23 XEX – XOR Encrypt XOR

24 XTS – XEX-Based Tweaked-Codebook Mode with Ciphertext Stealing

25 DRBG – Deterministic Random Bit Generator

27 ECDSA – Elliptic Curve Digital Signature Algorithm

CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 10
CAVP Cert6Algorithm and StandardMode / MethodDescription / Key Size(s) / Key Strength(s)Use / Function
A3254ECDSA SigVer (FIPS186-4) FIPS PUB 186-4ECDSA SigVerB-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 (SHA-1, SHA2-224, SHA2-256, SHA2-384, SHA2-512)Digital Signature Verification
A3254HMAC SHA-1 FIPS PUB 198-1SHA-1MAC: 80-160 Increment 8 Key Length: 8-524288 Increment 8Message Authentication The module also supports HMAC SHA-1-80.
A3254HMAC SHA2-224 FIPS PUB 198-1SHA2-224MAC: 224 Key Length: 8-524288 Increment 8Message Authentication
A3254HMAC SHA2-256 FIPS PUB 198-1SHA2-256MAC: 256 Key Length: 8-524288 Increment 8Message Authentication
A3254HMAC SHA2-384 FIPS PUB 198-1SHA2-384MAC: 384 Key Length: 8-524288 Increment 8Message Authentication
A3254HMAC SHA2-512 FIPS PUB 198-1SHA2-512MAC: 512 Key Length: 8-524288 Increment 8Message Authentication
A3254HMAC SHA3-224 FIPS PUB 198-1SHA3-224MAC: 224 Key Length: 8-524288 Increment 8Message Authentication
A3254HMAC SHA3-256 FIPS PUB 198-1SHA3-256MAC: 256 Key Length: 8-524288 Increment 8Message Authentication
A3254HMAC SHA3-384 FIPS PUB 198-1SHA3-384MAC: 384 Key Length: 8-524288 Increment 8Message Authentication
A3254HMAC SHA3-512 FIPS PUB 198-1SHA3-512MAC: 512 Key Length: 8-524288 Increment 8Message Authentication
A3254KAS-ECC-SSC28 Sp800-56Ar3 NIST SP 800-56Arev3ephemeralUnifiedB-233, B-283, B-409, B-571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, P-521Shared Secret Computation
A3254KAS-FFC-SSC29 Sp800-56Ar3 NIST SP 800-56Arev3dhEphem2048/224 (FB), 2048/256 (FC)Shared Secret Computation
A3254PBKDF230 NIST SP 800-132Section 5.4, option 1aSHA-1, SHA2-224, SHA2- 256, SHA2-384, SHA2-512, SHA3-224, SHA3-256, SHA3-384, SHA3-512Password-Based Key Derivation

28 KAS-ECC-SSC – Key Agreement Scheme - Elliptic Curve Cryptography - Shared Secret Computation

KAS-FFC-SSC – Key Agreement Scheme - Finite Field Cryptography - Shared Secret Computation CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 11
CAVP Cert6Algorithm and StandardMode / MethodDescription / Key Size(s) / Key Strength(s)Use / Function
A3254RSA31 KeyGen (FIPS186-4) FIPS PUB 186-4Key generation mode: B.3.32048, 3072, 4096Key Pair Generation
A3254RSA32 SigGen (FIPS186-4) FIPS PUB 186-4X9.312048, 3072, 4096 (SHA2- 256, SHA2-384, SHA2-512)Digital Signature Generation
PKCS#1 v1.52048, 3072, 4096 (SHA2- 224, SHA2-256, SHA2-384, SHA2-512)Digital Signature Generation
PSS332048, 3072, 4096 (SHA2- 224, SHA2-256, SHA2-384, SHA2-512)Digital Signature Generation
A3254RSA34 SigVer (FIPS186-4) FIPS PUB 186-4X9.311024, 2048, 3072, 4096 (SHA-1, SHA2-256, SHA2- 384, SHA2-512)Digital Signature Verification
PKCS#1 v1.51024, 2048, 3072, 4096 (SHA-1, SHA2-224, SHA2- 256, SHA2-384, SHA2-512)Digital Signature Verification
PSS351024, 2048, 3072, 4096 (SHA-1, SHA2-224, SHA2- 256, SHA2-384, SHA2-512)Digital Signature Verification
A3254SHA-1 FIPS PUB 180-4SHA-1Message Length: 0-65528 Increment 8Message Digest
A3254SHA2-224 FIPS PUB 180-4SHA2-224Message Length: 0-65528 Increment 8Message Digest
A3254SHA2-256 FIPS PUB 180-4SHA2-256Message Length: 0-65528 Increment 8Message Digest
A3254SHA2-384 FIPS PUB 180-4SHA2-384Message Length: 0-65528 Increment 8Message Digest
A3254SHA2-512 FIPS PUB 180-4SHA2-512Message Length: 0-65528 Increment 8Message Digest
A3254SHA3-224 FIPS PUB 202SHA3-224Message Length: 0-65528 Increment 8Message Digest
A3254SHA3-256 FIPS PUB 202SHA3-256Message Length: 0-65528 Increment 8Message Digest
A3254SHA3-384 FIPS PUB 202SHA3-384Message Length: 0-65528 Increment 8Message Digest
A3254SHA3-512 FIPS PUB 202SHA3-512Message Length: 0-65528 Increment 8Message Digest
A3254SHAKE36-128 FIPS PUB 202SHAKE-128Output Length: 16-1024 Increment 8Message Digest

31 RSA – Rivest Shamir Adleman

32 RSA – Rivest Shamir Adleman

33 PSS – Probabilistic Signature Scheme

34 RSA – Rivest Shamir Adleman

PSS – Probabilistic Signature Scheme

36 SHAKE – Secure Hash Algorithm KECCAK

CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 12
CAVP Cert6Algorithm and StandardMode / MethodDescription / Key Size(s) / Key Strength(s)Use / Function
A3254SHAKE-256 FIPS PUB 202SHAKE-256Output Length: 16-1024 Increment 8Message Digest
A3254TDES-CBC NIST SP 800-67rev2 NIST SP 800-38ACBC168Decryption
A3254TDES-CFB1 NIST SP 800-67rev2 NIST SP 800-38ACFB1168Decryption
A3254TDES-CFB64 NIST SP 800-67rev2 NIST SP 800-38ACFB64168Decryption
A3254TDES-CFB8 NIST SP 800-67rev2 NIST SP 800-38ACFB8168Decryption
A3254TDES-CMAC NIST SP 800-67rev2 NIST SP 800-38BCMAC112, 168MAC verification
A3254TDES-ECB NIST SP 800-67rev2 NIST SP 800-38AECB168Decryption
A3254TDES-OFB NIST SP 800-67rev2 NIST SP 800-38AOFB168Decryption
A3254 CorSSL (libssl)TLS v1.2 KDF RFC 7627 CVL NIST SP 800-135rev1 RFC 7627KDF (TLS37 v1.2)SHA2-256, SHA2-384, SHA2-512Key Derivation No part of the TLS 1.2 protocol, other than the KDF, has been tested by the CAVP and CMVP.
A3253 Security Function Implementations (SFIs)TLS v1.3 KDF CVL NIST SP 800-135rev1 RFC 8446KDF (TLS v1.3)SHA2-256, SHA2-384Key Derivation No part of the TLS 1.3 protocol, other than the KDF, has been tested by the CAVP and CMVP.
KAS-ECC-SSC A3254 TLS v1.2 KDF RFC7627 A3254KAS38 NIST SP 800-56Arev3 NIST SP 800-135rev1 RFC 7627NIST SP 800- 56Arev3. KAS-ECC per IG D.F Scenario 2 path (2)B-233, B-283, B-409, B-571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, and P- 521 curves providing between 112 and 256 bits of encryption strengthKey Agreement
KAS-ECC-SSC A3254 TLS v1.3 KDF A3253KAS NIST SP 800-56Arev3 NIST SP 800-135rev1 RFC 8446NIST SP 800- 56Arev3. KAS-ECC per IG D.F Scenario 2 path (2)B-233, B-283, B-409, B-571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, and P- 521 curves providing between 112 and 256 bits of encryption strengthKey Agreement

TLS – Transport Layer Security CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 13
CAVP Cert6Algorithm and StandardMode / MethodDescription / Key Size(s) / Key Strength(s)Use / Function
KAS-FFC-SSC A3254 TLS v1.2 KDF RFC7627 A3254KAS NIST SP 800-56Arev3 NIST SP 800-135rev1 RFC 7627NIST SP 800- 56Arev3. KAS-FFC per IG D.F Scenario 2 path (2)2048-bit key providing 112 bits of encryption strengthKey Agreement
KAS-FFC-SSC A3254 TLS v1.3 KDF A3253KAS NIST SP 800-56Arev3 NIST SP 800-135rev1 RFC 8446NIST SP 800- 56Arev3. KAS-FFC per IG D.F Scenario 2 path (2)2048-bit key providing 112 bits of encryption strengthKey Agreement
AES-CCM A3254KTS39 NIST SP 800-38C NIST SP 800-38FNIST SP 800-38C and NIST SP 800- 38F. KTS (key wrapping and unwrapping) per IG D.G.128, 192, and 256-bit keys provide between 128 and 256 bits of encryption strengthKey Wrap/Unwrap40
AES-GCM A3254KTS NIST SP 800-38D NIST SP 800-38FNIST SP 800-38D and NIST SP 800- 38F. KTS (key wrapping and unwrapping) per IG D.G.128, 192, and 256-bit keys provide between 128 and 256 bits of encryption strengthKey Wrap/Unwrap41
AES-KW A3254KTS NIST SP 800-38FNIST SP 800-38F. KTS (key wrapping and unwrapping) per IG D.G.128, 192, and 256-bit keys provide between 128 and 256 bits of encryption strengthKey Wrap/Unwrap
AES-KWP A3254 Vendor AffirmedKTS NIST SP 800-38FNIST SP 800-38F. KTS (key wrapping and unwrapping) per IG D.G.128, 192, and 256-bit keys provide between 128 and 256 bits of encryption strengthKey Wrap/Unwrap
Vendor AffirmedCKG42 NIST SP 800-133rev2--Cryptographic Key Generation

D.G. D.G. The vendor affirms the following cryptographic security methods: uses its Approved DRBG to generate random values and seeds used for asymmetric key generation. The generated seed is an unmodified output from the DRBG. The cryptographic module invokes a GET command to obtain entropy for random number generation (the module requests 256 bits of entropy from the calling application per request), and then passively receives entropy from the calling application

39 KTS – Key Transport Scheme

40 Per FIPS 140-3 Implementation Guidance D.G, AES-CCM is Approved for key wrap/unwrap.

Per FIPS 140-3 Implementation Guidance D.G, AES-GCM is Approved for key wrap/unwrap. CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 14
AlgorithmCaveatUse / Function
AESCert. #A3254, Key Unwrapping. Per IG D.G.Symmetric Key Unwrapping (using any approved mode)
Triple-DESCert. #A3254, Key Unwrapping. Per IG D.G.Symmetric Key Unwrapping (using any approved mode with two-key or three-key)
Algorithm / FunctionUse / Function
AES-GCM (non-compliant with external IV)Encryption/Decryption
AES-OCB43Authenticated Encryption/decryption
ANSI X9.31 RNG (with 128-bit AES core)Random Number Generation
ARIAEncryption/Decryption
Blake2Encryption/Decryption
BlowfishEncryption/Decryption
CamelliaEncryption/Decryption
CAST, CAST5Encryption/Decryption
ChaCha20Encryption/Decryption
DESEncryption/Decryption
DRBG (non-compliant when using Hash_DRBG and HMAC_DRBG)Random Bit Generation
DSA, ECDSA, and RSA (non-compliant when used with SHA-1 outside the TLS protocol)Digital Signature Generation
DH (non-compliant with key sizes below 2048 bits)Key Agreement

while having no knowledge of the entropy source and exercising no control over the amount or the quality of the obtained entropy. The calling application and its entropy sources are located within the operational environment inside the module’s physical perimeter but outside the cryptographic boundary. Thus, there is no assurance of the minimum strength of generated SSPs (e.g., keys) The module implements the Non-Approved but allowed algorithms shown in Table 4 below. Table 4

43 OCB – Offset Codebook

CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 15
Algorithm / FunctionUse / Function
DSA (non-compliant with key sizes below the minimums for Approved mode)Key Pair Generation; Digital Signature Generation; Digital Signature Verification
ECDH (non-compliant with curves P-192, K-163, B- 163, and non-NIST curves)Key Agreement
ECDSA (non-compliant with curves P-192, K-163, B- 163, and non-NIST curves)Key Pair Generation; Digital Signature Generation; Digital Signature Verification
EdDSA44Key Pair Generation; Digital Signature Generation; Digital Signature Verification
IDEAEncryption/Decryption
KDFKey Derivation Functions for TLS 1.0/1.1; HKDF; X9.42
MD2, MD4, MD5Message Digest
Poly1305Message Authentication Code
RC245, RC4, RC5Encryption/Decryption
RIPEMDMessage Digest
RMD160Message Digest
RSA (non-compliant with non-approved/untested key sizes, and functions)Key Pair Generation; Digital Signature Generation; Digital Signature Verification; Key Transport
SEEDEncryption/Decryption
SHA-1 (non-compliant)Signature Generation for TLS 1.0/1.1
SM2, SM3Message Digest
SM4Encryption/Decryption
Triple-DES (non-compliant)Encryption; MAC Generation; Key Wrapping
WhirlpoolMessage Digest
2.3 Cryptographic Boundary

As a software cryptographic module, the module has no physical components. The physical perimeter of the cryptographic module is defined by each host platform on which the module is installed. Figure 1 below illustrates a block diagram of a typical GPC and the module’s physical perimeter. EdDSA – Edwards-curve Digital Signature Algorithm

45 RC – Rivest Cipher

CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 16
Table, extracted as text (did not parse into structured rows)
Hardware                               Network                           DVD RAM Management                              Interface HDD Clock                                                          SCSI/SATA Generator                                                       Controller LEDs/LCD CPU                                                                              Serial I/O Hub Audio Cache                 PCI/PCIe Slots                                                       USB BIOS Power              Graphics                                               PCI/PCIe Interface            Controller                                              Slots External Power Supply KEY: BIOS – Basic Input/Output System               PCIe – PCI express Plaintext Data             CPU – Central Processing Unit                  HDD – Hard Disk Drive Encrypted Data             SATA – Serial Advanced Technology Attachment   DVD – Digital Video Disc Control Input              SCSI – Small Computer System Interface         USB – Universal Serial Bus Status Output              PCI – Peripheral Component Interconnect        RAM – Random Access Memory Physical Perimeter         LED – Light Emitting Diode                     LCD – Liquid Crystal Display Figure 1 – GPC Block Diagram The module’s cryptographic boundary consists of all functionalities contained within the module’s compiled source code. Including: •    libcrypto (cryptographic primitives library file) •    libssl (TLS protocol library file) •    libcrypto.hmac (an HMAC digest file for libcrypto integrity checks) •    libssl.hmac (an HMAC digest file for libssl integrity checks) The cryptographic boundary is the contiguous perimeter that surrounds all memory-mapped functionality provided by the module when it is loaded and stored in the host platform’s memory. The module is entirely contained within the physical perimeter. Figure 2 shows the logical block diagram of the module executing in memory, its interactions with surrounding software components, and the module’s physical perimeter and cryptographic boundary. CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.
Page 17

libssl libssl.hmac Calling Application libcrypto libcrypto.hmac KEY: Cryptographic Boundary Physical Perimeter Operating System Data Input Data Output Control Input Control Output CPU Memory Storage Ports Status Output System Calls Host Device Figure 2 – Module Block Diagram (with Cryptographic Boundary)

2.4 Modes of Operation

The module supports two modes of operation: Approved and Non-Approved. The module operates in the Approved mode when all pre-operational self-tests have completed successfully, and only Approved services are invoked. Table 3 and Table 4 list the Approved and allowed algorithms, while Table 8 provides descriptions of the Approved services. The module alternates on a service-by-service basis between Approved and Non-Approved modes of operation. The module will implicitly switch to the Non-Approved mode upon execution of a Non-Approved service. The module will implicitly switch back to the Approved mode upon execution of an Approved service. Table 5 lists the Non-Approved algorithms implemented by the module, while Table 9 below lists the services that constitute the Non-Approved mode. When following the guidance in section 11.5 of this document, CSPs are not shared between Approved and nonApproved services and modes of operation. CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 18
Physical PortLogical InterfaceData That Passes Over Port/Interface
Physical data input port(s) of the tested platformsData Input • API input arguments that provide input data for processing• Data to be encrypted, decrypted, signed, verified, or hashed • Keys to be used in cryptographic services • Random seed material for the module’s DRBG • Keying material to be used as input to key establishment services
Physical data output port(s) of the tested platformsData Output • API output arguments that return generated or processed data back to the caller• Data that has been encrypted, decrypted, or verified • Digital signatures • Hashes • Random values generated by the module’s DRBG • Keys established using module’s key establishment methods
Physical control input port(s) of the tested platformsControl Input • API input arguments that are used to initialize and control the operation of the module• API commands invoking cryptographic services • Modes, key sizes, etc. used with cryptographic services
Physical status output port(s) of the tested platformsStatus Output • API call return values• Status information regarding the module • Status information regarding the invoked service/operation

FIPS 140-3 defines the following logical interfaces for cryptographic modules: As a software library, the cryptographic module has no direct access to any of the host platform’s physical ports, as it communicates only to the calling application via its well-defined API. A mapping of the FIPS-defined interfaces and the module’s logical ports and interfaces can be found in Table 6. Note that the module does not output Table 6 – Ports and Interfaces CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 19
RoleServiceInputOutput
COShow StatusAPI call parametersCurrent operational status
COPerform Self-Tests On-DemandRe-instantiate module; API call parametersStatus
COZeroizeRestart calling application; reboot or power-cycle host platformNone
COShow Versioning InformationAPI call parametersModule name, version
UserPerform Symmetric EncryptionAPI call parameters, key, plaintextStatus, ciphertext
UserPerform Symmetric DecryptionAPI call parameters, key, ciphertextStatus, plaintext
UserGenerate Symmetric DigestAPI call parameters, key, plaintextStatus, digest
UserVerify Symmetric DigestAPI call parameters, digestStatus
UserPerform Authenticated Symmetric EncryptionAPI call parameters, key, plaintextStatus, ciphertext
UserPerform Authenticated Symmetric DecryptionAPI call parameters, key, ciphertextStatus, plaintext
UserGenerate Random NumberAPI call parametersStatus, random bits
UserPerform Keyed Hash OperationAPI call parameters, key, messageStatus, MAC46
UserPerform Hash OperationAPI call parameters, messageStatus, hash
UserGenerate DSA Domain ParametersAPI call parametersStatus, domain parameters
UserVerify DSA Domain ParametersAPI call parametersStatus, domain parameters
UserGenerate Asymmetric Key PairAPI call parametersStatus, key pair
UserVerify ECDSA Public KeyAPI call parameters, keyStatus
UserGenerate Digital SignatureAPI call parameters, key, messageStatus, signature

4. Roles, Services, and Authentication The sections below describe the module’s authorized roles, services, and operator authentication methods.

4.1 Authorized Roles

The module supports a Crypto Officer (CO) that authorized operators can assume. The CO role performs cryptographic initialization or management functions and general security services. The module also supports the following role(s):

46 MAC – Message Authentication Code

CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 20
RoleServiceInputOutput
UserVerify Digital SignatureAPI call parameters, key, signature, messageStatus
UserPerform Key WrapAPI call parameters, encryption key, keyStatus, encrypted key
UserPerform Key UnwrapAPI call parameters, decryption key, keyStatus, decrypted key
UserCompute Shared SecretAPI call parametersStatus, shared secret
UserDerive Keys via TLS KDFAPI call parameters, TLS pre- master secretStatus, TLS keys
UserPerform Key Agreement FunctionsAPI call parametersStatus, symmetric key
UserDerive Key via PBKDF2API call parameters, passwordStatus, key
4.2 Authentication Methods

The module does not support authentication methods; operators implicitly assume an authorized role based on the service selected.

4.3 Services

Descriptions of the approved services available to the authorized roles are provided in Table 8 below. This module is a software library that provides cryptographic functionality to calling applications. As such, the security functions provided by the module are considered the module’s security services. Indicators for Approved services (in the case of this module, those security functions with algorithm validation certificates and all required self-tests) are provided via API return value. When invoking a security function, the calling application provides inputs via an internal structure, or “context”. Upon each service invocation, the module will determine if the invoked security function is an Approved service. To access the resulting value, the calling application must pass the finalized context to the indicator API associated with that security function (note the indicator check must be performed prior to any context cleanup is performed). The indicator API will return “1” to indicate the usage of an Approved service. Indicators for services providing Non-Approved security functions (as well as for services not requiring an indicator) will have a value other than “1”, ensuring that the indicators for Approved services are unambiguous. Additional details on the APIs used for the Approved service indicators are provided in Appendix B below. The keys and Sensitive Security Parameters (SSPs) listed in the table indicate the type of access required using the following notation:

Page 21
ServiceDescriptionApproved Security FunctionsKeys and/or SSPsRolesAccess Rights to Keys and/or SSPsIndicator
Show StatusReturn Approved mode statusNoneNoneCON/AN/A
Perform Self- Tests On- DemandPerform pre- operational self- testsNoneIntegrity Test Key - libcrypto Integrity Test Key - libsslCOIntegrity Test Key – libcrypto – E Integrity Test Key - libssl – EAPI return value
ZeroizeZeroize and de- allocate memory containing sensitive dataNoneAll SSPsCOAll SSPs – ZN/A
Show Versioning InformationReturn module versioning informationNoneNoneCON/AN/A
Perform Symmetric EncryptionEncrypt plaintext dataAES-CBC (Cert. A3254) AES-CCM (Cert. A3254) AES-CFB1 (Cert. A3254) AES-CFB128 (Cert. A3254) AES-CFB8 (Cert. A3254) AES-CTR (Cert. A3254) AES-ECB (Cert. A3254) AES-GMAC (Cert. A3254) AES-KW (Cert. A3254) AES-KWP (Cert. A3254) AES-OFB (Cert. A3254) AES-XTS Testing Revision 2.0 (Cert. A3254)AES key AES GMAC key AES XTS keyUserAES key – WE AES GMAC key – WE AES XTS key – WEAPI return value
Perform Symmetric DecryptionDecrypt ciphertext dataAES-CBC (Cert. A3254) AES-CCM (Cert. A3254) AES-CFB1 (Cert. A3254) AES-CFB128 (Cert. A3254) AES-CFB8 (Cert. A3254) AES-CTR (Cert. A3254) AES-ECB (Cert. A3254) AES GMAC (Cert. A3254) AES-KW (Cert. A3254) AES-KWP (Cert. A3254) AES-OFB (Cert. A3254) AES-XTS Testing Revision 2.0 (Cert. A3254) TDES-CBC (Cert. A3254) TDES-CFB1 (Cert. A3254) TDES-CFB64 (Cert. A3254) TDES-CFB8 (Cert. A3254) TDES-ECB (Cert. A3254) TDES-OFB (Cert. A3254)AES key AES GMAC key AES XTS key Triple-DES keyUserAES key – WE AES GMAC key – WE AES XTS key – WE Triple-DES key – WEAPI return value
Generate Symmetric DigestGenerate symmetric digestAES-CMAC (Cert. A3254)AES CMAC keyUserAES CMAC key – WEAPI return value
Verify Symmetric DigestVerify symmetric digestAES-CMAC (Cert. A3254) TDES-CMAC (Cert. A3254)AES CMAC key Triple-DES CMAC keyUserAES CMAC key – WE Triple-DES CMAC key – WEAPI return value
Perform Authenticated Symmetric EncryptionEncrypt plaintext using supplied AES GCM key and IVAES-GCM (Cert. A3254)AES GCM key AES GCM IVUserAES GCM key – WE AES GCM IV – WEAPI return value
Perform Authenticated Symmetric DecryptionDecrypt ciphertext using supplied AES GCM key and IVAES-GCM (Cert. A3254)AES GCM key AES GCM IVUserAES GCM key – WE AES GCM IV – WEAPI return value
Generate Random NumberGenerate random bits using DRBGCounter DRBG (Cert. A3254)DRBG entropy input DRBG seed DRBG ‘V’ value DRBG ‘Key’ valueUserDRBG entropy input – WE DRBG seed – GE DRBG ‘V’ value – GE DRBG ‘Key’ value – GEAPI return value
Perform Keyed Hash OperationCompute a message authentication codeHMAC SHA-1 (Cert. A3254) HMAC SHA2-224 (Cert. A3254) HMAC SHA2-256 (Cert. A3254) HMAC SHA2-384 (Cert. A3254) HMAC SHA2-512 (Cert. A3254) HMAC SHA3-224 (Cert. A3254) HMAC SHA3-256 (Cert. A3254) HMAC SHA3-384 (Cert. A3254) HMAC SHA3-512 (Cert. A3254)HMAC keyUserHMAC key – WEAPI return value

Table 8 – Approved Services CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 22
ServiceDescriptionApproved Security FunctionsKeys and/or SSPsRolesAccess Rights to Keys and/or SSPsIndicator
Perform Hash OperationCompute a message digestSHA-1 (Cert. A3254) SHA2-224 (Cert. A3254) SHA2-256 (Cert. A3254) SHA2-384 (Cert. A3254) SHA2-512 (Cert. A3254) SHA3-224 (Cert. A3254) SHA3-256 (Cert. A3254) SHA3-384 (Cert. A3254) SHA3-512 (Cert. A3254)NoneUserN/AAPI return value
Generate DSA Domain ParametersGenerate DSA domain parametersDSA PQGGen (FIPS186-4) (Cert. A3254)NoneUserN/AAPI return value
Verify DSA Domain ParametersVerify DSA domain parametersDSA PQGVer (FIPS186-4) (Cert. A3254)NoneUserN/AAPI return value
Generate Asymmetric Key PairGenerate a public/private key pairDSA KeyGen (FIPS186-4) (Cert. A3254) ECDSA KeyGen (FIPS186-4) (Cert. A3254) RSA KeyGen (FIPS186-4) (Cert. A3254)DSA public key DSA private key ECDSA public key ECDSA private key RSA public key RSA private keyUserDSA public key – GR DSA private key – GR ECDSA public key – GR ECDSA private key – GR RSA public key – GR RSA private key – GRAPI return value
Verify ECDSA Public KeyVerify an ECDSA public keyECDSA KeyVer (FIPS186-4) (Cert. A3254)ECDSA public keyUserECDSA public key – WAPI return value
Generate Digital SignatureGenerate a digital signatureDSA SigGen (FIPS186-4) (Cert. A3254) ECDSA SigGen (FIPS186-4) (Cert. A3254) RSA SigGen (FIPS186-4) (Cert. A3254)DSA private key ECDSA private key RSA private keyUserDSA private key – WE ECDSA private key – WE RSA private key – WEAPI return value
Verify Digital SignatureVerify a digital signatureDSA SigVer (FIPS186-4) (Cert. A3254) ECDSA SigVer (FIPS186-4) (Cert. A3254) RSA SigVer (FIPS186-4) (Cert. A3254)DSA public key ECDSA public key RSA public keyUserDSA public key – WE ECDSA public key – WE RSA public key – WEAPI return value
Perform Key WrapPerform key wrapKTS (AES-CCM) (Cert. A3254) KTS (AES-GCM) (Cert. A3254) KTS (AES-KW) (Cert. A3254) KTS (AES-KWP) (Cert. A3254)AES key AES GCM key AES GCM IVUserAES key – WE AES GCM key – WE AES GCM IV – WEAPI return value
Perform Key UnwrapPerform key unwrapKTS (AES-CCM) (Cert. A3254) KTS (AES-GCM) (Cert. A3254) KTS (AES-KW) (Cert. A3254) KTS (AES-KWP) (Cert. A3254)AES key AES GCM key AES GCM IVUserAES key – WE AES GCM key – WE AES GCM IV – WEAPI return value
Compute Shared SecretCompute DH/ECDH shared secret suitable for use as input to a TLS KDFKAS-ECC-SSC Sp800-56Ar3 (Cert. A3254) KAS-FFC-SSC Sp800-56Ar3 (Cert. A3254)DH public key DH private key ECDH public key ECDH private key TLS pre-master secretUserDH public key – WE DH private key – WE ECDH public key – WE ECDH private key – WE TLS pre-master secret – GEAPI return value
Derive Keys via TLS KDFDerive TLS session and integrity keysTLS v1.2 KDF RFC7627 (Cert. A3254) TLS v1.3 KDF (Cert. A3253)TLS pre-master secret TLS master secret AES key AES GCM key AES GCM IV HMAC keyUserTLS pre-master secret – WE TLS master secret – GE AES key – GR AES GCM key – GR AES GCM IV – GR HMAC key – GRAPI return value
Perform Key Agreement FunctionsEstablish symmetric key using DH/ECDH key agreementKAS (KAS-ECC_SSC/TLS v1.2 KDF RFC7627) (Certs. A3254, A3253) KAS (KAS-ECC_SSC/TLS v1.3 KDF) (Certs. A3254, A3253) KAS (KAS-FFC_SSC/TLS v1.2 KDF RFC7627) (Certs. A3254, A3253) KAS (KAS-FFC_SSC/TLS v1.3 KDF) (Certs. A3254, A3253)DH public key DH private key ECDH public key ECDH private key TLS pre-master secret TLS master secret AES key AES GCM key AES GCM IV HMAC keyUserDH public key – WE DH private key – WE ECDH public key – WE ECDH private key – WE TLS pre-master secret – GE TLS master secret – GE AES key – GR AES GCM key – GR AES GCM IV – GR HMAC key – GRAPI return value
Derive Key via PBKDF2Derive key from PBKDF2PBKDF2 (Cert. A3254)Passphrase AES key Triple-DES keyUserPassphrase – WE AES key – GR Triple-DES key – GRAPI return value

*Per FIPS 140-3 Implementation Guidance 2.4.C, the Show Status, Zeroize, and Show Versioning Information services do not require an Approve security The following services/algorithms are allowed for legacy use only: • Digital signature verification using ECDSA with curves B-163, K-163, and P-192 CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 23
ServiceDescriptionAlgorithms AccessedRoleIndicator
Perform Data Encryption (Non-Compliant)Perform symmetric data encryptionARIA, Blake2, Blowfish, Camellia, CAST, CAST5, ChaCha20, DES, IDEA, RC2, RC4, RC5, SEED, SM4, Triple- DES (non-compliant)UserAPI return value
Perform Data Decryption (Non-Compliant)Perform symmetric data decryptionARIA, Blake2, Blowfish, Camellia, CAST, CAST5, ChaCha20, DES, IDEA, RC2, RC4, RC5, SEED, SM4UserAPI return value
Perform MAC Operations (Non-Compliant)Perform message authentication operationsPoly1305, Triple-DES/CMAC (non-compliant for MAC generation)UserAPI return value
Perform Hash Operation (Non-Compliant)Perform hash operationMD2, MD4, MD5, RIPEMD, RMD160, SM2, SM3, SM4, WhirlpoolUserAPI return value
Perform Digital Signature Functions (Non-Compliant)Perform digital signature functionsDSA (non-compliant), ECDSA (non-compliant), RSA (non- compliant)UserAPI return value
Perform Key Agreement Functions (Non-Compliant)Perform key agreement functionsDH (non-compliant), ECDH (non-compliant)UserAPI return value
Perform Key Wrap (Non- Compliant)Perform key wrap functionsTriple-DES/CMAC (non- compliant)UserAPI return value
Perform Key Encapsulation (Non-Compliant)Perform key encapsulation functionsRSA (non-compliant)UserAPI return value
Perform Key Un- Encapsulation (Non- Compliant)Perform key un-encapsulation functionsRSA (non-compliant)UserAPI return value
Perform Key Derivation Functions (Non-Compliant)Perform key derivation functionsHKDF, TLS v1.0/1.1 KDF (non- compliant)UserAPI return value
Perform Authenticated Encryption/Decryption (Non- Compliant)Perform authenticated encryption/decryptionAES-OCBUserAPI return value
Perform Random Number Generation (Non-Compliant)Perform random number generationANSI X9.31 RNG (with 128-bit AES core), Hash_DRBG (non- compliant), HMAC_DRBG (non-compliant)UserAPI return value
Page 24
ServiceDescriptionAlgorithms AccessedRoleIndicator
Perform Key Pair Generation (Non-Compliant)Perform key pair generationDSA (non-compliant), ECDSA (non-compliant), EdDSA, RSA (non-compliant)UserAPI return value

CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 25

5. Software/Firmware Security All software components within the cryptographic boundary are verified using an Approved integrity technique implemented within the cryptographic module itself. The module implements independent HMAC SHA2-256 digest checks to test the integrity of each library file; failure of the integrity test for either library file will cause the module to enter a critical error state. Details regarding the keys used for the integrity checks can be found in Table 10 below. The module’s integrity check is performed automatically at module instantiation (i.e., when the module is loaded into memory for execution) without action from the module operator. The CO can initiate the pre-operational tests on demand by re-instantiating the module or issuing the FIPS_selftest() API command. CorSSL™ is not a standalone application; it is a cryptographic toolkit intended for use in a with a vendor’s solution. The module will be linked to a host application, and the host application will be pre-installed onto a target platform by the vendor or installed onto target platforms by the end-user. The module requires no configuration steps to be performed by application developers or end-users, and no action is required from developers or end-users to initialize the module for operation. The module is designed with a default entry point (DEP) that ensures that the pre-operational tests and conditional CASTs are initiated automatically when the module is loaded. CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 26

6. Operational Environment The CorSSL™ comprises a software cryptographic library that executes in a modifiable operational environment. The cryptographic module has control over its own SSPs. The process and memory management functionality of the host device’s OS prevents unauthorized access to plaintext private and secret keys, intermediate key generation values and other SSPs by external processes during module execution. The module only allows access to SSPs through its well-defined API. The operational environment provides the capability to separate individual application processes from each other by preventing uncontrolled access to CSPs and uncontrolled modifications of SSPs regardless of whether this data is in the process memory or stored on persistent storage within the operational environment. Processes that are spawned by the module are owned by the module and are not owned by external processes/operators. Please refer to section 2.1 of this document for a list/description of the applicable operational environments. CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 27

7. Physical Security The cryptographic module is software module and does not include physical security mechanisms. Therefore, per ISO/IEC 19790:2021 section 7.7.1, requirements for physical security are not applicable. CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 28

8. Non-Invasive Security This section is not applicable. There is currently no approved non-invasive mitigation techniques referenced in ISO/IEC 19790:2021 Annex F. CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 29
Key/SSP Name/Type KeysStrengthSecurity Function and Cert. NumberGenerationImport / ExportEstablishmentStorageZeroisationUse & Related Keys
Integrity Test Key - libcrypto (not an SSP)256 bitsHMAC SHA2-256 (Cert. A2544)--Hardcoded in the module imagePlaintext in RAMNot subject to zeroization requirementsPre- operational verification of libcrypto library
Integrity Test Key - libssl (not an SSP)256 bitsHMAC SHA2-256 (Cert. A2544)--Hardcoded in the module imagePlaintext in RAMNot subject to zeroization requirementsPre- operational verification of libssl library
AES Key (CSP)Between 128 and 256 bitsAES-CBC (Cert. A3254) AES-CCM (Cert. A3254) AES-CFB1 (Cert. A3254) AES-CFB128 (Cert. A3254) AES-CFB8 (Cert. A3254) AES-CTR (Cert. A3254) AES-ECB (Cert. A3254) AES-KW (Cert. A3254) AES-KWP (Cert. A3254) AES-ECB (Cert. A3254) AES-KW (Cert. A3254) KTS (AES-CCM) (Cert. A3254) KTS (AES-GCM) (Cert. A3254) KTS (AES-KW) (Cert. A3254) KTS (AES-KWP)-Imported in plaintext via API parameter Never exportedDerived via TLS KDFPlaintext in volatile memoryUnload module; Remove powerSymmetric Encryption, Decryption; Key Transport
9.1 Keys and Other SSPs

The module supports the keys and other SSPs listed Table 10 below. Table 10 – Keys CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 30
Key/SSP Name/TypeStrengthSecurity Function and Cert. Number (Cert. A3254)GenerationImport / ExportEstablishmentStorageZeroisationUse & Related Keys
AES GCM Key (CSP)Between 128 and 256 bitsAES-GCM (Cert. A3254) KTS (AES-GCM) (Cert. A3254)-Imported in plaintext via API parameter Never exportedDerived via TLS KDFPlaintext in volatile memoryUnload module; Remove powerAuthenticated Symmetric Encryption, Decryption; Key Transport
AES XTS Key (CSP)256 bitsAES-XTS (Cert. A3254)-Imported in plaintext via API parameter Never exported-Plaintext in volatile memoryUnload module; Remove powerSymmetric Encryption, Decryption
AES CMAC Key (CSP)Between 128 and 256 bitsAES-CMAC (Cert. A3254)-Imported in plaintext via API parameter Never exported-Plaintext in volatile memoryUnload module; Remove powerMAC Generation, Verification
AES GMAC Key (CSP)Between 128 and 256 bitsAES-GMAC (Cert. A3254)-Imported in plaintext via API parameter Never exported-Plaintext in volatile memoryUnload module; Remove powerMAC Generation, Verification
Triple-DES Key (CSP)168 bitsTDES-CBC (Cert. A3254) TDES-CFB1 (Cert. A3254) TDES-CFB64 (Cert. A3254) TDES-CFB8 (Cert. A3254) TDES-ECB (Cert. A3254) TDES-OFB (Cert. A3254)-Imported in plaintext via API parameter Never exported-Plaintext in volatile memoryUnload module; Remove powerSymmetric Decryption; Key Unwrapping
Triple-DES CMAC Key (CSP)168 bitsTDES-CMAC (Cert. A3254)-Imported in plaintext via API parameter Never exported-Plaintext in volatile memoryUnload module; Remove powerMAC Verification
HMAC Key (CSP)112 bits (minimum)HMAC SHA-1 (Cert. A3254) HMAC SHA2-224 (Cert. A3254) HMAC SHA2-256 (Cert. A3254) HMAC SHA2-384 (Cert. A3254) HMAC SHA2-512 (Cert. A3254) HMAC SHA3-224 (Cert. A3254) HMAC SHA3-256 (Cert. A3254) HMAC SHA3-384 (Cert. A3254) HMAC SHA3-512 (Cert. A3254)-Imported in plaintext via API parameter Never exportedDerived via TLS KDFPlaintext in volatile memoryUnload module; Remove powerKeyed Hash
DSA Private Key (CSP)112 or 128 bitsDSA SigGen (FIPS186- 4) (Cert. A3254)Generated internally via approved DRBGImported in plaintext via API parameter-Plaintext in volatile memoryUnload module; Remove powerDigital Signature Generation

CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 31
Key/SSP Name/TypeStrengthSecurity Function and Cert. NumberGenerationImport / Export Exported in plaintext via API parameterEstablishmentStorageZeroisationUse & Related Keys Paired with: DSA Public Key
DSA Public Key (PSP)112 or 128 bitsDSA SigVer (FIPS186- 4) (Cert. A3254)Generated internally via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Plaintext in volatile memoryUnload module; Remove powerDigital Signature Verification Paired with: DSA Private Key
ECDSA Private Key (CSP)Between 112 and 256 bitsECDSA SigGen (FIPS186-4) (Cert. A3254)Generated internally via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Plaintext in volatile memoryUnload module; Remove powerDigital Signature Generation Paired with: ECDSA Public Key
ECDSA Public Key (PSP)Between 112 and 256 bitsECDSA SigVer (FIPS186-4) (Cert. A3254)Generated internally via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Plaintext in volatile memoryUnload module; Remove powerDigital Signature Verification Paired with: ECDSA Private Key
RSA Private Key (CSP)Between 112 and 150 bitsRSA SigGen (FIPS186- 4) (Cert. A3254)Generated internally via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Plaintext in volatile memoryUnload module; Remove powerDigital Signature Generation Paired with: RSA Public Key
RSA Public Key (PSP)Between 80 and 150 bitsRSA SigVer (FIPS186- 4) (Cert. A3254)Generated internally via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Plaintext in volatile memoryUnload module; Remove powerDigital Signature Verification Paired with: RSA Private Key
DH Private Key (CSP)112 bitsKAS-SSC-FFC Sp800- 56Ar3 (Cert. A3254)Generated internally via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Plaintext in volatile memoryUnload module; Remove powerDH Shared Secret Computation Paired with: DH Public Key
DH Public Key (PSP)112 bitsKAS-SSC-FFC Sp800- 56Ar3 (Cert. A3254)Generated internally via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Plaintext in volatile memoryUnload module; Remove powerDH Shared Secret Computation Paired with: DH Public Key
ECDH Private Key (CSP)Between 112 and 256 bitsKAS-SSC-ECC Sp800- 56Ar3 (Cert. A3254)Generated internally via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Plaintext in volatile memoryUnload module; Remove powerECDH Shared Secret Computation Paired with: ECDH Public Key
ECDH Public Key (PSP) Other SSPsBetween 112 and 256 bitsKAS-SSC-ECC Sp800- 56Ar3 (Cert. A3254)Generated internally via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Plaintext in volatile memoryUnload module; Remove powerECDH Shared Secret Computation Paired with: ECDH Private Key
Passphrase (PSP)-PBKDF2 (Cert. A3254)-Imported in plaintext via API parameter-Plaintext in volatile memoryUnload module; Remove powerInput to PBKDF for key derivation

CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 32
Key/SSP Name/TypeStrengthSecurity Function and Cert. NumberGenerationImport / Export Never exportedEstablishmentStorageZeroisationUse & Related Keys
AES GCM IV (CSP)-AES-GCM (Cert. A3254)Generated internally in compliance with the provisions of a peer-to-peer industry standard protocol--Plaintext in volatile memoryUnload module; Remove powerInitialization vector for AES GCM Paired with: AES GCM Key
TLS pre-master secret (CSP)-TLS v1.2 KDF RFC7627) (Cert. A3254) TLS v1.3 KDF (Cert. A3253)-Imported in plaintext via API parameter Never exported-Plaintext in volatile memoryUnload module; Remove powerDerivation of the TLS master secret
TLS master secret (CSP)-TLS v1.2 KDF RFC7627) (Cert. A3254) TLS v1.3 KDF (Cert. A3253)--Derived internally via TLS KDFPlaintext in volatile memoryUnload module; Remove powerDerivation of the AES key, AES-GCM key, and HMAC key used for securing TLS connections Derived from: TLS pre-master secret
DRBG entropy input (CSP)-Counter DRBG (Cert. A3254)-Imported in plaintext via API parameter47 Never exported-Plaintext in volatile memoryUnload module; Remove powerEntropy material for DRBG
DRBG seed (CSP)-Counter DRBG (Cert. A3254)Generated internally using nonce along with DRBG entropy input--Plaintext in volatile memoryUnload module; Remove powerSeeding material for DRBG
DRBG ‘V’ value (CSP)-Counter DRBG (Cert. A3254)Generated internally--Plaintext in volatile memoryUnload module; Remove powerState values for DRBG
DRBG ‘Key’ value (CSP)-Counter DRBG (Cert. A3254)Generated internally--Plaintext in volatile memoryUnload module; Remove powerState values for DRBG
9.2 DRBGs

The module implements the following Approved DRBG: This DRBG is used to generate random values at the request of the calling application. Outputs from this DRBG are also used as seeds in the generation of asymmetric key pairs. The module implements the following Non-Approved DRBGs (which are only available in the Non-Approved mode of operation):

Page 33
Entropy SourcesMinimum Number of Bits of EntropyDetails
Calling application256256 bits of seed material are provided to the module’s DRBG by the calling application. The calling application and its entropy sources are outside the module’s cryptographic boundary. The calling application shall use entropy sources that meet the security strength required for the CTR_DRBG as shown in NIST SP 800-90Arev1, Table 3. This entropy shall be supplied by means of a callback function. The callback function must return an error if the minimum entropy strength cannot be met.
9.3 SSP Storage Techniques

There is no mechanism within the module’s cryptographic boundary for the persistent storage of SSPs. The module stores DRBG state values for the lifetime of the DRBG instance. The module uses SSPs passed in on the stack by the calling application and does not store these SSPs beyond the lifetime of the API call.

9.4 SSP Zeroization Methods

Maintenance, including protection and zeroization, of any keys and CSPs that exist outside the module’s cryptographic boundary are the responsibility of the end-user. For the zeroization of keys in volatile memory, module operators can unload the module from memory or reboot/power-cycle the host device. Table 11 – Non-Deterministic Random Number Generation Specification CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 34

10. Self-Tests Both pre-operational and conditional self-tests are performed by the module. Pre-operational tests are performed between the time the cryptographic module is instantiated and before the module transitions to the operational state. Conditional self-tests are performed by the module during module operation when certain conditions exist. The following sections list the self-tests performed by the module, their expected error status, and the error resolutions.

10.1 Pre-Operational Self-Tests

The module performs the following pre-operational self-test(s):

10.2 Conditional Self-Tests

The module performs the following conditional self-tests:

49 KAT – Known Answer Test

CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 35
10.3 On-Demand Self-Testing

The CO can initiate the pre-operational self-tests and conditional CASTs on demand for periodic testing of the module by re-instantiating the module, rebooting/power-cycling the host device, or issuing the FIPS_selftest() API command.

10.4 Self-Test Failure Handling

The module reaches the critical error state when any self-test fails. Upon test failure, the module immediately terminates the calling application’s API call with a returned error code and sets an internal flag, signaling the error condition. For any subsequent request made by the calling application for cryptographic services, the module will return a failure indicator, thereby disabling all access to its cryptographic functions, sensitive security parameters (SSPs), and data output services while the error condition persists. To recover, the module must be re-instantiated by the calling application. If the pre-operational self-tests complete successfully, then the module can resume normal operations. If the module continues to experience self-test failures after reinitializing, then the module will not be able to resume normal operations, and the CO should contact Corsec Security, Inc. for assistance.

50 PCT – Pairwise Consistency Test

CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 36

11. Life-Cycle Assurance The sections below describe how to ensure the module is operating in its validated configuration, including the following:

11.1 Secure Installation

The module is distributed as a package containing the binaries and HMAC digest files that the Crypto Officer is to install onto a target platform specified in section 2.1 or one where portability is maintained.

11.2 Initialization

This module is designed to support third-party vendor applications, and these applications are the sole consumers of the cryptographic services provided by the module. No end-user action is required to initialize the module for operation; the calling application performs any actions required to initialization the module. The pre-operational integrity test and conditional CASTs are performed automatically via a default entry point (DEP) when the module is loaded for execution, without any specific action from the calling application or the end-user. End-users have no means to short-circuit or bypass these actions. Failure of any of the initialization actions will result in a failure of the module to load for execution.

11.3 Startup

No startup steps are required to be performed by end-users.

11.4 Administrator Guidance

There are no specific management activities required of the CO role to ensure that the module runs securely. If any irregular activity is observed, or if the module is consistently reporting errors, then Corsec Customer Support should be contacted. The following list provides additional guidance for the CO: • The fips_post_status() API can be used to determine the module’s operational status. A non-zero return value indicates that the module has passed all pre-operational self-tests and is currently in its Approved mode. CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 37

• The OpenSSL_version() API can be used to obtain the module’s versioning information. This information will include the module name and version, which can be correlated with the module’s validation record.

11.5 Non-Administrator Guidance

The following list provides additional policies for the User role:

Page 38

The module supports acceptable AES GCM cipher suites from section 3.3.1 of NIST SP 800-52rev2. The AES GCM IV generation is performed internally, is compliant with the RFC 5288, and shall only be used for the TLS 1.2 protocol to be compliant with scenario 1 in FIPS 140-3 IG C.H; thus, the module is compliant with NIST SP 800-52rev2.

11.6 Common Vulnerabilities and Exposures

The Common Vulnerabilities and Exposures (CVE) program is a dictionary or glossary of vulnerabilities that have been identified for specific code bases, such as software applications or open libraries. This list allows interested parties to acquire the details of vulnerabilities by referring to a unique identifier known as the CVE ID.

11.6.1 Applicable CVEs

The following table lists the applicable CVEs impacting the module, as well as methods of mitigation. CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 39
CVE NumberSeverityMitigation
CVE-2023-3446LowBefore calling DH_check(), DH_check_ex(), or EVP_PKEY_param_check(), operator should verify that the DH key or DH parameters were obtained from a trusted source.
CVE-2023-3817LowBefore calling DH_check(), DH_check_ex(), or EVP_PKEY_param_check(), operator should verify that the DH key or DH parameters were obtained from a trusted source.
CVE-2024-4741LowApplications should not directly call the SSL_free_buffers function.
11.6.2 CVE Mitigation Plan

Post-submission, the module has been continually updated to provide mitigations for the CVEs listed above. These mitigations will be included in a future revalidation of the module. CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 40

12. Mitigation of Other Attacks This section is not applicable. The module does not claim to mitigate any attacks beyond the FIPS 140-3 Level 1 requirements for this validation. CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 41
TermDefinition
AESAdvanced Encryption Standard
ANSIAmerican National Standards Institute
APIApplication Programming Interface
CASTCryptographic Algorithm Self-Test
CBCCipher Block Chaining
CCCSCanadian Centre for Cyber Security
CCMCounter withCipher Block Chaining - Message Authentication Code
CFBCipher Feedback
CKGCryptographic Key Generation
CMACCipher-Based Message Authentication Code
CMVPCryptographic Module Validation Program
COCryptographic Officer
CPUCentral Processing Unit
CSPCritical Security Parameter
CTRCounter
CVLComponent Validation List
DEPDefault Entry Point
DESData Encryption Standard
DHDiffie-Hellman
DRBGDeterministic Random Bit Generator
DSADigital Signature Algorithm
ECBElectronic Code Book
ECCElliptic Curve Cryptography
ECC CDHElliptic Curve Cryptography Cofactor Diffie-Hellman
ECDHElliptic Curve Diffie-Hellman
ECDSAElliptic Curve Digital Signature Algorithm
EMI/EMCElectromagnetic Interference /Electromagnetic Compatibility
FFCFinite Field Cryptography
FIPSFederal Information Processing Standard
GCMGalois/Counter Mode

Appendix A. Acronyms and Abbreviations Table 13 below provides definitions for the acronyms and abbreviations used in this document. Table 13 – Acronyms and Abbreviations CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 42
TermDefinition
GMACGalois Message Authentication Code
GPCGeneral-Purpose Computer
HMAC(keyed-) Hash Message Authentication Code
KASKey Agreement Scheme
KATKnown Answer Test
KTSKey Transport Scheme
KWKey Wrap
KWPKey Wrap with Padding
MDMessage Digest
NISTNational Institute of Standards and Technology
OCBOffset Codebook
OFBOutput Feedback
OSOperating System
PBKDFPassword-Based Key Derivation Function
PCTPairwise Consistency Test
PKCSPublic Key Cryptography Standard
PSSProbabilistic Signature Scheme
PUBPublication
RCRivest Cipher
RNGRandom Number Generator
RSARivest Shamir Adleman
SHASecure Hash Algorithm
SHAKESecure Hash Algorithm KECCAK
SHSSecure Hash Standard
SPSpecial Publication
TLSTransport Layer Security
XEXXOR Encrypt XOR
XTSXEX-Based Tweaked-Codebook Mode with Ciphertext Stealing

CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 43

Appendix B. Approved Service Indicators This appendix specifies the APIs that are externally accessible and return the Approved service indicators. Synopsis #include <openssl/service_indicator.h> #include <openssl/ssl.h> int EVP_cipher_get_service_indicator(EVP_CIPHER_CTX *ctx); int DSA_get_service_indicator(DSA * ptr_dsa, DSA_MODES_t mode); int RSA_key_get_service_indicator(RSA * ptr_rsa); int PBKDF_get_service_indicator(); int EVP_Digest_get_service_indicator(EVP_MD_CTX *ctx); int EC_key_get_service_indicator(EC_KEY *ec_key); int CMAC_get_service_indicator(CMAC_CTX *cmac_ctx, CMAC_MODE_t mode); int HMAC_get_service_indicator(HMAC_CTX *ctx); int TLSKDF_get_service_indicator(EVP_PKEY_CTX *tls_ctx); int TLS1_3_kdf_get_service_indicator(EVP_MD *md); int TLS1_3_get_service_indicator(SSL *s); int DRBG_get_service_indicator(RAND_DRBG *drbg); Description These APIs are high-level interfaces that return the Approved service indicator value based on the parameter(s) passed to them.

Page 44
Page 45

//Decrypt ctx = EVP_CIPHER_CTX_new(); EVP_DecryptInit_ex(ctx, cipher, NULL, key, NULL); EVP_CIPHER_CTX_set_key_length(ctx, 24); EVP_DecryptUpdate(ctx, pltmp, &outLen, citmp, 8); // Check the indicator fprintf(stdout,"EVP_des_ede3_ecb (NID %i) decrypt indicator = %i\n", NID, EVP_cipher_get_service_indicator(ctx)); EVP_CIPHER_CTX_cleanup(ctx); EVP_CIPHER_CTX_free(ctx); } CorSSL™ 1.1.1s.005 ©2024 Corsec Security, Inc.

Page 46

Prepared by: Corsec Security, Inc.

12600 Fair Lakes Circle, Suite 210

Fairfax, VA 22033 United States of America Phone: +1 703 267 6050 Email: info@corsec.com http://www.corsec.com