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

ISC Cryptographic Development Kit (CDK)

Certificate#4998StandardFIPS 140-3Level1TypeSoftwareEmbodimentMulti-Chip Stand AloneStatusActiveVendorInformation Security Corporation
Low review priority  ·  no TCB surface named  ·  last validated 15 months ago. How this is derived →

Certificate

StandardFIPS 140-3
Overall level1
Module typeSoftware
EmbodimentMulti-Chip Stand Alone
StatusActive
Sunset date4/6/2030
CaveatWhen operated in approved mode
VendorInformation Security Corporation

Approved Algorithms (78)

AlgorithmACVP Cert
AES-CBCA5798
AES-CCMA5798
AES-CFB128A5798
AES-CFB8A5798
AES-CMACA5798
AES-CTRA5798
AES-ECBA5798
AES-GCMA5798
AES-KWA5798
AES-KWPA5798
AES-OFBA5798
AES-XTS Testing Revision 2.0A5798
Conditioning Component AES-CBC-MAC SP800-90BA5798
cSHAKE-128A5798
cSHAKE-256A5798
Deterministic ECDSA SigGen (FIPS186-5)A5798
DSA SigVer (FIPS186-4)A5798
ECDSA KeyGen (FIPS186-4)A5798
ECDSA KeyVer (FIPS186-4)A5798
ECDSA SigGen (FIPS186-4)A5798
ECDSA SigVer (FIPS186-4)A5798
HMAC DRBGA5798
HMAC-SHA-1A5798
HMAC-SHA2-224A5798
HMAC-SHA2-256A5798
HMAC-SHA2-384A5798
HMAC-SHA2-512A5798
HMAC-SHA2-512/224A5798
HMAC-SHA2-512/256A5798
HMAC-SHA3-224A5798
HMAC-SHA3-256A5798
HMAC-SHA3-384A5798
HMAC-SHA3-512A5798
KAS-ECC-SSC Sp800-56Ar3A5798
KAS-IFC-SSCA5798
KDA HKDF SP800-56Cr2A5798
KDA OneStep SP800-56Cr2A5798
KDF ANS 9.63A5798
KDF IKEv1A5798
KDF IKEv2A5798
KDF SNMPA5798
KDF SSHA5798
KDF TLSA5798
KDF TLSA5798
KDF TPMA5798
KMAC-128A5798
KMAC-256A5798
KTS-IFCA5798
ParallelHash-128A5798
ParallelHash-256A5798
PBKDFA5798
RSA KeyGen (FIPS186-4)A5798
RSA SigGen (FIPS186-4)A5798
RSA Signature PrimitiveA5798
RSA SigVer (FIPS186-4)A5798
SHA-1A5798
SHA2-224A5798
SHA2-256A5798
SHA2-384A5798
SHA2-512A5798
SHA2-512/224A5798
SHA2-512/256A5798
SHA3-224A5798
SHA3-256A5798
SHA3-384A5798
SHA3-512A5798
SHAKE-128A5798
SHAKE-256A5798
TDES-CBCA5798
TDES-CFB64A5798
TDES-CFB8A5798
TDES-CTRA5798
TDES-ECBA5798
TDES-OFBA5798
TLS v1.2 KDF RFC7627A5798
TLS v1.3 KDFA5798
TupleHash-128A5798
TupleHash-256A5798

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

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

Security Policy, page by page

Page 1

ISC Cryptographic Development Kit (CDK) Software Version: 8.1.2.3 Document Version: 4.1.8 Issue Date: March 14, 2025 Authors: Michael J. Markowitz, Roger S. Schlafly, Jonathan C. Schulze-Hewett Abstract: This document is a non-proprietary FIPS 140-3 Security Policy for ISC’s Cryptographic Development Kit (CDK). It applies to CDK Version 8.1.2.3 and to all subsequent versions until otherwise indicated in new editions. It describes how the CDK meets the security requirements of FIPS 140-3 and how to run the CDK in the Approved mode. This policy was prepared as part of the FIPS 140-3 Level 1 validation of the module.

Page 2

Notices reserved. Contact ISC for licensing information. Use of the CDK is subject to the terms of your license agreement with ISC. This document may be freely reproduced and distributed in its entirety without modification. CDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 2

Page 3
VersionDateChangeAuthor
1.0.122002-05-22First submitted versionMichael Markowitz
2.0.02003-02-04Tweaks to language per labJonathan Schulze-Hewett
3.0.02003-03-17Added methods available to CO and UsersJonathan Schulze-Hewett
3.1.02003-03-21Tweaks to language per labJonathan Schulze-Hewett
3.4.02003-04-30Added HMAC-SHA-1 to CO/User table, removed CTR from the list of modes for EESJonathan Schulze-Hewett
3.5.02003-05-01RevisionsMichael Markowitz
3.6.02003-05-07Revised footer explaining CTR mode applicabilityMichael Markowitz
3.7.02003-05-12Added second footer explaining CTR mode applicability or lack thereofJonathan Schulze-Hewett
3.8.02003-06-04Added footer explaining DES variantsJonathan Schulze-Hewett
3.9.02003-07-25RevisionsJonathan Schulze-Hewett
3.10.02003-08-25Final 140-1 documentMichael Markowitz
4.0.02016-02-23Updated for CDK 8/FIPS 140-2Jonathan Schulze-Hewett
4.0.12016-04-08Revisions as per lab commentsMichael Markowitz, Jonathan Schulze-Hewett
4.0.22016-05-23Revisions as per lab commentsJonathan Schulze-Hewett
4.0.32016-06-23Revisions as per lab commentsJonathan Schulze-Hewett
4.0.42016-08-09Revisions as per lab commentsJonathan Schulze-Hewett
4.0.52016-09-09Revisions as per lab commentsJonathan Schulze-Hewett
4.0.62016-09-13Changed RSA self-test from PCT to KAT Updated the filename of the CDK DLL Revisions as per lab commentsJonathan Schulze-Hewett
4.0.72016-09-30Modified the algorithm tables to comply with CMVP’s October 2016 requirementsJonathan Schulze-Hewett
4.0.82016-10-28Moved HMAC-SHA-3 into approved from table 4 to table 3 and Revisions as per lab commentsJonathan Schulze-Hewett
4.0.92016-12-16Moved Skipjack (EES) into non-approved table per lab comments.Jonathan Schulze-Hewett
4.0.102017-03-27Revisions per lab commentsJonathan Schulze-Hewett
4.0.112017-03-28Revisions per lab commentsJonathan Schulze-Hewett
4.0.122017-04-18Revisions per lab commentsJonathan Schulze-Hewett
4.0.132017-06-06AES-GCM clarificationsJonathan Schulze-Hewett
4.0.142017-10-13AES-GCM clarificationsJonathan Schulze-Hewett
4.0.152018-06-01Updated for 1SUB version changeJonathan Schulze-Hewett
4.1.02022-02-21Updated for CDK 8.1Jonathan Schulze-Hewett
4.1.12022-05-23Updated based on SP 800-140Br2 guidanceJonathan Schulze-Hewett
4.1.22023-02-07Updated based on additional functionality introduced in 8.1Jonathan Schulze-Hewett
4.1.32024-01-31Updated based on lab feedbackJonathan Schulze-Hewett
4.1.42024-02-28Updated based on lab feedbackJonathan Schulze-Hewett
4.1.52024-08-05Updated for KAS-IFC-SSC CAST version changeJonathan Schulze-Hewett
4.1.62024-11-15Updated based on lab feedbackJonathan Schulze-Hewett
4.1.72025-03-03Updated based on lab feedbackJonathan Schulze-Hewett
4.1.82025-03-14Updated based on lab feedbackJonathan Schulze-Hewett

Document History Page 3 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy

Page 4
ReferenceFull Specification Name
[ANS X9.30 Part 1]Public Key Cryptography Using Irreversible Algorithms – Part 1: The Digital Signature Algorithm (DSA)
[ANS X9.30 Part 2]Public Key Cryptography Using Irreversible Algorithms – Part 2: The Secure Hash Algorithm (SHA-1)
[ANS X9.31]Digital Signatures Using Reversible Public Key Cryptography for the Financial Services Industry (rDSA)
[FIPS 46-3]Data Encryption Standard (DES) (withdrawn)
[FIPS 81]DES Modes of Operation (withdrawn)
[FIPS 140-3]Security Requirements for Cryptographic modules, March 22, 2019
[FIPS 180-4]Secure Hash Standard (SHS)
[FIPS 185]Escrowed Encryption Standard (obsolete)
[FIPS 186-4]Digital Signature Standard
[FIPS 197]Advanced Encryption Standard
[FIPS 198-1]The Keyed-Hash Message Authentication Code (HMAC)
[FIPS 202]SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions
[IEEE P1619-2007]Standard for Cryptographic Protection of Data on Block-Oriented Storage Devices
[ISO/IEC 10118- 3:1998]Information technology – Security techniques – Hash-functions – Part 3: Dedicated hash-functions
[ISO/IEC 19790:2012]Information technology – Security techniques – Security requirements for cryptographic modules
[RFC 2437]PKCS #1: RSA Cryptography Specifications, Version 2.0
[RFC 2104]HMAC: Keyed-Hashing for Message Authentication
[RFC 3447]Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1
[RFC 3610]Counter with CBC-MAC (CCM)
[RFC 4493]The AES-CMAC Algorithm
[SP 800-20]Modes of Operation Validation System for the Triple Data Encryption Algorithm (TMOVS): Requirements and Procedures (withdrawn)
[SP 800-38A]Recommendation for Block Cipher Modes of Operation: Methods and Techniques
[SP 800-38B]Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication
[SP 800-38C]Recommendation for Block Cipher Modes of Operation: The CCM Mode for Authentication and Confidentiality
[SP 800-38D]Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC
[SP 800-38E]Recommendation for Block Cipher Modes of Operation: The XTS-AES Mode for Confidentiality on Storage Devices
[SP 800-56A R3]Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography
[SP 800-67 R2]Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher
[SP 800-89]Recommendation for Obtaining Assurances for Digital Signature Applications
[SP 800-90A R1]Recommendation for Random Number Generation Using Deterministic Random Bit Generators
[SP 800-90B]Recommendation for the Entropy Sources Used for Random Bit Generation
[SP 800-107 R1]Recommendation for Applications Using Approved Hash Algorithms
[SP 800-131A R2]Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths
[SP 800-133 R2]Recommendation for Cryptographic Key Generation

References CDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 4

Page 5
Table of Contents
#SectionPage
Page 6
1.1 Overview

Information Security Corporation’s Cryptographic Development Kit (CDK) Version 8.1.2.3 is a software module. The software module is a shared library that contains cryptographic primitives that are cryptographic software building blocks which may be used by application developers to build securityenhanced features into their own applications. The CDK provides public-key algorithms, as well as symmetric ciphers, hashing functions, and related cryptographic and PKI operations. The CDK was designed and implemented to meet FIPS 140-3 level 1 security requirements.

1.1.1 Document Organization

ISC’s submission for FIPS 140-3 validation includes this security policy document and:

Page 7
ISO/IEC 24759 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
9Sensitive Security Parameter Management1
10Self-Tests1
11Life-Cycle Assurance1
12Mitigation of Other AttacksN/A
1.2 Security Levels

The following table lists the validation level met by the CDK for each area in FIPS 140-3. The CDK meets the requirements for an overall FIPS 140-3 level 1 validation. Table 1 ꟷ Security Levels The “Physical Security” section is not applicable as the module is a software only, level 1, module. The “Non-Invasive Security” and “Mitigation of Other Attacks” sections are not relevant as the CDK is a software module and does not implement any countermeasures towards special attacks. Page 7 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy

Page 8
1.3 References

Federal Information Processing Standards Publication (FIPS PUB) 140-3, Security Requirements for Cryptographic Modules, details U.S. Government requirements for cryptographic modules. Below are hyperlinks to websites containing more information on NIST cryptographic programs, FIPS 140-3, and the CDK. NIST Cryptographic Module Validation https://csrc.nist.gov/projects/cryptographic-module-validationprogram Program (CMVP) FIPS 140-3 Security Requirements https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-3.pdf ISC CDK https://infoseccorp.com/cdks.html NIST Validation Lists for Cryptographic https://csrc.nist.gov/projects/cryptographic-algorithm-validationprogram/validation-search Standards – this site contains the technical implementations of the algorithms that have been validated to conform to the NIST approved algorithm standards CDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 8

Page 9
#Operating SystemHardware PlatformProcessorPAA/Acceleration
1Windows 10 64-bitDell Inspiron 15Intel(R) Core(TM) i7-11390H (Tiger Lake)AES-NI
2Windows 10 64-bitDell Inspiron 15Intel(R) Core(TM) i7-11390H (Tiger Lake)None
3CentOS 7.7 64-bitDell Inspiron 15Intel(R) Core(TM) i7-11390H (Tiger Lake)AES-NI
4CentOS 7.7 64-bitDell Inspiron 15Intel(R) Core(TM) i7-11390H (Tiger Lake)None
5Raspberry Pi OS 32-bitRaspberry Pi 4 Model BBroadcom BCM2711None
6Raspberry Pi OS 64-bitRaspberry Pi 4 Model BBroadcom BCM2835None
2.1 Module Description and Overview

The CDK cryptographic module is a multi-chip standalone software module running on a standalone general-purpose computing platform. The CDK provides cryptographic services to applications through a C++ language Application Program Interface (API). The “cryptographic boundary” is defined as the binary shared link library (cdkc8123Sx64.dll or libcdkc.so.81.2.3). The CDK was tested on the following operational environments on the general-purpose computer (GPC) platforms shown in Table 2. These are the TOEPP (Tested Operational Environment’s Physical Perimeter) of the module. Table 2 ꟷ Tested Operational Environments There are no Vendor Affirmed Operational Environments at this time.

2.2 Cryptographic Algorithms

The CDK supports a wide variety of cryptographic algorithms and can be configured to run in an Approved mode or a Non-Approved mode. The keys and CSPs used for cryptographic operations are not shared between the modes of operation. Whenever possible, all Approved algorithms designed for a particular cryptographic function (such as encryption, message and entity authentication, hashing, etc.) are provided.

2.2.1 Algorithms and Parameters Allowed in the Approved mode
2.2.1.1 Approved Algorithms

The Approved cryptographic algorithms implemented in the CDK and the corresponding NIST standards (or alternate standards referenced by NIST) are listed in Table 3 along with CAVP certificate numbers. When the CDK is run in the Approved mode, only algorithms in Table 3, Table 4, and Table 5 can be used. Page 9 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy

Page 10
CAVP CertAlgorithm and StandardMode/MethodDescription / Key Size(s) / Key Strength(s)Use / Function
A5798AES-CBC [FIPS 197, SP 800-38A]CBCDirection: Decrypt, Encrypt Key Length: 128, 192, 256Direction: Decrypt, Encrypt Key Length: 128, 192, 256Data Encryption/ Decryption
A5798AES-CCM [FIPS 197, SP 800-38C]CCMDirection: Decrypt, Encrypt Key Length: 128, 192, 256Data Encryption / Decryption
A5798AES-CFB128 [FIPS 197, SP 800-38A]CFB128Direction: Decrypt, Encrypt Key Length: 128, 192, 256Data Encryption / Decryption
A5798AES-CFB8 [FIPS 197, SP 800-38A]CFB8Direction: Decrypt, Encrypt Key Length: 128, 192, 256Data Encryption / Decryption
A5798AES-CMAC [FIPS 197, SP 800-38B]CMACDirection: Generation, Verification Key Length: 128, 192, 256Message Authentication
A5798AES-CTR [FIPS 197, SP 800-38A]CTRDirection: Decrypt, Encrypt Key Length: 128, 192, 256Data Encryption / Decryption
A5798AES-ECB [FIPS 197, SP 800-38A]ECBDirection: Decrypt, Encrypt Key Length: 128, 192, 256Data Encryption / Decryption
A5798AES-GCM [FIPS 197, SP 800-38D]GCM1Direction: Decrypt, Encrypt Key Length: 128, 192, 256Data Encryption / Decryption
A5798AES-KW [FIPS 197, SP 800-38F]KWDirection: Decrypt, Encrypt Cipher: Cipher, Inverse Key Length: 128, 192, 256Key Wrapping / Unwrapping
A5798AES-KWP [FIPS 197, SP 800-38F]KWPDirection: Decrypt, Encrypt Cipher: Cipher, Inverse Key Length: 128, 192, 256Key Wrapping / Unwrapping
A5798AES-OFB [FIPS 197, SP 800-38A]OFBDirection: Decrypt, Encrypt Key Length: 128, 192, 256Data Encryption / Decryption
A5798AES-XTS Testing Revision 2.0 [FIPS 197, SP 800-38E]XTS2Direction: Decrypt, Encrypt Key Length: 128, 256Data Encryption / Decryption
A5798Conditioning Component AES- CBC-MAC [SP800-90B]CBC-MACKey Length: 128, 192, 256Conditioning

CDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 10

Page 11
A5798cSHAKE-128 [SP 800-185]cSHAKE-128Message Length: 0-65536 Increment 8 Output Length: 16-65536 Increment 8Extendable Output Function
A5798cSHAKE-256 [SP 800-185]cSHAKE-128Message Length: 0-65536 Increment 8 Output Length: 16-65536 Increment 8Extendable Output Function
A5798DSA SigVer [FIPS186-4]FIPS 186-4Capabilities: L: 1024 N: 160, L: 2048 N: 224, L: 2048 N: 256, L: 3072 N: 256 Hash Algorithm: SHA-1, SHA2- 224, SHA2-256, SHA2-384, SHA2-512, SHA2-512/224, SHA2-512/256Signature Verification
A5798Deterministic ECDSA SigGen [FIPS186-5]FIPS 186-5Curve: B-233, B-283, B-409, B- 571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, P-521 Hash Algorithm: SHA2-224, SHA2-256, SHA2-384, SHA2-512, SHA2-512/224, SHA2-512/256, SHA3-224, SHA3-256, SHA3-384, SHA3-512Signature Generation
A5798ECDSA KeyGen [FIPS186-4]Secret Generation Mode: Testing CandidatesCurve: B-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
A5798ECDSA KeyVer [FIPS186-4]FIPS 186-4Curve: 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-521Key Pair Verification
A5798ECDSA SigGen [FIPS186-4]FIPS 186-4Curve: B-233, B-283, B-409, B- 571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, P-521 Hash Algorithm: SHA2-224, SHA2-256, SHA2-384, SHA2-512, SHA2-512/224, SHA2-512/256, SHA3-224, SHA3-256, SHA3-384, SHA3-512Signature Generation
A5798ECDSA SigVer [FIPS186-4]FIPS 186-4Curve: 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 Hash Algorithm: SHA-1, SHA2- 224, SHA2-256, SHA2-384, SHA2-512, SHA2-512/224, SHA2-512/256, SHA3-224, SHA3-256, SHA3-384, SHA3-512Signature Verification

Internal IV generation only. The AES-GCM IV is generated internally randomly (scenario 2) or as a counter (scenario 1) per IG C.H. Only Approved for Storage Applications. Page 11 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy

Page 12
A5798HMAC DRBG [SP 800-90A]Mode: SHA2-256, SHA2-512Entropy Input: 256-131072 Increment 8Deterministic Random Bit Generation
A5798HMAC-SHA-1HMAC-SHA-1Key Length: 112-524288Message AuthenticationMessage
Increment 8Authentication
[FIPS 198-1]MAC: 32-160
A5798HMAC-SHA2-224HMAC-SHA2-224Key Length: 112-524288 Increment 8Message Authentication
[FIPS 198-1]MAC: 32-224
A5798HMAC-SHA2-256HMAC-SHA2-256Key Length: 112-524288 Increment 8Message Authentication
[FIPS 198-1]MAC: 32-256
A5798HMAC-SHA2-384HMAC-SHA2-384Key Length: 112-524288 Increment 8Message Authentication
[FIPS 198-1]MAC: 32-384
A5798HMAC-SHA2-512HMAC-SHA2-512Key Length: 112-524288 Increment 8Message Authentication
[FIPS 198-1]MAC: 32-512
A5798HMAC-SHA2-HMAC-SHA2-512/224Key Length: 112-524288 Increment 8 MAC: 32-224Key Length: 112-524288Message Authentication
512/224 [FIPS 198-1]Increment 8 MAC: 32-224
A5798HMAC-SHA2- 512/256 [FIPS 198-1]HMAC-SHA2-512/256Key Length: 112-524288 Increment 8 MAC: 32-256Message Authentication
A5798HMAC-SHA3-224HMAC-SHA3-224Key Length: 112-524288 Increment 8Message Authentication
[FIPS 198-1]MAC: 32-224
A5798HMAC-SHA3-256HMAC-SHA3-256Key Length: 112-524288 Increment 8Message Authentication
[FIPS 198-1]MAC: 32-256
A5798HMAC-SHA3-384HMAC-SHA3-384Key Length: 112-524288 Increment 8Message Authentication
[FIPS 198-1]MAC: 32-384
A5798HMAC-SHA3-512HMAC-SHA3-512Key Length: 112-524288 Increment 8Message Authentication
[FIPS 198-1]MAC: 32-512
A5798KAS-ECC-SSC3 [SP800-56Ar3]KAS-ECC-SSC3ephemeralUnified, onePassDh, staticUnifiedDomain Parameter Generation Methods: B-233, B-283, B-409,Key Agreement
[SP800-56Ar3]B-571, K-233, K-283, K-409, K- 571, P-224, P-256, P-384, P-521
A5798KAS-IFC-SSC3 [SP 800-56Br2]KAS1Modulo: 2048, 3072, 4096, 6144, 8192Modulo: 2048, 3072, 4096, 6144, 8192Key Agreement
A5798KDA HKDF [SP800-56Cr2]KDA HKDFHMAC Algorithm: SHA-1, SHA2- 224, SHA2-256, SHA2-384,Shared Secret Length: 224-1024 Increment 8Key Derivation
[SP800-56Cr2]SHA2-512, SHA2-512/224, SHA2-512/256, SHA3-224, SHA3-256, SHA3-384, SHA3-512
A5798KDA OneStepAuxiliary Function Name: SHA3-Shared Secret Length: 224-1024Key Derivation
512Increment 8

SSP establishment methodology provides between 112 and 256-bits of encryption strength. CDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 12

Page 13
[SP800-56Cr2]
A5798KDF ANS 9.63 (CVL) [SP 800-135r1]Hash Algorithm: SHA2-224, SHA2-256, SHA2-384, SHA2-512Field Size: 224, 571Key Derivation No part of the ANS 9.63 protocol, other than the KDF, has been tested by the CAVP and CMVP.
A5798KDF IKEv1 (CVL) [SP 800-135r1]Authentication Method: Digital Signature, Pre-shared Key, Public Key Encryption Hash Algorithm: SHA-1, SHA2- 224, SHA2-256, SHA2-384, SHA2-512Diffie-Hellman Shared Secret Length: 224-8192 Increment 8Key Derivation No part of the IKEv1 protocol, other than the KDF, has been tested by the CAVP and CMVP.
A5798KDF IKEv2 (CVL) [SP 800-135r1]Hash Algorithm: SHA-1, SHA2- 224, SHA2-256, SHA2-384, SHA2-512Diffie-Hellman Shared Secret Length: 224-8192 Increment 8Key Derivation No part of the IKEv2 protocol, other than the KDF, has been tested by the CAVP and CMVP.
A5798KDF SNMP (CVL) [SP 800-135r1]Engine ID: 12345678912345678900, abcdef0123456789abcdef12345 67890Password Length: 64, 8192Key Derivation No part of the SNMP protocol, other than the KDF, has been tested by the CAVP and CMVP.
A5798KDF SSH (CVL) [SP 800-135r1]Hash Algorithm: SHA-1, SHA2- 224, SHA2-256, SHA2-384, SHA2-512Cipher: AES-128, AES-192, AES- 256, TDESKey Derivation No part of the SSH protocol, other than the KDF, has been tested by the CAVP and CMVP.
A5798KDF TLS (CVL) [SP 800-135r1]TLS Version: v1.0/1.1Hash Algorithm: SHA2-256, SHA2-384, SHA2-512Key Derivation No part of the TLS 1.0/1.1 protocol, other than the KDF, has been tested by the CAVP and CMVP.
A5798KDF TLS (CVL) [SP 800-135r1]TLS Version: 1.2Hash Algorithm: 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.
A5798KDF TPM (CVL)TPM 1.2HMAC with SHA-1Key Derivation

Page 13 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy

Page 14
[SP 800-135r1]No part of the TPM 1.2 protocol, other than the KDF, has been tested by the CAVP and CMVP.
A5798KMAC-128Message Length: 0-65536 Increment 8; MAC Length: 32-Key Data Length: 128-524288 Increment 8XOFXOF
[SP 800-185]65536 Increment 8
A5798KMAC-256Message Length: 0-65536 Increment 8; MAC Length: 32-Key Data Length: 128-524288 Increment 8XOF
[SP 800-185]65536 Increment 8
A5798KTS-IFC4 [SP 800-56Br2]KTS-OAEP-basicKTS-OAEP-basicModulo: 2048, 3072, 4096, 6144, 8192OAEP
A5798ParallelHash-128 [SP 800-185]Message Length: 0-65536 Increment 8Output Length: 16-65536 Increment 8XOF
A5798ParallelHash-256 [SP 800-185]Message Length: 0-65536 Increment 8Output Length: 16-65536 Increment 8XOF
A5798PBKDF5 [SP 800-132]PBKDF5HMAC Algorithm: SHA-1, SHA2- 224, SHA2-256, SHA2-384,Password Length: 8-128 Increment 8Key Derivation
[SP 800-132]SHA2-512, SHA2-512/224, SHA2-512/256, SHA3-224, SHA3-256, SHA3-384, SHA3-512
A5798RSA KeyGen [FIPS186-4]Key Generation Mode: B.3.3 Primality Tests: Table C.2Key Generation Mode: B.3.3 Primality Tests: Table C.2Modulo: 2048, 3072, 4096, 6144, 81926Key Pair Generation
A5798RSA SigGen [FIPS186-4]Signature Type: ANSI X9.31, PKCS 1.5, PKCSPSSModulo: 2048, 3072, 4096, 6144, 81926Digital Signature Generation
A5798RSA SigVerSignature Type: ANSI X9.31,Modulo: 10247[Legacy], 2048,Digital Signature
[FIPS186-4]PKCS 1.5, PKCSPSS3072, 4096, 6144, 81926Verification
A5798RSA SignatureRSA Signature PrimitiveRSA Signature PrimitivePrivate Key Format: standard Public Exponent Mode: randomPrivate Key Format: standardDigital Signature GenerationDigital Signature
Primitive (CVL)Public Exponent Mode: randomGeneration

SSP establishment methodology provides between 112 and 256-bits of encryption strength. The module implements PBKDF in a manner that is compliant with option 1a from SP 800-132, section 5.4. With the minimum password length of 8 characters, the probability of randomly guessing this parameter is 1 in 256^8. The module supports a variable iteration count as low as 1, but based on SP 800-132, section 5.2 a minimum of 1,000 is recommended. Keys derived from passwords, as shown in SP 800-132, may only be used in storage applications. Modulo sizes 6144 and 8192 are supported but have not been CAVP tested.

7 Legacy usage only. These legacy algorithms can only be used on data that was generated prior to the Legacy Date specified in

FIPS 140-3 IG C.M. CDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 14

Page 15
[FIPS 186-5, RFC
3447]
A5798SHA-1 [FIPS 180-4]SHA-1Function: SHA1Message Length: 0-65536Message Digest
[FIPS 180-4]Increment 8; Large Message Sizes: 1gigabytes
A5798SHA2-224 [FIPS 180-4]Function: SHA2Message Length: 0-65536 Increment 8; Large Message Sizes: 1gigabytesMessage Digest
A5798SHA2-256 [FIPS 180-4]Function: SHA2Message Length: 0-65536 Increment 8; Large Message Sizes: 1gigabytesMessage Digest
A5798SHA2-384 [FIPS 180-4]Function: SHA2Message Length: 0-65536 Increment 8; Large Message Sizes: 1gigabytesMessage Digest
A5798SHA2-512 [FIPS 180-4]Function: SHA2Message Length: 0-65536 Increment 8; Large Message Sizes: 1gigabytesMessage Digest
A5798SHA2-512/224 [FIPS 180-4]Function: SHA2Message Length: 0-65536 Increment 8; Large Message Sizes: 1gigabytesMessage Digest
A5798SHA2-512/256 [FIPS 180-4]Function: SHA2Message Length: 0-65536 Increment 8; Large Message Sizes: 1gigabytesMessage Digest
A5798SHA3-224Function: SHA3Message Length: 0-65536Message Digest
[FIPS 202]Increment 8
A5798SHA3-256Function: SHA3Message Length: 0-65536Message Digest
[FIPS 202]Increment 8
A5798SHA3-384Function: SHA3Message Length: 0-65536Message Digest
[FIPS 202]Increment 8
A5798SHA3-512Function: SHA3Message Length: 0-65536Message Digest
[FIPS 202]Increment 8
A5798SHAKE-128SHAKE-128Output Length: 16-65536XOF
[FIPS 202]Increment 8
A5798SHAKE-256SHAKE-256Output Length: 16-65536XOF
[FIPS 202]Increment 8
A5798TDES-CBC [SP 800-38A, SP 800-67r2]CBCKeying Option: 1, 27[Legacy] Direction: DecryptKeying Option: 1, 27[Legacy] Direction: DecryptData Decryption
A5798TDES-CFB64 [SP 800-38A, SP 800-67r2]CFB64Keying Option: 1, 27[Legacy] Direction: DecryptData Decryption
A5798TDES-CFB8 [SP 800-38A, SP 800-67r2]CFB8Keying Option: 1, 27[Legacy] Direction: DecryptData Decryption
A5798TDES-CTR [SP 800-38A, SP 800-67r2]CTRKeying Option: 1, 27[Legacy] Direction: Decrypt Incremental CounterData Decryption
A5798TDES-ECB [SP 800-38A, SP 800-67r2]ECBKeying Option: 1, 27[Legacy] Direction: DecryptData Decryption
A5798TDES-OFB [SP 800-38A,OFBKeying Option: 1, 27[Legacy] Direction: DecryptData Decryption

Page 15 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy

Page 16
SP 800-67r2]
A5798TLS v1.2 KDF RFC7627 [SP 800-135r1]TLS v1.2 KDF RFC7627TLS v1.2 KDF RFC7627Hash Algorithm: SHA2-256, SHA2-384, SHA2-512Key Derivation No part of the TLS
[SP 800-135r1]1.2 protocol, other than the KDF, has been tested by the CAVP and CMVP.
A5798TLS v1.3 KDF [SP 800-135r1, RFC8446]TLS v1.3 KDFHMAC Algorithm: SHA2-256, SHA2-384 KDF Running Modes: DHE, PSK, PSK-DHEKey Derivation No part of the TLS 1.3 protocol, other than the KDF, has been tested by the CAVP and CMVP.
A5798TupleHash-128 [SP 800-185]Message Length: 0-65536 Increment 8Output Length: 16-65536 Increment 8XOFXOF
A5798Security Function Implementations (SFIs)TupleHash-256 [SP 800-185]Message Length: 0-65536 Increment 8Output Length: 16-65536 Increment 8XOF
AES-KWKTSSP 800-38F. KTS (key wrapping and unwrapping) per IG D.G.128, 192, and 256-bit keys provide between 128 and 256Key Wrap/UnwrapKey Wrap/Unwrap
A5798[SP 800-38F]bits of encryption strength
AES-KWPKTSSP 800-38F. KTS (key wrapping and unwrapping) per IG D.G.128, 192, and 256-bit keys provide between 128 and 256Key Wrap/Unwrap
A5798[SP 800-38F]bits of encryption strength
KTS-IFC A5798KTS-IFCKTS [SP 800-56Brev2]KTSSP 800-56Brev2. KTS-IFC (key encapsulation and un- encapsulation) per IG D.G.2048, 3072, 4096, 6144, and 8192-bit modulus providingKey Encapsulation/Un- encapsulation
A5798 Entropy Source[SP 800-56Brev2]112, 128, 152, 176, or 200 bits of encryption strength
E21E21ESV [SP 800-90B]Non-Physical, Non-IIDEntropy Input obtained by DRBGSeeding the Module’s DRBGSeeding the
is 48 bytes. Nonce obtained by DRBG is 16 bytes. Due to conditioning, the output from this entropy source is expected to contain full entropy.Module’s DRBG
AlgorithmCaveatUse/Function
CKGVendor AffirmedCryptographic Key Generation

Table 3 - Approved Algorithms The CDK provides the Approved methods in Table 4 for which there are no algorithm tests, but whose use is nevertheless allowed in the Approved mode. The proper implementation and functionality of CDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 16

Page 17

[SP 800-133 rev2]

SP 800- 133rev2 (Section 4, 5.1, 6.1, and 6.3) and IG D.H. Unmodified output DRBG used for generation of symmetric keys and seeds for asymmetric keys. DRBGs are instantiated to 256 bits of security strength

Table 4 - Vendor Affirmed Algorithms

2.2.1.2 SP 800-56Arev3 Assurances

As required per SP 800-56Arev3, the CDK conditionally performs the necessary checks when generating, importing, or using domain parameters and keys according to sections 5.5.2, 5.6.2, and/or 5.6.3 of the special publication.

2.2.1.3 HMAC Usage

If HMAC is used for the protection of data, the operator must ensure that a key length of at least 112 bits minimum is used.

2.2.1.4 AES-GCM Notes
2.2.1.4.1 IV Construction

In the Approved mode only internal 96-bit IV generation is allowed. The CDK supports both SP800-38D Section 8.1 and 8.2 for internal IV generation and therefore complies with both Scenario 1 and Scenario

2.2.1.4.1.1 TLS – Section 8.1 SP800-38D, Scenario 1 IG C.H

The CDK does not implement the TLS protocol. The CDK implements cryptographic operations that can be used to implement the TLS protocol. The CDK’s AES GCM TLS internal IV generation is in compliance with TLS 1.2 per RFC 5288, TLS 1.3 per RFC 8446, and in support of the GCM cipher suites listed in SP80052rev2. For TLS 1.2 the AES GCM IV is generated internally using a deterministic counter as the nonce_explicit value and takes as input a 16-bit salt. For TLS 1.3 the AES GCM IV is generated internally by XOR’ing an internally maintained counter with the 12-byte IV. In each case, the resulting IV is exactly 96-bits in length.

2.2.1.4.1.2 Random – Section 8.2 SP800-38D, Scenario 2 IG C.H

The CDK implements random internal IV generation that uses the module’s Approved DRBG. The seed used by the CDK’s DRBG is provided by the CDK’s jitter entropy component. The IV is exactly 96-bits in length.

2.2.1.4.2 Power Loss

In the event that module power is lost and restored, the application using the CDK must ensure that any of its AES-GCM keys used for encryption are re-established or re-generated. Page 17 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy

Page 18
AlgorithmCaveatUse/Function
MD5Only allowed as the PRF in TLS v1.0 and v1.1 per IG 2.4.AOnly allowed as the PRF in TLS v1.0 and v1.1 per IGSP 800-135rev1 Section 4.2.1 describes the use of
2.4.AMD5 in conjunction with SHA-1 in the key derivation function, concluding that the TLS 1.0/1.1 KDF may be used within the context of the TLS protocol (with provisions for validation of the companion approved functions, SHA-1 and HMAC). This use of MD5 does not conflict with the security of the approved security functions
Algorithm/FunctionUse/Function
AESEncryption/decryption using the CFB64 mode
AES GCMEncryption using external IV generation by calling init() or initExt(); Encryption/decryption using XPN by calling initXPN()
AES GCM SIVEncrypt/decrypting using the AES GCM SIV mode
ANSI x9.63 KDF, TLS 1.3 KDFKey derivation – using SHA-1 or SHA-3
ChaCha20Encryption/decryption
DESEncryption/decryption using the DES, DESX, or DES40 variants
Diffie-HellmanKey establishment [512-1024 bits] Key generation [512-1024 bits]
DRBGHMAC-SHA-1, HMAC-SHA2-224, HMAC-SHA2-384, HMAC-SHA2-512/256, HMAC-SHA3-224, HMAC-SHA3-384
DSADigital signature generation [512-1024 bits] Key generation [512-1024-bits]
2.2.1.4.3 Limits

The CDK enforces the following limits on the number of encryption operations that can be performed - TLS IV 64-bit Deterministic Counter with 16-bit salt

2.2.3 Non-Approved-mode Algorithms

When run in the Approved mode the following additional algorithms, modes, and sizes are allowed to be used internally with No Security Claimed. Note these algorithms are not accessible through the CDK’s API and calling applications are unable to use them. Claimed When run in the Non-Approved mode all the algorithms, modes, and sizes described above are available as well as the following additional algorithms, modes, and sizes which are not allowed to be used in the CDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 18

Page 19
Elliptic Curve Diffie- HellmanKey establishment using keys whose size is less than 224-bits Key generation of keys with size less than 224-bits Any use of non-NIST approved curves (including Montgomery Curves) (Non-compliant less than 112 bits of encryption strength)
ECDSADigital signature generation using keys whose size is less than 224-bits or SHA-1 Key generation of keys with size less than 224-bits Any use of non-NIST approved curves (secp112r1, secp112r2, secp128r1, secp128r2, secp160k1, secp160r1, secp160r2, brainpoolP160r1, brainpoolP160t1, brainpoolP192r1, brainpoolP192t1, brainpoolP224r1, brainpoolP224t1, brainpoolP256r1. brainpoolP256t1, brainpoolP320r1, brainpoolP320t1, brainpoolP384r1, brainpoolP384t1, brainpoolP512r1, brainpoolP512t1, numsp256d1, numsp384d1, numsp512d1, frp256v1, sm2p256v1, gostRFC7091, gostParamSetA, gostParamSetB, curve22519, ed448, oakley1, oakley2, ipsec3, ipsec4
EDDSADigital signature generation using Edwards curves (Ed25519, Ed448)
PBKDFKey derivation using key lengths less than 112 bits or salt lengths less than 128 bits
RSADigital signature generation using keys whose size is less than 2048-bits or SHA-1 Key generation of keys with size less than 2048-bits Key wrapping using PKCS #1 v1.5 padding Key wrapping using keys whose size is less than 2048-bits (Non-compliant less than 112 bits of encryption strength)
SHA-0Hashing – any use (API input 0 to the SHA constructor)
SHSHashing – using ISC’s incorrect, non-compliant, versions of SHA2-256, SHA2-384, SHA2-512, or SHA2-224 corresponding to API input 12, 13, 15, or 17 to the SHA2 constructor
SkipjackEncryption/decryption
Triple-DESEncryption/decryption using 1-key (API input key length of 64-bits) Encryption using 2-key (API input key length of 128-bits) Encryption/decryption using the CFB32 mode Encryption using 3-key (API input key length of 192-bits)

Table 6 - Non-Approved Algorithms Not Allowed in the Approved Mode of Operation

2.3 CDK Modes and Approval Indicators
2.3.1 Running the CDK in the Approved mode

When the CDK is run in the Approved mode, only FIPS 140-3 approved algorithms are allowed to be used. The CDK will error if a non-approved algorithm is used. In order to operate in the Approved mode, the CO must ensure that applications loaded by the operating system call the “Configure” service (enableFIPS() method) at startup. The CO may use the “Show Status” service (isFIPS()method) in their application to determine whether or not the CDK is operating in the Approved mode. The CO’s application must provide an indication of the mode of operation by either calling the “Show Status” service (isFIPS()function) and outputting a custom message, or by outputting the output of the “Show Status” service (StrVersion()method).

2.3.2 Running the CDK in the Non-Approved Mode

If the “Configure” service (enableFIPS() function) is not called, the CDK will operate in the NonApproved mode. The “Show Status” service (isFIPS()function) will return false to indicate that the CDK is not operating in the Approved mode. The output of the “Show Status” service Page 19 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy

Page 20

(StrVersion()function) will not include the statement that the module is operating in the Approved mode.

2.3.3 Running the CDK in Degraded Mode

The CDK does not support a degraded mode of operation.

2.3.4 Approval Indicators

As noted above, the isFIPS() function will return true or false to indicate whether or not the CDK is operating in the Approved mode and only allowing approved algorithms to be used. Additionally, in the Approved or Non-Approved mode individual algorithms can be queried:

2.4 Cryptographic Boundary

The following diagram (Figure 1) illustrates the TOEPP and the relationship between a typical software application (such as the supplied CDK test program), the ISC CDK, the computer’s operating system, the system’s BIOS, and the physical general-purpose computer (GPC) on which it all executes. The cryptographic boundary is the ISC CDK shared library itself as shown inside of the red dashed lines labels cryptographic boundary. CDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 20

Page 21

GPC Application Cryptographic Boundary ISC CDK .dll or .so Operating System BIOS TOEPP Figure 1 ꟷ Cryptographic Boundary The following diagram (Figure 2) is a block diagram displaying the most important components of the CDK software. (Certain dependencies between the various components are suppressed for simplicity.) strings, self-tests utilities CDK API (data and control I/O, error handling) message symmetric digests ciphers public key DRBG algorithms groups, rings, fields, curves high-precision arithmetic Figure 2 ꟷ Important Components of the CDK Page 21 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy

Page 22
Physical PortLogical InterfaceData that passes over port/interface
Standard Input Port (e.g. Keyboard)Data InputData passed to the API calls to be used by the Module
Standard Output Port (e.g. Monitor)Data OutputData returned from API calls, generated by the Module
N/AControl InputAPI calls
Standard OutputStatus OutputC++ exceptions, the Algorithm::isErrorState() function, the isFIPS() function,
Port (e.g. Monitor)and the StrVersion() function

3. Cryptographic Module Interfaces As a FIPS 140-3 multi-chip standalone module, the CDK has a physical power interface and physical input and output data paths, which are the computer system’s standard input/output ports and power interface. The input/output ports on the computer are used for connecting external devices such as monitors and keyboards however these devices are outside the cryptographic boundary of the CDK. The CDK does not support a control output interface. The CDK software is written in C++; its logical interfaces are the application program interfaces (API) defined by C++ classes and global methods. The calling program inputs control and data to the CDK through the input fields of the API and receives output data and/or status information through the output parameters of the API. Vendor documentation describes what output indicates an error and what output constitutes successful completion of the operation. A “show status” service is provided by the static Algorithm::isErrorState(), isFIPS(), and StrVersion() methods which may be called at any time to determine if the CDK is in the hard error state and whether or not the CDK is operating in the Approved mode. If the CDK enters the hard error state, an error code is returned through the API interface, and no data output is returned. Methods performing key generation do not output intermediate key values. Methods performing key zeroization only return status output describing success or failure of the operation. Below is a table that maps the logical interfaces to the physical interfaces, with the exclusion of the Control Output interface and Power Interface which the module does not support: Table 7 – Ports and Interfaces CDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 22

Page 23

4. Roles, Services, and Authentication The CDK module supports one role: “Crypto-Officer” (CO). The CO is the human being who configures an application that uses services provided by the CDK. The CDK provides no maintenance access interface and therefore does not support a Maintenance role. FIPS 140-3 Level 1 cryptographic modules are not required to employ authentication as a means of controlling access to the module. Such authentication mechanisms are not supported by the CDK for the CO role. No other roles are supported. The CO configures the computer system, operating system, and the application using services provided by the CDK to operate in a secure Approved mode, if that is desired (this may include configuring the system on which the application is installed as part of the installation process). Additional conditions for meeting FIPS 140-3 requirements are provided in a separate document: Crypto Officer’s Guide. Self-test services are described in Section 9 of this document. Bypass services are not provided. Tables 8, 9 and 10 provide details on the services available to each role, and each role’s access rights with respect to those services. Page 23 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy

Page 24
RoleServiceInputOutput
COConfigureConfiguration ParametersStatus
COIntegrity Self-TestNoneStatus
COPerform Self-TestsNoneStatus
COShow StatusNoneStatus
COZeroizeKeyStatus
COSymmetric Key Generation using DRBGKey SizeKey, Status
CORandom Number GenerationSizeValue, Status
COAsymmetric Key GenerationKey Type, SizeKey, Status
COSymmetric Encrypt/DecryptKey, DataCiphertext, Status
COSymmetric DigestKey, DataDigest Value, Status
COMessage DigestDataDigest Value, Status
COKeyed HashKey, DataDigest Value, Status
COKey AgreementKeysShared Secret, StatusShared Secret, Status
COKey TransportKeysCiphertext, Status
CODigital SignatureKey, Digest Value, Digest TypeSignature, Status
COSignature VerificationKey, Signature, MessageStatus
COExtendable Output FunctionDataExtended Output Value, Status
COKey DerivationKey, Shared Secret, Password, DataKey, StatusKey, Status
ServiceDescriptionApproved Security FunctionsKeys and/or SSPsRolesAccess rights to Keys and/or SSPsIndicator
ConfigureInitialize and configure moduleAll algorithms and modesAll algorithms and modesAll SSPsCOR, W0 upon Success
Integrity Self-TestCheck module integrityHMAC-SHA2-256 #A5798HMAC Integrity KeyCONone0 upon Success

CDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 24

Page 25
Perform Self-TestsCheck module algorithm correctnessSee Section 10 for algorithms tested.NoneCONone0 upon Success
Show StatusReturn codes and/orNoneNoneCONone0 upon
strings8Success
ZeroizeErase key or critical security parameterErase key or criticalNoneAll SSPsCOZ0 upon Success0 upon
security parameterSuccess
Symmetric Key Generation using DRBGGenerate a random keyConditioning Component AES- CBC-MAC, AES- CCM, AES- CFB128, AES- CFB8, AES-CMAC, AES-CTR, AES- ECB, AES-GCM, AES-OFB, AES-XTS Testing Revision 2.0, CKG, HMAC DRBG, HMAC- SHA2-256, HMAC-SHA2-512, TDES-CBC, TDES- CFB64, TDES- CFB8, TDES-CTR, TDES-ECB, TDES- OFB, ESV #A5798AES GCM IV, AES GCM Key, AES Key, AES XTS Key, DRBG Key Value, DRBG Seed, DRBG ‘V’ Value, Entropy Input String, MAC Key, Triple-DES KeyCOG, R, E0 upon Success
Random Number GenerationGenerate a random numberHMAC DRBG, ESV #A5798HMAC DRBG, ESVDRBG Key Value, DRBGCOE0 upon Success
#A5798Seed, DRBG ‘V’ Value, Entropy Input String
Asymmetric Key GenerationGenerate an asymmetric public and private keyCKG, DSA PQGGen [FIPS186-4], DSA PQGVer [FIPS186- 4], ECDSA KeyGen [FIPS186- 4], ECDSA KeyVer [FIPS186-4], HMAC DRBG, RSA KeyGen [FIPS186- 4], ESV #A5798DRBG Key Value, DRBG Seed, DRBG ‘V’ Value, DSA Public Key, ECC DH Private Key, ECC DH Public Key, ECDSA Private Key, ECDSA Public Key, RSA Signature Private Key, RSA Signature Public KeyCOG, R, E0 upon Success
Symmetric Encrypt/DecryptEncrypt/decrypt dataAES-CBC, AES-AES GCM IV,COE0 upon Success
using a symmetricCCM, AES-AES GCM Key,
algorithmCFB128, AES-AES Key, AES

The Show Status service also satisfies the “Show Module Version Information” Service. Page 25 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy

Page 26
CFB8, AES-CTR, AES-ECB, AES- GCM, AES-OFB, AES-XTS Testing Revision 2.0, TDES-CBC, TDES- CFB64, TDES- CFB8, TDES-CTR, TDES-ECB, TDES- OFB #A5798XTS Key, Triple- DES Key
Symmetric DigestDigest dataConditioning Component AES- CBC-MAC, AES- CMAC #A5798AES MAC KeyCOE0 upon Success
Message DigestDigest dataParallelHash-128, ParallelHash-256, SHA-1, SHA2-224, SHA2-256, SHA2- 384, SHA2-512, SHA2-512/224, SHA2-512/256, SHA3-224, SHA3- 256, SHA3-384, SHA3-512, TupleHash-128, TupleHash-256 #A5798NoneCONone0 upon Success
Keyed HashDigest dataHMAC-SHA-1, HMAC-SHA2-224, HMAC-SHA2-256, HMAC-SHA2-384, HMAC-SHA2-512, HMAC-SHA2- 512/224, HMAC- SHA2-512/256, HMAC-SHA3-224, HMAC-SHA3-256, HMAC-SHA3-384, HMAC-SHA3-512, KMAC-128, KMAC-256 #A5798MAC KeyCOE0 upon Success
Key AgreementDerive a shared keyKAS-ECC-SSC, KAS-IFC-SSC #A5798KAS-ECC-SSC,ECC DH PrivateCOG, R, E0 upon Success
KAS-IFC-SSCKey, ECC DH Public Key,
#A5798Shared Secret value
Key TransportEncrypt a data encryption key with a key encryption keyAES-KW, AES- KWP, KTS-IFC #A5798AES Key Wrap key, RSA Key Wrap Private Key, RSA Key Wrap Public KeyCOR, E0 upon Success

CDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 26

Page 27
Digital SignatureCreate a digital signatureECDSA SigGen [FIPS186-4], Deterministic ECDSA SigGen [FIPS186-5], RSA SigGen [FIPS186- 4], RSA Signature Primitive (CVL) #A5798ECDSA Private Key, RSA Signature Private KeyCOE0 upon Success
Signature VerificationVerify a digital signatureDSA SigVer [FIPS186-4], ECDSA SigVer [FIPS186-4], RSA SigVer [FIPS186- 4] #A5798DSA Public Key, ECDSA Public Key, RSA Signature Public KeyCOE0 upon Success
Extendable Output FunctionExtend bit strings to any desired lengthcSHAKE-128, cSHAKE-256, SHAKE-128, SHAKE-256, ParallelHash-128, ParallelHash-256 #A5798NoneCONone0 upon Success
Key DerivationDerive a keyKDA HKDF, KDA OneStep, KDF ANS 9.63 (CVL), KDF IKEv1 (CVL), KDF IKEv2 (CVL), KDF SNMP (CVL), KDF SSH (CVL), KDF TLS9 (CVL), KDF TPM (CVL), PBKDF, TLS v1.2 KDF RFC7627, TLS v1.3 KDF #A5798Shared Secret value, PasswordCOG, R, E0 upon Success

4] Table 9 - Approved Services MD5 (No Security Claimed) is only used for TLS 1.0/1.1 KDF. Page 27 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy

Page 28
ServiceDescriptionAlgorithms AccessedRolesIndicator
Symmetric Key Generation using DRBGGenerate a random key for usage in a non- Approved algorithmDRBGCO0 upon Success (when in the Non-Approved mode) CDK_OP_UNSUPPORTED in the Approved mode
Random Number GenerationGenerate a random numberDRBG (with HMAC-SHA-1, HMAC- SHA2-224, HMAC-SHA2-384, HMAC-SHA2-512/256, HMAC- SHA3-224, HMAC-SHA3-384)CO0 upon Success (when in the Non-Approved mode) CDK_OP_UNSUPPORTED in the Approved mode
Asymmetric Key GenerationGenerate an asymmetric public and private key for usage in a non- Approved algorithmDRBGCO0 upon Success (when in the Non-Approved mode) CDK_OP_UNSUPPORTED in the Approved mode
Symmetric Encrypt/DecryptEncrypt/decrypt data using a symmetric algorithmAES (CFB64, GCM with external IV,CO0 upon Success (when in
XPN, GCM SIV), ChaCha20, DES, DESX, DES40, Skipjack, Triple-DESthe Non-Approved mode)
(encryption, 2-key encryption /CDK_OP_UNSUPPORTED in
decryption, or CFB32 mode)the Approved mode
Message DigestDigest dataSHA-0, or using ISC’s incorrect,CO0 upon Success (when in the Non-Approved mode) CDK_OP_UNSUPPORTED in the Approved mode0 upon Success (when in
non-compliant, versions of SHA2- 256, SHA2-384, SHA2-512, orthe Non-Approved mode)
SHA2-224 corresponding to APICDK_OP_UNSUPPORTED in
input 12, 13, 15, or 17 to the SHA2 constructorthe Approved mode
Key AgreementDerive a shared keyDiffie-Hellman, Elliptic Curve Diffie-Hellman (using non-NIST approved curves, or sizes less than 224 bits)Diffie-Hellman, Elliptic CurveCO0 upon Success (when in
Diffie-Hellman (using non-NIST approved curves, or sizes less thanthe Non-Approved mode)
224 bits)CDK_OP_UNSUPPORTED in the Approved mode
Key TransportEncrypt a data encryption key with a key encryption keyRSA key wrapping using PKCS #1 v1.5 padding as shown in section 8.1 of RFC 2313, or a modulus size that is less than 2048-bitsCO0 upon Success (when in the Non-Approved mode) CDK_OP_UNSUPPORTED in the Approved mode
Digital SignatureCreate a digital signatureDSA signature generation, ECDSACO0 upon Success (when in
(using non-NIST approved curves, or sizes less than 224 bits or SHA-the Non-Approved mode)
1), EdDSA, RSA using a modulusCDK_OP_UNSUPPORTED in
size less than 2048-bits or SHA-1the Approved mode
Key DerivationDerive a keyANSI x9.63 KDF using SHA-1 orCO0 upon Success (when in
SHA-3, TLS 1.3 KDF using SHA-1 or SHA-3, PBKDF using key lengthsthe Non-Approved mode)
less than 112 bits or salt lengthsCDK_OP_UNSUPPORTED in
less than 128 bitsthe Approved mode

Table 10 - Non-Approved Services 5. Software/Firmware Security The CDK integrity is checked on startup using HMAC-SHA2-256 as described in section Pre-Operational Tests. The integrity check can be initiated on demand using the mechanisms specified in section OnCDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 28

Page 29

Demand Self-Tests. The module executable is provided in the compiled form described in section Platform Availability below. 6. Operational Environment The CDK is a software module that operates in a modifiable operational environment running on a general-purpose computer. The CDK is a single shared library. Within the tested environments user processes are segregated into their own process space. Processes are logically separated from all other processes by the operating system and underlying hardware. As the module exists within the process space of the calling application, acting in the Crypto Officer role, and no other process can access the same instance of the module, the module operates in single user mode.

6.1 Platform Availability

The CDK software was designed for use on a variety of operating systems and hardware platforms. For FIPS 140-3 validation purposes, operational testing was performed on the tested platforms listed in section 2.1. The CDK software is provided as compiled code in the form of shared link libraries that can be run on Microsoft Windows (CDKC8123S.DLL) and Linux (libcdkc.so.81.2.3) operating systems. There are no security rules, settings, or restrictions to the configuration of the operational environment. The module’s application programming interface (API), which provides access to the supported cryptographic primitives, consists of a set of C++ classes as documented in ‘cdk_fips.h’, the other header files referenced therein, and related documentation. For FIPS 140-3 validation, the CDK was loaded by multiple test applications (one for each algorithm family) and executed on each of the supported platforms.

  1. Physical Security The module is a software-only module and the physical security requirements of FIPS 140-3 level 1 do not apply.
  2. Non-Invasive Security Non-invasive security is Non Applicable as there are currently no requirements in SP 800-140F.
  3. Sensitive Security Parameters Management The CDK uses, creates, and/or manages: Page 29 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy
Page 30
Key/SSP Name/ TypeStrengthSecurity Function and Cert. NumberGener- ationImport/ ExportEstablish- mentStorageZeroizationUse & related keys
AES Key (CSP)AES KeyBetween 128 and 256AES-CBC, AES-DRBGImport/expo rt via API (plaintext)Agreement,Plaintext in RAMImplicitAES encrypt/decrypt key
(CSP)CCM, AES-Transport,zeroization
CFB128, AES-Generation,when object is
CFB8, AES-CTR,Entry,deallocated or
AES-ECB,Derivationreboot
9.1 Storage Areas

The CDK is a low-level cryptographic toolkit and does not provide any key storage. As detailed in section Pre-Operational Tests, a single, special purpose, integrity key is hard coded in the module in plaintext form and is used to verify the integrity of the module.

9.2 SSP Input-Output Methods

The CDK does not manage any manually distributed cryptographic keys, either entry or output, external to the cryptographic boundary. However, the logical C++ API exposed by the CDK provides methods for loading and unloading symmetric keys and public/private key pairs in electronic form for manual10 key distribution by the application. An instantiated CDK object may contain a cryptographic key during its lifetime. Such keys are available to the user for manipulation, but when the object is released, its memory and all keys in it are cleared. Under normal operations all internal memory allocated by the CDK for temporary key storage is zeroized when the object owning that memory is destroyed. The CO is responsible for ensuring that CDK objects are destroyed properly (i.e., the application must allow the C++ destructors to be called by properly exiting the application or by deleting all heap allocated CDK objects before application termination). To zeroize the special purpose integrity key embedded in the CDK in plaintext form, the CDK shared library must be securely erased from the hard disk.

9.4 SSPs

Listed in Table 11 are the keys and SSPs used by the module in the Approved mode. IG 9.5.A MD/EE - CM Software to/from App via TOEPP Path CDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 30

Page 31
AES-OFB,
Conditioning
Component
AES-CBC-MAC
#A5798
AES MAC Key (CSP)Between 128 and 256AES-CMAC #A5798AES-CMACDRBGImport/expo rt via API (plaintext)Agreement,Plaintext in RAMImplicitAES CMAC generate/verify key
Transport,zeroization
#A5798Generation,when object is
Entry,deallocated or
Derivationreboot
AES GCM IV11 (PSP)96 (random) or 8-1024 (counter)AES-GCM #A5798InternallyImport/expo rt via API (plaintext)NonePlaintext in RAMImplicitAES GCM initialization vector
using azeroization
counter orwhen object is
randomdeallocated or
valuereboot
AES GCM Key (CSP)Between 128 and 256AES-GCM #A5798DRBGDRBGImport/expo rt via API (plaintext)Agreement,Plaintext in RAMImplicitAES GCM encrypt/decrypt /generate/verify key
Transport,zeroization
Generation,when object is
Entry,deallocated or
Derivationreboot
AES Key Wrap key (CSP)Between 128 and 256AES-KW, AES-KWP #A5798DRBGImport/expo rt via API (plaintext)Agreement,Plaintext in RAMImplicitAES encrypt/decrypt key
Transport,zeroization
Generation,when object is
Entry,deallocated or
Derivationreboot
AES XTS Key (CSP)128 or 256AES-XTSDRBGImport/expo rt via API (plaintext)Agreement,Plaintext in RAMImplicitAES XTS encrypt/decrypt key
TestingTransport,zeroization
Revision 2.0Generation,when object is
Entry,deallocated or
#A5798Derivationreboot
DSA Public Key (PSP)112 or 128DSA SigVer [FIPS186-4] #A5798DSA SigVerN/AImport/expo rt via API (plaintext)NonePlaintext in RAMImplicitDSA signature verification public key
[FIPS186-4]zeroization when object is
#A5798deallocated or reboot
ECC DH Private Key (CSP)Between 112 - 256KAS-ECC-SSC #A5798Internally using the DRBGImport/expo rt via API (plaintext)NonePlaintext in RAMImplicit zeroization when object is deallocated or rebootECC DH private key agreement key
ECC DH Public Key (PSP)Between 112 - 256KAS-ECC-SSC #A5798InternallyImport/expo rt via API (plaintext)NonePlaintext in RAMImplicitECC DH public key agreement key
computedzeroization
based onwhen object is
the privatedeallocated or
keyreboot
ECDSA Private Key (CSP)Between 112 - 256ECDSA SigGen, Deterministic ECDSA SigGen [FIPS186-4],Internally using the DRBGInternallyImport/expo rt via API (plaintext)NonePlaintext in RAMImplicitECDSA signature generation private key
using thezeroization
DRBGwhen object is deallocated or reboot

The AES-GCM IV is generated internally randomly or as a counter per IG C.H. In the former case the IV is exactly 96-bits. In the latter case the IV may be 8- to 1024-bits in length. Page 31 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy

Page 32
ECDSA KeyGen
[FIPS186-4]
#A5798
ECDSA Public Key (PSP)Between 112 - 256ECDSA SigVer, ECDSA KeyVer [FIPS186-4], ECDSA SigVer [FIPS186-4] #A5798Internally computed based on the private keyImport/expo rt via API (plaintext)NonePlaintext in RAMImplicit zeroization when object is deallocated or rebootECDSA signature generation public key
MAC Key (CSP)112 minimumHMAC-SHA-1, HMAC-SHA2- 224, HMAC- SHA2-256, HMAC-SHA2- 384, HMAC- SHA2-512, HMAC-SHA2- 512/224, HMAC-SHA2- 512/256, HMAC-SHA3- 224, HMAC- SHA3-256, HMAC-SHA3- 384, HMAC- SHA3-512, KMAC-128, KMAC-256 #A5798DRBGImport/expo rt via API (plaintext)Agreement, Transport, Generation, Entry, DerivationPlaintext in RAMImplicit zeroization when object is deallocated or rebootKeyed hash key
HMAC Integrity Key (Non- SSP)192HMAC-SHA2- 256 #A5798HMAC-SHA2-N/ANoneNonePlaintext onExplicitKeyed hash key
256Diskzeroizationto verify the
(embeddedwhen securelyintegrity of the
#A5798in theerasing themodule at
sharedCDK librarystartup and on
library)from diskdemand
RSA Key Wrap Private Key (CSP)Between 112 and 192KAS-IFC-SSC,Internally using the DRBGImport/expo rt via API (plaintext)NonePlaintext in RAMPlaintext inImplicit zeroization when object is deallocated or rebootImplicitPrivate component of an RSA key pairPrivate
KTS-IFC, RSARAMzeroizationcomponent of
KeyGenwhen object isan RSA key pair
[FIPS186-4] #A5798deallocated or reboot
RSA Key Wrap Public Key (PSP)Between 112 and 192KAS-IFC-SSC, KTS-IFC #A5798KAS-IFC-SSC,InternallyImport/expo rt via API (plaintext)NonePlaintext in RAMImplicitPublic component of an RSA key pair
KTS-IFCcomputedzeroization
based onwhen object is
#A5798the privatedeallocated or
keyreboot
RSA Signature Private Key (CSP)Between 112 and 192RSA SigGenInternally using the DRBGInternallyImport/expo rt via API (plaintext)NonePlaintext in RAMImplicit zeroization when object is deallocated or rebootImplicitPrivate component of an RSA key pair
[FIPS186-4],using thezeroization
RSA SignatureDRBGwhen object is
Primitive #A5798deallocated or reboot
RSA SignatureBetweenRSA SigVer [FIPS186-4],RSA SigVerInternallyImport/expoNonePlaintext in RAMImplicitPublic
112 and[FIPS186-4],computedrt via APIzeroizationcomponent of
192based on(plaintext)when object isan RSA key pair

CDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 32

Page 33
Public Key (PSP)RSA Signature Primitive #A5798the private keydeallocated or reboot
Triple-DES Key (CSP)112TDES-CBC,DRBGImport/expo rt via API (plaintext)Agreement, Transport, Generation, Entry, DerivationPlaintext in RAMImplicit zeroization when object is deallocated or rebootTriple-DES (3-
TDES-CFB64,Key) decrypt key
TDES-CFB8,for legacy use
TDES-CTR,only
TDES-ECB,Triple-DES (2-
TDES-OFBKey) decrypt key for legacy use
#A5798only
DRBG ‘V’ Value (CSP)128HMAC DRBG, ESV #A5798HMAC DRBG,Internally using entropy inputNoneNonePlaintext in RAMImplicitDRBG internal state valuesDRBG internal
ESVzeroization when object isstate values
#A5798deallocated or reboot
DRBG Key Value (CSP)256HMAC DRBG, ESV #A5798Internally using entropy inputNoneNonePlaintext in RAMImplicit zeroization when object is deallocated or rebootDRBG internal state values
DRBG Seed (CSP)384HMAC DRBG, ESV #A5798Internally using entropy inputNoneNonePlaintext in RAMImplicit zeroization when object is deallocated or rebootImplicitEntropy input
zeroization(length is
when object isplatform
deallocated ordependent but
rebootalways greater than 256-bits)
Entropy Input String (CSP)384HMAC DRBG, ESV #A5798Entropy as per SP 800-90BNoneNonePlaintext in RAMImplicit zeroization when object is deallocated or rebootEntropy input string coming from the entropy source. Input length = 384 bits
Shared Secret Value (CSP)Between 112 - 256KDA HKDF, KDAN/AImport/expo rt via API (plaintext)AgreementPlaintext in RAMImplicit zeroization when object is deallocated or rebootShared secret values from key agreementShared secret
OneStep, KDFvalues from key
ANS 9.63, KDF IKEv1, KDF IKEv2, KDF SNMP, KDF SSH, KDF TLS, TLS v1.2 KDF RFC7627, TLS v1.3 KDF, KDF TPM #A5798agreement
Password (CSP)8 - 128PBKDF #A5798PBKDFN/AImport/expo rt via API (plaintext)NonePlaintext in RAMImplicit zeroizationPasswords used in PBKDF
#A5798when object is deallocated or reboot

Table 11 – SSPs Page 33 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy

Page 34
Entropy SourceMinimum number of bits of entropyDetails
ISC CDK Jitter Entropy Component384-bits obtained per requestThe ISC CDK incorporates the Jitter Entropy source for seeding for the DRBG. The underlying noise source is expected to be able to provide at least 1 bit of entropy per 64-bit sample. Due to the sampling rate and conditioning applied, the entropy source provides 1 bit of entropy per each bit of conditioned output.
9.5 Entropy Sources

The CDK includes a non-physical entropy source within the module boundary which complies with SP 800-90B and has been validated using the guidance set out in the FIPS 140-3 Implementation Guidance. Table 12 - Non-Deterministic Random Number Generation Specification The CDK generates keys for the approved and vendor affirmed algorithms listed in section Algorithms and Parameters Allowed in the Approved mode. The CDK also generates Non-Approved keys for algorithms listed in section Non-Approved Algorithms Allowed in the Approved Mode of Operation The CDK does not support any non-approved algorithms that are allowed in the Approved mode. Non-Approved-mode Algorithms The CDK can generate symmetric keys (for a symmetric cipher or keyed hash function) using its DRBG. To generate key pairs, the public key generation methods use the CDK’s random number generator. The calling application is responsible for maintaining the SSPs that it establishes using the module, inclusive of assuring that SSPs established while operating in the Approved mode are not shared or used in the Non-Approved mode (and vice versa).

9.7 Key Distribution

The CDK doesn’t perform key distribution. The CDK has basic cryptographic functions which can be used by developers to build key distribution capabilities into their applications. The key distribution techniques available for use include RSA Key Establishment, ECC Diffie-Hellman Key Agreement, and AES key wrapping. CDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 34

Page 35
NameDescriptionConditionsRecovery MethodIndicator
Soft ErrorThis transitional state represents non-critical errors, such as invalid input to a function in the library.Function returns one of:Automatic as the CDK returns to the operational state immediately after returning the error codeAutomatic asFunction call returns a non- zero value as listed in Conditions column
CDK_FAILEDthe CDK returns
CDK_INTERNAL_ERRto the
CDK_CALLBACK_FAILEDoperational
CDK_INVALID_PTRstate
CDK_INVALID_CTXimmediately
CDK_INVALID_DATAafter returning
CDK_INVALID_DATA_LENGTH CDK_INVALID_KEY CDK_INVALID_KEY_PTR CDK_INVALID_KEY_LENGTH CDK_INVALID_SIGNATURE CDK_INVALID_DIGEST CDK_INVALID_DIGEST_ALG CDK_INVALID_ALG CDK_INVALID_MODE CDK_INVALID_PADDING CDK_INVALID_IV_SIZE CDK_INVALID_IV CDK_INVALID_KEY_SIZE CDK_INVALID_ROUNDS CDK_INVALID_PARAM_LENGTH CDK_INVALID_KEYTYPE CDK_INVALID_KEYUSAGE CDK_INVALID_ITERATION_COUNT CDK_INVALID_SALT CDK_INVALID_RANDOM CDK_INVALID_SEED CDK_INVALID_ALG_PARAMS CDK_INVALID_PUB_EXPONENT CDK_INVALID_TAG CDK_INVALID_TYPE CDK_INPUT_LENGTH_ERR CDK_INPUT_DATA_ERR CDK_OP_UNSUPPORTEDthe error code

10. Self-Tests The CDK performs self-tests to ensure that it is functioning properly. If the message digest value computed over the CDK does not match the embedded expected value, or if an algorithm KAT fails, then the module enters the hard error state and no further cryptographic operations are possible. To recover from the hard error state, the application using the CDK’s services must be restarted. The CDK returns non-zero error codes from its API to indicate failure. Most error codes are output when the CDK transitions through the soft error state (which is immediately and automatically cleared), but there are two special error codes that the CDK returns to indicate it has entered the hard error state. The CDK returns CDK_ERROR_STATE with value 1470 from its interfaces when it is in the hard error state for any reason other than a pairwise key test failure. The CDK returns CDK_KEYPAIR_INCONSISTENT with value

1234 when a pairwise key test fails during an on-demand self-test and the CDK enters the hard error

state. Additionally, a static function, Algorithm::isErrorState(),may be called to determine if the CDK is in the hard error state. Table 13 contains details on the error states. Page 35 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy

Page 36
CDK_OP_FAILED
CDK_PRVKEY_CANNOT_FIND
CDK_KEYGEN_FAILED
CDK_PUBKEY_CANNOT_FIND
CDK_KEY_INVALID
CDK_KEY_INVALID_USAGE
CDK_KEY_INVALID_KDF
CDK_KEY_INVALID_PARTYID
CDK_MODE_UNSUPPORTED
CDK_KEY_LENGTH_UNSUPPORTED
CDK_NO_KEY
CDK_OPERATION_NOT_INITALIZED
CDK_RESEED_REQUIRED
CDK_NO_ENTROPY
CDK_INVALID_BLOCK_SIZE
CDK_PARSE_ERROR
CDK_INVALID_KEY_TOO_MANY_PRIMES
CDK_UNKNOWN_OID
Hard ErrorThis statePre-operational test failure Conditional self-test failure NIST SP 800-90A Health Tests failure Pair-wise self-test failure SP 800-90B Health Tests failure IG C.I XTS-AES Test failure On-demand self-test failurePre-operational test failureRestart the application using the CDK’s servicesAlgorithm::isErrorState() returns true, function call returns CDK_ERROR_STATE, or function call returns CDK_KEYPAIR_INCONSISTENT
representsConditional self-test failure
critical errorsNIST SP 800-90A Health Tests failure
such as failure ofPair-wise self-test failure
the CDK’sSP 800-90B Health Tests failure
pseudo-randomIG C.I XTS-AES Test failure
number generator or failure of an on- demand self-test.On-demand self-test failure

Table 13

Page 37
AlgorithmTypeDescription
HMAC-SHA2-256CASTKnown Answer Test done prior to the Software Integrity Test as per IG 10.2.A
HMAC-SHA2-256SW IntegritySoftware integrity test using HMAC-SHA2-256 for CDK
AlgorithmTypeDescription
AES-CBCCASTEncrypt and Decrypt; Key Size: 128
AES CCMCASTEncrypt and Decrypt; Key Size: 128
AES CMACCASTGenerate; Key Size: 128
AES GCMCASTEncrypt and Decrypt; Key Size: 128
AES XTSCASTEncrypt and Decrypt AES-256
AES-ECBCASTEncrypt and Decrypt; Key Size: 128
Deterministic ECDSACASTSign and Verify using P-256, SHA2-256
HMAC DRBGCASTSHA2-256/512; (with and without PR)
DRBG Health TestsCASTInstantiate/generate/reseed health checks
DSACASTVerify using 2048-bit key, SHA2-256
ECC CDHCASTPrimitive “Z” computation using two P-256 keys
ECDSACASTSign and verify using P-256, SHA2-256, Sign and verify using B-233, SHA2-256
HKDFCASTSHA2-256
HMACCASTOne KAT each: SHA-1, SHA2-224, SHA2-256, SHA2-384, SHA2-512, SHA3-224, SHA3-256, SHA3-384, SHA3-512 (also covers SHA-1, SHA-2, and SHA-3 algorithms)
IKEv1 KDFCASTSHA2-256
IKEv2 KDFCASTSHA2-256
KAS-IFC-SSCCASTRSASVE.GENERATE and RSASVE.RECOVER using 2048-bit key

will contain) a digital signature and certificate applied by Microsoft tooling post the population of the MAC integrity field. Table 14 – Pre-Operational Self-Tests

10.2 Conditional Self-Tests

Conditional self-tests are performed when certain specific conditions arise within the CDK. The conditional self-tests are described in the following paragraphs. If any conditional self-test fails, the module displays a message on the output interface, enters the error state, and inhibits all cryptographic services. Interruption of the module’s operation results in the module terminating and causes the module to be unloaded from memory. This most likely occurs when the application using the module terminates. When the application using the module is started again, the module is loaded in the initial state, the start-up self-tests will run, the integrity test will run, and any conditional test states (i.e., counters) will be reset. Page 37 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy

Page 38
KDA OneStep SP800-56Cr2CASTSHA2-256
KDF ANSI X9.63CASTSHA2-256
PBKDFCASTSHA2-256
RSACASTSign and verify using 2048-bit key, SHA2-256, PKCS#1v1.5
SHA-3CASTOne KAT each: SHAKE-128/256, cSHAKE-128/256, KMAC-256, TupleHash-128, and ParallelHash-128
SNMP KDFCASTPassword Length: 64 and 8192
SSH KDFCASTSHA2-256
TLS 1.1 KDFCASTSHA2-256, SHA2-384, and SHA2-512
TLS 1.2 KDFCASTSHA2-256, SHA2-384, and SHA2-512
TLS 1.3 KDFCASTSHA2-256
TPM KDFsCASTSHA2-256
Triple-DESCAST2-key Triple-DES decrypt-only and 3-key Triple-DES decrypt-only
AlgorithmTypeDescription
ECDSAPCTKey-Pair Generation and Key Import
RSAPCTKey-Pair Generation and Key Import
KAS-ECCPCTKey-Pair Generation and Key Import

Table 15 – Conditional Self-Tests

10.2.1 Random Number Tests
10.2.1.1 NIST SP 800-90A Health Tests

The DRBG KAT detailed in Table 14 – Pre-Operational Self-Tests exercises the DRBG’s instantiate, reseed, and generate functions and covers the required health tests specified in SP 800-90A, Section 11.3. SP 800-90A, Section 11.3 also requires that the generate function be tested at reasonable intervals. In the CDK, the self-test interval for calls to the generate function is 32,768 and was chosen arbitrarily: every 32,768th call to the generate function causes the DRBG to run its self-tests again.

10.2.2 Pair-Wise Self-Tests

All ECDSA public/private key pairs are automatically tested for pair-wise consistency upon generation by generating a signature and verifying the signature for an embedded message. All Elliptic Curve Diffie-Hellman public/private key pairs are automatically tested for pair-wise consistency upon generation by computing a shared secret, deriving the key, and encrypting a message and then decrypting the message. All RSA key pairs are automatically tested for pair-wise consistency upon generation by generating a signature and verifying the signature over, and by encrypting and decrypting, an embedded message. Table 16 – Pair-Wise Consistency Tests CDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 38

Page 39
10.2.3 SP 800-90B Health Tests

As required by SP800-90B the CDK’s jitter entropy component implements a continuous Repetition Count Test and a continuous Adaptive Proportion Test. If either test fails, entropy cannot be obtained, the operation is aborted, and the CDK enters the error state.

10.2.4 IG C.I XTS-AES Test

As required per IG C.I, when the XTS-AES object is initialized by an operator the CDK ensures that the key and tweak values are not identical. If they are identical, the CDK returns error code 1038, CDK_INVALID_KEY from its API.

10.2.5 On-Demand Self-Tests

As documented in the Crypto Officer’s Guide and the User’s Guide, the CO may, on-demand, invoke any of the self-tests listed in Table 14 – Pre-Operational Self-Tests to ensure the integrity of specific algorithms by configuring their application to call the desired self-test function in the API (e.g., ISC_CDK::Test_SHA256()). There is also a master test function (ISC_CDK::SelfTest()) that the CO may call to run all self and integrity tests. 11. Life-Cycle Assurance

11.1 Finite State Model

The CDK was designed around a Finite State Model (FSM) that is detailed in a proprietary document submitted with this security policy.

11.2 Delivery and Operation and Guidance Documents

The ISC CDK is delivered to the CO as a compressed file archive (zip or tar) electronically or on physical media for each target platform with the version and platform indicated in the package name.

Page 40
AcronymMeaning
AESAdvanced Encryption Standard
ANSIAmerican National Standards Institute
APIApplication Programming Interface
CBCCipher Block Chaining
CCMCounter with CBC-Message Authentication Code
CASTCryptographic Algorithm Self-Test
PCTPair-Wise Consistency Test
CMACCipher-based Message Authentication Code
COCrypto Officer
CDKCryptographic Development Kit
CSPCritical Security Parameter
DESData Encryption Standard
DHDiffie-Hellman
DHEDiffie Hellman Key Exchange
DRGBDeterministic Random Bit Generator
DSADigital Signature Algorithm
ECCElliptic Curve Cryptography
ECDSAElliptic Curve Digital Signature Algorithm
EESEscrowed Encryption Standard (also known as Skipjack)
FSMFinite State Machine
FIPSFederal Information Processing Standard
GCMGalois/Counter Mode
HMACKeyed Hash Message Authentication Code
ISCInformation Security Corporation
IVInitialization Vector
KATKnown Answer Test
KDFKey Derivation Function
MACMessage Authentication Code
NISTNational Institute of Standards and Technology
OSOperating System
PCPersonal Computer
PCTPair-wise Consistency Test
PKVPublic Key Verification
RAMRandom Access Memory
RBGRandom Bit Generator
rDSARSA Digital Signature Algorithm
RSARivest Shamir Adleman

13. Acronyms CDK 8.1.2.3 Security Policy © 2002-2025 Information Security Corporation. Page 40

Page 41
SHASecure Hash Algorithm
SHSSecure Hash Standard
SIVSynthetic Initialization Vector
SPSpecial Publication
SSPSensitive Security Parameter
TOEPPTested Operational Environment’s Physical Perimeter
XEXXor-encrypt-xor
XTSXEX-based tweaked-codebook mode with ciphertext stealing

Page 41 © 2002-2025 Information Security Corporation CDK 8.1.2.3 Security Policy