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

Apple corecrypto Module v12.0 [Apple silicon, Kernel, Software, SL1]

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

Certificate

StandardFIPS 140-3
Overall level1
Module typeSoftware
EmbodimentMulti-Chip Stand Alone
StatusActive
Sunset date10/27/2026
CaveatInterim validation. When operated in approved mode
VendorApple Inc.

Approved Algorithms (88)

AlgorithmACVP Cert
AES-CBCA2793
AES-CBCA2794
AES-CBCA2865
AES-CBCA2866
AES-CCMA2796
AES-CCMA2868
AES-CFB128A2793
AES-CFB128A2794
AES-CFB128A2865
AES-CFB128A2866
AES-CFB8A2794
AES-CFB8A2866
AES-CTRA2794
AES-CTRA2796
AES-CTRA2866
AES-CTRA2868
AES-ECBA2793
AES-ECBA2794
AES-ECBA2796
AES-ECBA2865
AES-ECBA2866
AES-ECBA2868
AES-GCMA2796
AES-GCMA2868
AES-KWA2794
AES-KWA2866
AES-OFBA2793
AES-OFBA2794
AES-OFBA2865
AES-OFBA2866
AES-XTSA2793
AES-XTSA2865
Counter DRBGA2794
Counter DRBGA2796
Counter DRBGA2866
Counter DRBGA2868
ECDSA KeyGen (FIPS186-4)A2797
ECDSA KeyGen (FIPS186-4)A2869
ECDSA KeyVer (FIPS186-4)A2797
ECDSA KeyVer (FIPS186-4)A2869
ECDSA SigGen (FIPS186-4)A2797
ECDSA SigGen (FIPS186-4)A2869
ECDSA SigVer (FIPS186-4)A2797
ECDSA SigVer (FIPS186-4)A2869
HMAC-SHA-1A2797
HMAC-SHA-1A2869
HMAC-SHA2-224A2797
HMAC-SHA2-224A2869
HMAC-SHA2-256A2797
HMAC-SHA2-256A2798
HMAC-SHA2-256A2869
HMAC-SHA2-256A2870
HMAC-SHA2-384A2795
HMAC-SHA2-384A2797
HMAC-SHA2-384A2867
HMAC-SHA2-384A2869
HMAC-SHA2-512A2795
HMAC-SHA2-512A2797
HMAC-SHA2-512A2867
HMAC-SHA2-512A2869
HMAC-SHA2-512/256A2795
HMAC-SHA2-512/256A2797
HMAC-SHA2-512/256A2867
HMAC-SHA2-512/256A2869
RSA SigGen (FIPS186-4)A2797
RSA SigGen (FIPS186-4)A2869
RSA SigVer (FIPS186-4)A2797
RSA SigVer (FIPS186-4)A2869
SHA-1A2797
SHA-1A2869
SHA2-224A2797
SHA2-224A2869
SHA2-256A2797
SHA2-256A2798
SHA2-256A2869
SHA2-256A2870
SHA2-384A2795
SHA2-384A2797
SHA2-384A2867
SHA2-384A2869
SHA2-512A2795
SHA2-512A2797
SHA2-512A2867
SHA2-512A2869
SHA2-512/256A2795
SHA2-512/256A2797
SHA2-512/256A2867
SHA2-512/256A2869

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

flowchart LR
  %% Deterministic review-risk graph for Apple corecrypto Module v12.0 [Apple silicon, Kernel, Software, SL1]
  %% 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<br/>update</i>"]
    C3["[low] Self-test / status surface<br/>(referenced in text)<br/><i>Status Output<br/>Self-test<br/>Show Status</i>"]
    C5["[low] Protocol / secure-channel<br/>references (may be KDF<br/>names, not a live channel)<br/><i>IKEV<br/>IPSEC<br/>HTTPS</i>"]
    C6["[low] Operating system / runtime<br/>referenced (boundary<br/>membership not asserted)<br/><i>operating system<br/>kernel<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 Apple corecrypto Module v12.0 [Apple silicon, Kernel, Software, SL1]
  %% 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<br/>update</i><br/>src: text:keyword"]
    C3["[low] Self-test / status surface (referenced in text)<br/><i>Status Output<br/>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>IKEV<br/>IPSEC<br/>HTTPS</i><br/>src: text:keyword"]
    C6["[low] Operating system / runtime referenced (boundary membership not asserted)<br/><i>operating system<br/>kernel<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

Apple Inc. Apple corecrypto Module v12.0 [Apple silicon, Kernel, Software, SL1] October 2024 Prepared for: Apple One Apple Park Way Cupertino, CA 95014 Prepared by: atsec information security corporation

4516 Seton Center Parkway, Suite 250

Austin, TX 78759 www.atsec.com

Page 2

Trademarks Apple’s trademarks applicable to this document are listed in https://www.apple.com/legal/intellectualproperty/trademark/appletmlist.html. Other company, product, and service names may be trademarks or service marks of others. This document may be reproduced and distributed only in its original entirely without revision.

2 of 35

Page 3
Table of Contents
#SectionPage
Page 4
List of Tables
ItemPage
Table 1 - Security Levels5
Table 2 - Tested Operational Environments6
Table 3 - Vendor Affirmed Operational Environments7
Table 4 - Modes of Operation7
Table 5 - Vendor Affirmed Algorithms7
Table 6 - Approved Algorithms10
Table 7 - Non-Approved Algorithms Not Allowed in the Approved Mode of Operation12
Table 8 - Executable Code Sets12
Table 9 - Ports and Interfaces13
Table 10 - Roles14
Table 11 - Security Function Implementations14
Table 12 - Approved Services16
Table 13 - Non-Approved Services17
Table 14 - SSPs24
Table 15 – Entropy Sources24
Table 16 - Storage Areas25
Table 17 – Pre-Operational Self-Tests26
Table 18 - Self-Tests27
Table 19- Error states28
Page 5
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 SecurityNot Applicable
8Non-invasive SecurityNot Applicable
9Sensitive Security Parameter Management1
10Self-tests1
11Life-cycle Assurance1
12Mitigation of Other AttacksNot Applicable

This document is the non-proprietary FIPS 140-3 Security Policy for Apple corecrypto Module v12.0 [Apple silicon, Kernel, Software, SL1] cryptographic module. It contains the security rules under which the module must operate and describes how this module meets the requirements as specified in FIPS PUB 140-3 (Federal Information Processing Standards Publication 140-3) for a Security Level 1 module. This document provides all tables and diagrams (when applicable) required by NIST SP 800-140B. The column names of the tables follow the template tables provided in NIST SP 800-140B. Table 1 describes the individual security areas of FIPS 140-3, as well as the Security Levels of those individual areas. Table 1 - Security Levels This document may be reproduced and distributed only in its original entirely without revision.

5 of 35

Page 6
#Operating SystemHardware PlatformProcessorPAA/Acceleration
1iPadOS 15iPad (5th generation)Apple A Series A9With and without PAA
2iPadOS 15iPad Pro 9.7-inchApple A Series A9XWith and without PAA
3iPadOS 15iPad (7th generation)Apple A Series A10 FusionWith and without PAA
4iPadOS 15iPad Pro 10.5 inchApple A Series A10X FusionWith and without PAA
5iPadOS 15iPad mini (5th generation)Apple A Series A12 BionicWith and without PAA
6iPadOS 15iPad Pro 11-inch (1st generation)Apple A Series A12X BionicWith and without PAA
7iPadOS 15iPad Pro 11-inch (2nd generation)Apple A Series A12Z BionicWith and without PAA
8iPadOS 15iPad (9th generation)Apple A Series A13 BionicWith and without PAA
9iPadOS 15iPad Air (4th generation)Apple A Series A14 BionicWith and without PAA
10iPadOS 15iPad mini (6th generation)Apple A Series A15 BionicWith and without PAA
11iPadOS 15iPad Pro 11-inch (3rd generation)Apple M Series M1With and without PAA
12iOS 15iPhone 6SApple A Series A9With and without PAA
13iOS 15iPhone 7 PlusApple A Series A10 FusionWith and without PAA
14iOS 15iPhone XApple A Series A11 BionicWith and without PAA
15iOS 15iPhone XS MaxApple A Series A12 BionicWith and without PAA
16iOS 15iPhone 11 ProApple A Series A13 BionicWith and without PAA
17iOS 15iPhone 12Apple A Series A14 BionicWith and without PAA
18iOS 15iPhone 13 Pro MaxApple A Series A15 BionicWith and without PAA
19watchOS 8Apple Watch Series S3Apple S Series S3With and without PAA
20watchOS 8Apple Watch Series S4Apple S Series S4With and without PAA
21watchOS 8Apple Watch Series S5Apple S Series S5With and without PAA
22watchOS 8Apple Watch Series S6Apple S Series S6With and without PAA
23watchOS 8Apple Watch Series S7Apple S Series S7With and without PAA
24tvOS 15Apple TV 4KApple A Series A10X FusionWith and without PAA
25tvOS 15Apple TV 4K (2nd generation)Apple A Series A12 BionicWith and without PAA
26T2OS 12Apple Security Chip T2Apple T Series T2With and without PAA
27macOS 12 MontereyMacBook Pro (13-inch, M1, 2020)Apple M Series M1With and without PAA
28macOS 12 MontereyMacBook Pro 14-inchApple M Series M1 ProWith and without PAA
29macOS 12 MontereyMacBook Pro 16-inchApple M Series M1 MaxWith and without PAA
#Operating SystemHardware Platform
1iPadOS 15iPad Pro 12.9-inch
2iPadOS 15iPad (6th generation)
3iPadOS 15iPad Pro 12.9-inch (2nd generation)
4iPadOS 15iPad Air (3rd generation)
5iPadOS 15iPad (8th generation)
2 Cryptographic Module Specification

The Apple corecrypto Module v12.0 [Apple silicon, Kernel, Software, SL1] cryptographic module (hereafter referred to as “the module”) is a Software module running on a multi-chip standalone general-purpose computing platform. The version of module is 12.0. The module provides implementations of low-level Monterey) Security Framework and Common Crypto.

2.1 Tested Operational Environments

Table 2 - Tested Operational Environments

2.2 Vendor-affirmed Operational Environments

This document may be reproduced and distributed only in its original entirely without revision.

6 of 35

Page 7
#Operating SystemHardware Platform
6iPadOS 15iPad Pro 12.9-inch (3rd generation)
7iPadOS 15iPad Pro 12.9-inch (4th generation)
8iPadOS 15iPad Pro 12.9-inch (5th generation)
9iOS 15iPhone SE
10iOS 15iPhone 6S Plus
11iOS 15iPhone 7
12iOS 15iPhone 8
13iOS 15iPhone 8 Plus
14iOS 15iPhone XS
15iOS 15iPhone XR
16iOS 15iPhone 11
17iOS 15iPhone 11 Pro Max
18iOS 15iPhone SE (2nd generation)
19iOS 15iPhone 12 mini
20iOS 15iPhone 12 Pro
21iOS 15iPhone 12 Pro Max
22iOS 15iPhone 13 mini
23iOS 15iPhone 13
24iOS 15iPhone 13 Pro
25watchOS 8Apple Watch SE
26macOS 12 MontereyMacBook Air
27macOS 12 MontereyMac mini
28macOS 12 MontereyiMac (24-inch)
NameDescriptionTypeStatus Indicator
Approved modeApproved mode of operation is entered when the module utilizes the services that use the security functions listed in the Table 5 and Table 6.Approved modereturn a '1' from fips_allowed_mode() for block cipher functions and fips_allowed() for all other services to indicate the executed cryptographic algorithm was approved
Non- Approved modeNon-Approved mode of operation is entered when the module utilizes non-approved security functions in Table 7.Non- Approved modereturn a '0' from fips_allowed_mode() for block cipher functions and fips_allowed() for all other services to indicate the executed cryptographic algorithm was non-approved
AlgorithmAlgorithm PropertiesUse / Function
CKG [SP800-133r2] (asymmetric)Vendor affirmedCryptographic key Generation for ECDSA key pair; FIPS 140-3 IG D.H and SP800-133r2 section 4 example 1

The CMVP makes no statement as to the correct operation of the module or the security strengths of the generated keys when so ported if the specific operational environment is not listed on the validation certificate. the service utilized. The table below provides a summary of the implementation. This document may be reproduced and distributed only in its original entirely without revision.

7 of 35

Page 8
CAVP Cert.Algorithm and StandardMode / MethodDescription / Key Size(s) / Key Strength(s)Use / Function
A2793, A2865AESCBCKey Size / Key Strength: 128, 192, 256Symmetric Encryption
(asm_arm)[FIPS 197] [SP 800-38A]bitsand Decryption
A2794, A2866 (c_asm)AESCBCKey Size / Key Strength: 128, 192, 256Symmetric Encryption
[FIPS 197] [SP 800-38A]bitsand Decryption
A2796, A2868AESCCMKey Size / Key Strength: 128, 192, 256Symmetric Encryption
(vng_asm)[FIPS 197] [SP 800-38A] [SP 800-38C] [SP 800-38D]bitsand Decryption
A2793, A2865AESCFB128Key Size / Key Strength: 128, 192, 256Symmetric Encryption
(asm_arm)[FIPS 197] [SP 800-38A]bitsand Decryption
A2794, A2866 (c_asm)AESCFB128Key Size / Key Strength: 128, 192, 256Symmetric Encryption
[FIPS 197] [SP 800-38A]bitsand Decryption
A2794, A2866 (c_asm)AESCFB8Key Size / Key Strength: 128, 192, 256Symmetric Encryption
[FIPS 197] [SP 800-38A]bitsand Decryption
A2794, A2866 (c_asm)AESCTRKey Size / Key Strength: 128, 192, 256Symmetric Encryption
[FIPS 197] [SP 800-38A]bitsand Decryption
A2796, A2868AESCTRKey Size / Key Strength: 128, 192, 256Symmetric Encryption
(vng_asm)[FIPS 197] [SP 800-38A] [SP 800-38C] [SP 800-38D]bitsand Decryption
A2793, A2865AESECBKey Size / Key Strength: 128, 192, 256Symmetric Encryption
(asm_arm)[FIPS 197] [SP 800-38A]bitsand Decryption
A2794, A2866 (c_asm)AESECBKey Size / Key Strength: 128, 192, 256Symmetric Encryption
[FIPS 197] [SP 800-38A]bitsand Decryption
A2796, A2868AESECBKey Size / Key Strength: 128, 192, 256Symmetric Encryption
(vng_asm)[FIPS 197] [SP 800-38A]bitsand Decryption
2.5 Approved Algorithms

The table below lists all Approved or Vendor-affirmed security functions of the module, including specific key size(s) employed for approved services, and implemented modes of operation. This document may be reproduced and distributed only in its original entirely without revision.

8 of 35

Page 9
CAVP Cert.Algorithm and StandardMode / MethodDescription / Key Size(s) / Key Strength(s)Use / Function
A2796, A2868AESGCMKey Size / Key Strength: 128, 192, 256Symmetric Encryption
(vng_asm)[FIPS 197] [SP 800-38A] [SP 800-38C] [SP 800-38D]bitsand Decryption
A2793, A2865AESOFBKey Size / Key Strength: 128, 192, 256Symmetric Encryption
(asm_arm)[FIPS 197] [SP 800-38A]bitsand Decryption
A2794, A2866 (c_asm)AESOFBKey Size / Key Strength: 128, 192, 256Symmetric Encryption
[FIPS 197] [SP 800-38A]bitsand Decryption
A2793, A2865AESXTSKey Size / Key Strength: 128, 256 bitsSymmetric Encryption
(asm_arm)[FIPS 197] [SP 800-38E]and Decryption
A2794, A2866 (c_asm)KTS (AES)AES-KWKey Size / Key Strength: 128, 192, 256Key Wrapping
[SP 800-38F]bits
A2794, A2866 (c_asm)DRBGCTR_DRBG: AES-128,Key Size / Key Strength: 128, 256 bitsRandom Number
[SP800-90ARev1]AES-256Derivation Function Enabled, No Prediction ResistanceGeneration
A2796, A2868DRBGCTR_DRBG: AES-128,Key Size / Key Strength: 128, 256 bitsRandom Number
(vng_asm)[SP800-90ARev1]AES-256Derivation Function Enabled, No Prediction ResistanceGeneration
A2797, A2869 (vng_ltc)RSAPKCS#1 v1.5 and PKCSKey Size: 2048, 3072, 4096 bitsDigital Signature
[FIPS 186-4]PSSKey Strength: from 112 to 150 bitsGeneration
A2797, A2869 (vng_ltc)RSAPKCS#1 v1.5 and PKCSKey Size: 1024 (legacy), 2048, 3072,Digital Signature
[FIPS 186-4]PSS4096 bits Key Strength: from 80 to 150 bitsVerification
A2797, A2869 (vng_ltc)ECDSAKey Pair GenerationCurve: P-224, P-256, P-384, P-521Asymmetric Key
ANSI X9.62(CKG) using method inKey Strength: from 112 to 256 bitsGeneration
[FIPS 186-4]Section 4 example 1 of SP 800-133r2. [FIPS 186-4] Appendix B.4.2 Testing Candidates
A2797, A2869 (vng_ltc)ECDSAN/ACurve: P-224, P-256, P-384, P-521 bitsAsymmetric Key
ANSI X9.62 [FIPS 186-4]Key Strength: from 112 to 256 bitsValidation
A2797, A2869 (vng_ltc)ECDSASHA2-224, SHA2-256,Curve: P-224, P-256, P-384, P-521 bitsDigital Signature
ANSI X9.62 [FIPS 186-4]SHA2-384, SHA2-512Key Strength: from 112 to 256 bitsGeneration
A2797, A2869 (vng_ltc)ECDSASHA1 (legacy), SHA2-Curve: P-224, P-256, P-384, P-521 bitsDigital Signature
ANSI X9.62224, SHA2-256, SHA2-Key Strength: from 112 to 256 bitsVerification
[FIPS 186-4]384, SHA2-512
A2797, A2869 (vng_ltc)SHS [FIPS 180-4]SHA-1N/AMessage Digest

This document may be reproduced and distributed only in its original entirely without revision.

9 of 35

Page 10
CAVP Cert.Algorithm and StandardMode / MethodDescription / Key Size(s) / Key Strength(s)Use / Function
A2797, A2869 (vng_ltc)SHS [FIPS 180-4]SHA-224N/AMessage Digest
A2797, A2869 (vng_ltc)SHS [FIPS 180-4]SHA-256N/AMessage Digest
A2797, A2869 (vng_ltc)SHS [FIPS 180-4]SHA-384N/AMessage Digest
A2797, A2869 (vng_ltc)SHS [FIPS 180-4]SHA-512N/AMessage Digest
A2797, A2869 (vng_ltc)SHS [FIPS 180-4]SHA-512/256N/AMessage Digest
A2795, A2867 (c_ltc)SHS [FIPS 180-4]SHA-384N/AMessage Digest
A2795, A2867 (c_ltc)SHS [FIPS 180-4]SHA-512N/AMessage Digest
A2795, A2867 (c_ltc)SHS [FIPS 180-4]SHA-512/256N/AMessage Digest
A2798, A2870SHSSHA-256 for all CPUs inN/AMessage Digest
(vng_neon)[FIPS 180-4]Table 2 except S3)
A2797, A2869 (vng_ltc)HMACSHA-1Key Size: 128 - 262144 bitsMessage
[FIPS 198]Key Strength: 128 bitsauthentication (MAC)
A2797, A2869 (vng_ltc)HMACSHA-224Key Size: 224 - 262144 bitsMessage
[FIPS 198]Key Strength: 224 bitsauthentication (MAC)
A2797, A2869 (vng_ltc)HMACSHA-256Key Size: 256 - 262144 bitsMessage
[FIPS 198]Key Strength: 256 bitsauthentication (MAC)
A2797, A2869 (vng_ltc)HMACSHA-384Key Size: 384 - 262144 bitsMessage
[FIPS 198]Key Strength: 384 bitsauthentication (MAC)
A2797, A2869 (vng_ltc)HMACSHA-512Key Size: 512 - 262144 bitsMessage
[FIPS 198]Key Strength: 512 bitsauthentication (MAC)
A2797, A2869 (vng_ltc)HMACSHA-512/256Key Size: 512 - 262144 bitsMessage
[FIPS 198]Key Strength: 256 bitsauthentication (MAC)
A2795, A2867 (c_ltc)HMACSHA-384Key Size: 384 - 262144 bitsMessage
[FIPS 198]Key Strength: 384 bitsauthentication (MAC)
A2795, A2867 (c_ltc)HMACSHA-512Key Size: 512 - 262144 bitsMessage
[FIPS 198]Key Strength: 512 bitsauthentication (MAC)
A2795, A2867 (c_ltc)HMACSHA-512/256Key Size: 512 - 262144 bitsMessage
[FIPS 198]Key Strength: 256 bitsauthentication (MAC)
A2798, A2870HMACSHA-256 (for all CPUsKey Size: 256 - 262144 bitsMessage
(vng_neon)[FIPS 198]in Table 2 except S3)Key Strength: 256 bitsauthentication (MAC)

Table 6 - Approved Algorithms This document may be reproduced and distributed only in its original entirely without revision.

10 of 35

Page 11
Algorithm/FunctionsUse / Function
RSA Signature GenerationPKCS#1 v1.5 and PSS Signature Generation Key Size < 2048
RSA Signature VerificationPKCS#1 v1.5 and PSS Signature Verification Key Size < 1024
RSA Key WrappingOAEP, PKCS#1 v1.5 and -PSS schemes
Ed25519Key Agreement Key Generation Signature Generation Signature Verification
ANSI X9.63 KDFHash based Key Derivation Function
RFC6637Key Derivation Function
HKDF [SP800-56C]Key Derivation Function
DESEncryption / Decryption Key Size 56-bits
CAST5Encryption / Decryption Key Sizes 40 to 128-bits in 8-bit increments
AES-GCM using external IVAuthenticated Encryption / Decryption
RC4Encryption / Decryption Key Sizes 8 to 4096-bits
RC2Encryption / Decryption Key Sizes 8 to 1024-bits
MD2Message Digest Digest size 128-bit
MD4Message Digest Digest size 128-bit
MD5Message Digest Digest size 128-bit
RIPEMDMessage Digest Digest size 160-bits
ECDSAPKG: Curve P-192 with security strength of 96 bits PKV: Curve P-192 Signature Generation: Curve P-192 Signature Verification: Curve P-192 Key Pair Generation for compact point representation of points
Integrated Encryption Scheme on elliptic curves (ECIES)Hybrid Encryption scheme
BlowfishEncryption / Decryption
OMAC (One-Key CBC MAC)MAC generation / verification

2.6 Non-Approved Algorithms Allowed in the Approved Mode of Operation

There are no non-Approved but “Allowed functions” with security claimed algorithms in approved mode.

2.7 Non-Approved Algorithms Allowed in the Approved Mode of Operation with No

Security Claimed There are no non-Approved Allowed functions with no security claimed algorithms in approved mode.

2.8 Non-Approved Algorithms Not Allowed in the Approved Mode of Operation

The table below lists the non-Approved algorithms and security functions that are used in the non-Approved mode of operation: This document may be reproduced and distributed only in its original entirely without revision.

11 of 35

Page 12
Algorithm/FunctionsUse / Function
Triple-DES [SP 800-67]Encryption/Decryption with modes CBC, ECB
Package/File NamesSoftware VersionIntegrity Test Implemented
corecrypto-1217.40.1112.0HMAC-SHA-256

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

2.9 Module components

Table 8 - Executable Code Sets The module cryptographic boundary is delineated by the dotted green rectangle in the Figure

  1. The Apple corecrypto Module v12.0 [Apple silicon, Kernel, Software, SL1] executes within the kernel space of the computing platforms and operating systems listed in Table 2 - Tested Operational Environments. In the block diagram below, the Kernel Extension (KEXT) is a bundle that performs low-level tasks. KEXTs run in kernel space, which gives them elevated privileges and the ability to perform tasks that user-space apps can’t. The tested operational environment’s physical perimeter (TOEPP) is represented by the most exterior black line in the block diagram Figure
  2. Figure 1 - Block diagram This document may be reproduced and distributed only in its original entirely without revision.

12 of 35

Page 13
Physical PortsLogical Interface1Data that passes over port/interface
As a software-only module, the module does not have physical ports. Physical Ports are interpreted to be the physical ports of the hardware platform on which it runsData InputData inputs are provided in the variables passed in the KPI and callable service invocations, generally through caller-supplied buffers
Data OutputData outputs are provided in the variables passed in the KPI and callable service invocations, generally through caller-supplied buffers
Control InputControl inputs which control the mode of the module are provided through dedicated parameters, namely the kernel module plist whose information is supplied to the module by the kernel module loader.
Status OutputStatus output is provided in return codes and through messages. Documentation for each KPI lists possible return codes. A complete list of all return codes returned by the C language KPIs within the module is provided in the header files and the KPI documentation. Messages are also documented in the KPI documentation.
3 Cryptographic Module Interfaces

interfaces are described in (Table 9 ): Table 9 - Ports and Interfaces The module is optimized for library use within the Device OS kernel space and does not contain any terminating assertions or exceptions. It is implemented as a Device OS dynamically loadable library. The dynamically loadable library is loaded into the Device OS kernel and its cryptographic functions are made available to Device OS kernel services only. Any internal error detected by the module is returned to the caller with an appropriate return code. The calling Device OS kernel service must examine the return code and act accordingly. The module communicates any error status synchronously through the use of its documented return codes, thus Caller-induced or internal errors do not reveal any sensitive material to callers. This document may be reproduced and distributed only in its original entirely without revision.

13 of 35

Page 14
NameTypeOperator TypeAuthentication Method
Crypto OfficerRoleCOImplicit
NameTypeDescriptionSF PropertiesAlgorithm Properties
KTSKTSSP 800-38F, IG D.G. AES Key Wrapping and Unwrapping128, 192, and 256-bit AES keys providing 128, 192, or 256 bits of encryption strengthAES-KW/ A2794, A2866
NameDescriptionIndicatorInputsOutputsApproved Security FunctionsRolesAccess rights to Keys and/ or SSPs
Symmetric EncryptionExecutes AES- mode encrypt operation1AES key, plaintext dataciphertext dataAES-CBC, AES-CCM, AES-CFB128, AES- CFB8, AES-CTR, AES- ECB, AES-GCM, AES- OFB, AES-XTSCOW, E
Symmetric DecryptionExecutes AES- mode decrypt operation1AES key, ciphertext dataplaintext dataAES-CBC, AES-CCM, AES-CFB128, AES- CFB8, AES-CTR, AES- ECB, AES-GCM, AES- OFB, AES-XTSCOW, E

The module supports a single instance of one authorized role: The Crypto Officer. No support is provided for multiple concurrent operators. Table 10 - Roles FIPS 140-3 does not require an authentication mechanism for level 1 modules. Therefore, the module does not support an authentication mechanism for Crypto Officer. The Crypto Officer role is authorized to access all services provided by the module (see Table 12 - Approved Services and Table 13 - Non-Approved Services below).

4.3 Services

Table 11 - Security Function Implementations The module implements a dedicated KPI function to indicate if a requested service utilizes an approved security function. For services listed in Table 12 - Approved Services, the indicator function returns 1 to indicate that the security function is approved. This document may be reproduced and distributed only in its original entirely without revision.

14 of 35

Page 15
NameDescriptionIndicatorInputsOutputsApproved Security FunctionsRolesAccess rights to Keys and/ or SSPs
AES Key WrappingExecutes AES- key wrapping operation1AES key wrapping key, unwrapped keyAES-KWCOW, E
AES Key UnwrappingExecutes AES- key unwrapping operation1AES key wrapping key,unwrapped keyAES-KWCOW, E
Message Digest GenerationGenerate a digest for the requested algorithm1Messagemessage digestSHA-1, SHA-224, SHA- 256, SHA-384, SHA- 512, SHA-512/256CON/A
Message Authentication Code (MAC) GenerationGenerate a Message Authentication Code1HMAC key, MAMACHMAC-SHA-1, HMAC- SHA-224, HMAC-SHA- 256, HMAC-SHA-384, HMAC-SHA-512, HMAC-SHA-512/256COW, E
algorithm,message
Signature generation (RSA)Sign a message with a specified RSA private key1RSA private key algorithmcomputed signatureRSA SigGenCOW, E
Signature verification (RSA)Verify the signature of a message with a specified RSA public key1RSA public key, digitalpass/fail result ofRSA SigVerCOW, E
signature, messagedigital signature
hash algorithmverification
Signature generation (ECDSA)Sign a message with a specified ECDSA private key1ECDSA private key,computed signatureECDSA SigGenCOW, E
Signature verification (ECDSA)Verify the signature of a message with a specified ECDSA public key1ECDSA public key, digital signature, message, hash algorithmpass/fail result of digital signature verificationECDSA SigVerCOW, E
Random number generationGenerate Random number1Output lengthRandom bit-stringCTR_DRBG (Entropy Input, DRBG seed, Internal state V value and key)COE/ G, W, E / G, W, E
key pair generation (ECDSA)Generate a keypair for a requested elliptic curve1key sizeECDSA Key PairECDSA KeyGen, CKGCOG, R
Public key validation (ECDSA)Verify a public key for a requested elliptic curve1ECDSA public keypass/fail result of key pair verificationECDSA KeyVerCOE, W
ZeroizationRelease all resources of symmetric crypto function context1N/AN/AN/ACOZ

This document may be reproduced and distributed only in its original entirely without revision.

15 of 35

Page 16
NameDescription Release all resources of hash context Release of all resources of asymmetric crypto function contextIndicator 1 1Inputs N/A N/AOutputs N/A N/AApproved Security Functions N/A N/ARoles CO COAccess rights to Keys and/ or SSPs Z Z
Self-testExecute the CASTs1Nonepass/fail results of self- testsAlgorithms listed in table Conditional self- testCON/A
Show StatusReturn the module statusNoneNonestatus outputN/ACON/A
Show Module InfoReturn Module Base Name and Module Version NumberNoneNonename and version informationN/ACON/A
ServiceDescriptionAlgorithms AccessedRole
Triple-DES encryption / decryptionTDES-CBC, TDES-ECBTriple-DESCO
RSA Key WrappingThe CAST does not perform the full KTS, only the raw RSA encrypt/ decrypt.RSA encrypt/decryptCO
RSA Signature GenerationPKCS#1 v1.5 and PSS Signature Generation Key Size < 2048RSA Signature GenerationCO
RSA Signature VerificationPKCS#1 v1.5 and PSS Signature Verification Key Size < 1024RSA Signature VerificationCO
ECDSA Key-pair Generation (PKG) and ECDSA Key Validation (PKV)ECDSA PKG and PKV using curve P-192ECDSA Key Generation, ECDSA Key ValidationCO
ECDSA Signature GenerationECDSA Signature Generation using curve P-192ECDSA Signature GenerationCO
ECDSA Signature VerificationECDSA Signature Verification using curve P-192ECDSA Signature VerificationCO

Table 12 - Approved Services G = Generate: The module generates or derives the SSP. R = Read: The SSP is read from the module (e.g., the SSP is output). W = Write: The SSP is updated, imported, or written to the module. E = Execute: The module uses the SSP in performing a cryptographic operation. Z = Zeroise: The module zeroises the SSP. N/A= The service does not access any SSP during its operation This document may be reproduced and distributed only in its original entirely without revision.

16 of 35

Page 17
ServiceDescriptionAlgorithms AccessedRole
ECDSA Key Pair Generation for compact point representation of pointsKey Pair Generation for compact point representation of pointsECDSA Key GenerationCO
Ed25519 Key GenerationEd25519 Key GenerationEd25519 Key GenerationCO
Ed25519 Signature GenerationEdDSA Signature Generation over Curve25519Ed25519 Sig GenerationCO
Ed25519 Signature VerificationEdDSA Signature Verification over Curve25519Ed25519 Sig VerificationCO
Ed25519 Key AgreementEd25519 Key AgreementEd25519 Key AgreementCO
ECIESElliptic Curve encryptECIES EncryptCO
ANSI X9.63 Key DerivationSHA-1 hash-based key derivation functionSHA-1CO
SP800-56C Key Derivation (HKDF)SHA-256 hash-based key derivation functionSHA-256CO
RFC 6637 Key DerivationSHA hash based key derivation functionSHA-256, SHA-512, AES-128, AES-256CO
OMAC Message Authentication Code Generation and VerificationOne-Key CBC MAC using 128-bit keyOMACCO
Message digest generation.Message digest generation using non-approved algorithmsMD2, MD4, MD5, RIPEMDCO
Authenticated Encryption / decryptionEncrypt a plaintext / Decrypt a ciphertextAES-GCM using external IVCO
(other) symmetric encryption / decryptionsymmetric encryption / decryption using non-approved algorithmsBlowfish, CAST5, DES, RC2, RC4CO

Table 13 - Non-Approved Services This document may be reproduced and distributed only in its original entirely without revision.

17 of 35

Page 18
5 Software/Firmware security
5.1 Integrity Techniques

The Apple corecrypto Module v12.0 [Apple silicon, Kernel, Software, SL1], which is made up of a single component, is provided in the form of binary executable code. A software integrity test is performed on the runtime image of the module. The HMAC-SHA256 implemented in the module is used as the approved algorithm for the integrity test. If the test fails, the module enters an error state where no cryptographic services are provided, and data output is prohibited i.e., the module is not operational.

5.2 On-Demand Integrity Test

Integrity test is performed as part of the Pre-Operational Self-Tests. It is automatically executed at power-on. Integrity test on demand is performed by power-cycling the computing platform . This document may be reproduced and distributed only in its original entirely without revision.

18 of 35

Page 19
6 Operational Environment

The Apple corecrypto Module v12.0 [Apple silicon, Kernel, Software, SL1] operates in a modifiable operational environment per FIPS 140-3 level 1 specifications. The module is supplied as part of Device OS, a commercially available general-purpose operating system executing on the computing platforms specified in section 2. This document may be reproduced and distributed only in its original entirely without revision.

19 of 35

Page 20
7 Physical Security

The FIPS 140-3 physical security requirements do not apply to the Apple corecrypto Module v12.0 [Apple silicon, Kernel, Software, SL1], since it is a software module. This document may be reproduced and distributed only in its original entirely without revision.

20 of 35

Page 21
8 Non-invasive Security

Currently, the ISO/IEC 19790:2012 non-invasive security area is not required by FIPS 140-3 (see NIST SP 800140F). The requirements of this area are not applicable to the module. This document may be reproduced and distributed only in its original entirely without revision.

21 of 35

Page 22
Key/ SSP Name / TypeStrengthSecurity Function and Cert. NumberGenerationImpor t/ ExportEstab lishm entStorageZeroisationUse and related keys
AES Key / CSP128 to 256 bitsAES-CBC (A2792, A2794, A2865, A2866) AES-CCM (A2796, A2868) AES-CFB128 (A2793, A2794, A2865, A2866) AES-CFB8 (A27494, A2866) AES-CTR (A2794, A2796, A2866, A2868) AES-ECB (A2793, A2794, A2796, A2865, A2866, A2868) AES-GCM (A2796, A2868) AES-OFB (A2794, A2866) AES-XTS (A2793, A2865)N/AImport from calling applicat ion No ExportN/ARAMAutomatic zeroisation when structure is deallocated or when the system is powered downUse: Symmetric Encryption and Decryption Related keys: N/A
AES Key- wrapping key / CSP128 to 256 bitsAES-KW (A2794, A2866)N/AImport from calling applicat ion No ExportN/ARAMAutomatic zeroisation when structure is deallocated or when the system is powered downUse: Key Wrapping Related keys: N/A
HMAC Key / CSP128-256 bitsHMAC-SHA-1, HMAC-SHA-224, HMAC-SHA-256, HMAC-SHA-384, HMAC-SHA-512, HMAC-SHA- 512/256 (A2797, A2869, A2795, A2867, A2798, A2870)N/AImport from calling applicat ion No ExportN/ARAMAutomatic zeroisation when structure is deallocated or when the system is powered downUse: Message authenticati on code generation (HMAC) Related keys: N/A
ECDSA public key (including intermediate keygen values) PSP112 to 256 bitsECDSA KeyGen (A2797, A2869)The key pairs are generated conformant to SP800-133r2 (CKG) using FIPS186-4 KeyImport and Export to calling applicatN/ARAMAutomatic zeroisation when structure is deallocated or when the system is poweredUse: Digital Signature verification Related keys: DRBG internal
9 Sensitive Security Parameter Management

The following table summarizes the keys and Sensitive Security Parameters (SSPs) that are used by the cryptographic services implemented in the module: This document may be reproduced and distributed only in its original entirely without revision.

22 of 35

Page 23
Key/ SSP Name / TypeStrengthSecurity Function and Cert. NumberGenerationImpor t/ ExportEstab lishm entStorageZeroisationUse and related keys
Generation method, and the random value used in the key generation is generated using SP800- 90ARev1 DRBGion. Interme diate keygen values are not output.down. Intermediate keygen values are zeroized before the module returns from the key generation function.state, ECDSA private key
ECDSA private key (including intermediate keygen values) CSPUse: Digital Signature generation Related keys: DRBG internal state, ECDSA public key
RSA public key / PSP112 to 150 bitsRSA SigGen, RSA SigVer (A2797, A2869)N/AImport from calling applicat ion No Export.N/ARAMAutomatic zeroisation when structure is deallocated or when the system is powered down.Use: Digital Signature verification Related keys: DRBG internal state, RSA private key
RSA private key / CSPUse: Digital Signature generation Related keys: DRBG internal state, RSA public key
DRBG Entropy Input / CSP (IG D.L)256 bitsRandom Number Generation E14, E15 (see PUD referenced in section 11.2)Obtained from two entropy sourcesN/AN/ARAMWhen the system is powered downUse Random Number Generation Related keys: DRBG seed
DRBG Seed / CSP (IG D.L)256 bitsCTR_DRBG (A2797, A2869, A2796, A2868, A2795, A2867, A2794, A2866)Derived from entropy input string as defined by SP800- 90ARev1N/AN/ARAMWhen the system is powered downUse Random Number Generation Related keys: DRBG entropy input, DRBG internal state
DRBG internal state: V value and Key / CSP (IG D.L)256 bitsCTR_DRBG (A2797, A2869, A2796, A2868, A2795, A2867, A2794, A2866)Derived from seed as defined by SP800- 90Arev1N/AN/ARAMWhen the system is powered downUse: Random Number Generation Related keys: DRBG seed

This document may be reproduced and distributed only in its original entirely without revision.

23 of 35

Page 24
NameMinimum number of bits of entropyConditioning Components (CAVP number if vetted)
ESV Cert #E14: Apple corecrypto physical entropy source256 bitsThe entropy source consists of twenty-four Free Ring Oscillator (FROs) with a vetted conditioning function SHA- 256 (ACVP cert. # C1223)
ESV Cert #E15: Apple corecrypto non-physical entropy source256 bitsThe non-physical entropy source is based upon interrupt timings with a vetted conditioning function SHA-256 (ACVP certs. # A2797, A2869
9.1 Random Number Generation

A NIST approved deterministic random bit generator based on a block cipher as specified in NIST [SP 80090ARev1] is used. The DRBG is a CTR_DRBG using AES-256 with derivation function and without prediction resistance. The random numbers used for key generation are all generated by CTR_DRBG in this module. Per section 10.2.1.1 of [SP 800-90ARev1], the internal state of CTR_DRBG is the value V and Key. The module performs DRBG health tests according to section 11.3 of [SP800-90Arev1]. The module also performs DRBG health tests according to section 11.3 of [SP800-90ARev1]. No non-DRBG functions or instances are able to access the DRBG internal state The deterministic random bit generators are seeded by “read_random”. The read_random is the kernel space interface. Two entropy sources (one non-physical entropy source and one physical entropy source) residing within the TOEPP provide the random bits. The output of entropy pool provides 256-bits of entropy to seed and reseed SP800-90ARev1 DRBG during initialization (seed) and reseeding (reseed). Table 15 – Entropy Sources

9.2 Key/SSP Generation

The module generates Keys and SSPs in accordance with FIPS 140-3 IG D.H. The cryptographic module performs Cryptographic Key Generation (CKG) for asymmetric (ECDSA) keys as per [SP800-133r2] section 4 example 1 (vendor affirmed), compliant with [FIPS186-4], and using DRBG compliant with [SP800-90ARev1]. A seed (i.e., the random value) used in asymmetric key generation is obtained from [SP800-90ARev1] DRBG. The key generation service for ECDSA as well as the [SP 800-90ARev1] DRBG have been ACVT tested with algorithm certificates found in Table 6.

9.3 Keys/SSPs Establishment

The module provides the following key/SSP establishment services in the Approved mode: • AES-Key Wrapping: The module implements a Key Transport Scheme (KTS) using AES-KW compliant to [SP800-38F], IG D.G. The SSP establishment methodology provides between 128 and 256 bits of encryption strength.

9.4 Keys/SSPs Import/Export

All keys and SSPs that are entered from, or output to module, are entered from or output to the invoking application running on the same device. Keys/ SSPs entered into the module are electronically entered in plain text form. The module only outputs ECDSA keys in plain text form when key generation service is requested by the calling application. This document may be reproduced and distributed only in its original entirely without revision.

24 of 35

Page 25
NameDescriptionPersistence Type
RAMThe module stores ephemeral keys/SSPs in RAM provided by the operational environment. They are received for use or generated by the module only at the command of the calling application. The operating system protects all keys/SSPs through the memory separation and protection mechanisms. No process other than the module itself can access the keys/SSPs in its process’ memory.dynamic

Table 16 - Storage Areas Keys and SSPs are explicitly zeroised when the appropriate context object is destroyed or when the system is powered down. Input and output interfaces are inhibited while zeroisation is performed. This document may be reproduced and distributed only in its original entirely without revision.

25 of 35

Page 26
AlgorithmTest PropertiesTest MethodTypeIndicatorDetails
HMAC-SHA-256112-bit keyMessage AuthenticationSoftwar e IntegrityModule successful executionThe HMAC value of the runtime image is recalculated and compared with the stored HMAC value pre-computed at compilation time
AlgorithmTest PropertiesTest MethodTypeIndicatorDetailsCondition
AES-CBC AES-XTS AES-ECB128-bit keyKATCASTModule becomes operationalEncryptionTest runs at Power-on before the integrity test
AES-CBC AES-ECB128-bit keyKATCASTModule becomes operationalDecryptionTest runs at Power-on before the integrity test
AES-CCM128-bit keyKATCASTModule becomes operationalAuthenticated encryptionTest runs at Power-on before the integrity test
AES-CCM AES-GCM128-bit keyKATCASTModule becomes operationalAuthenticated decryptionTest runs at Power-on before the integrity test
CTR_DRBGAES 128-bit keyKATCASTModule becomesKAT and Health test per SP800-90Arev1 sectionTest runs at Power-on before the integrity
10 Self-tests

While the module is executing the self-tests, services are not available, and input and output are inhibited. If the test fails either pre-operational and conditional self-tests, the module reports an error message indicating the cause of the failure and enters the Error State (See section 10.3). The module permits operators to initiate the pre-operational and conditional self-tests on demand and periodic testing of the module by rebooting the system (i.e., power-cycling). The module performs a pre-operational software integrity test automatically when the module is loaded into performed on the runtime image of the Apple corecrypto Module v12.0 [Apple silicon, Kernel, Software, SL1] with HMAC-SHA256 which is an approved integrity technique. Prior to using HMAC-SHA-256, a Conditional Cryptographic Algorithm Self-Tests (CASTs) is performed. Table 17 – Pre-Operational Self-Tests

10.2 Conditional Self-Tests

10.2.1Conditional Cryptographic Algorithm Self-Tests In addition to the pre-operational software integrity test described in Section 10.1, the module runs the CASTs for all cryptographic functions of each approved cryptographic algorithm implemented by the module each time This document may be reproduced and distributed only in its original entirely without revision.

26 of 35

Page 27
AlgorithmTest PropertiesTest MethodTypeIndicator operationalDetails 11.3Condition test
HMAC-SHA256SHA2-256KATCASTModule becomes operationalCAST is performed prior to module’s pre-operational software integrity testTest runs at Power-on before the integrity test
HMAC-SHA-1SHA-1KATCASTModule becomes operationalMACTest runs at Power-on before the integrity test
HMAC-SHA-512SHA-512KATCASTModule becomes operationalMACTest runs at Power-on before the integrity test
SHA-1 SHA-256 SHA-512CAST is covered by higher level HMAC KAT per IG 10.3.BKATCASTModule becomes operationalMessage digestTest runs at Power-on before the integrity test
RSA Signature Generation2048-bit modulus with SHA-256KATCASTModule becomes operationalSignTest runs at Power-on before the integrity test
RSA Signature Verification2048-bit modulus with SHA-256KATCASTModule becomes operationalVerifyTest runs at Power-on before the integrity test
ECDSA Signature GenerationP-224 curve with SHA- 224KATCASTModule becomes operationalSignTest runs at Power-on before the integrity test
ECDSA Signature VerificationP-224 curve with SHA- 224KATCASTModule becomes operationalVerifyTest runs at Power-on before the integrity test

Table 18 - Self-Tests 10.2.2Conditional Pairwise Consistency Test The Apple corecrypto Module v12.0 [Apple silicon, Kernel, Software, SL1] generates ECDSA asymmetric key pairs and performs a pair-wise consistency tests on the newly generated key pairs.

10.3 Error States

If any of the self-tests described in Sections 10.1, 10.2.1 or 10.2.2 fail, the module reports the cause of the error and enters an error state. In the Error State, no cryptographic services are provided, and data output is prohibited. The only method to recover from the error state is to power cycle the device which results in the module being reloaded into memory and reperforming the pre-operational test and the Conditional algorithm self-tests. The module will only enter into the operational state after successfully passing the pre-operational self-test and the conditional self-tests. This document may be reproduced and distributed only in its original entirely without revision.

27 of 35

Page 28
State NameDescriptionConditionsRecovery MethodIndicator
Error StateThe HMAC-SHA-256 value computed over the module did not match the pre-computed valuePre-operational Software Integrity Test failuremodule resetError message “FAILED: fipspost_post_integrity” is sent to the caller
Error StateThe computed value in the invoked Conditional CAST did not match the known valueConditional CAST failuremodule resetError message “FAILED:<event>” is sent to the caller (<event> refers to any of the cryptographic functions listed in Table 18 - Self-Tests.)
Error StateThe signature failed to verify successfully in the Conditional PCT.Conditional PCT failuremodule resetError message “CCEC_GENERATE_KEY_CONSISTENCY” returned for ECDSA Key Generation

Table 19- Error states This document may be reproduced and distributed only in its original entirely without revision.

28 of 35

Page 29
11 Life-cycle assurance
11.1 Delivery and Operation

The module is built into DeviceOS defined in section 2 and delivered with Device OS. There is no standalone delivery of the module as a software library. The vendor’s internal development process guarantees that the correct version of module goes with its intended Device OS version. For additional assurance, the module is digitally signed by vendor, and it is verified during the integration into Device OS. This digital signature-based integrity protection during the delivery/integration process is not to be confused with the HMAC-256 based integrity check performed by the module itself as part of its pre-operational self-tests.

11.2 Administrator Guidance

The Approved mode of operation is configured in the system by default and can only be transitioned into the non-Approved mode by calling one of the non-Approved services listed in Table 13 - Non-Approved Services. If the device starts up successfully, then the module has passed all self-tests and is operating in the Approved mode. The ESV Public Use Document (PUD) reference for physical entropy source is: https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validationprogram/documents/entropy/E14_PublicUse.pdf The ESV Public Use Document (PUD) reference for non-physical entropy source is: https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validationprogram/documents/entropy/E15_PublicUse.pdf Apple Platform Certifications guide [platform certifications] and Apple Platform Security guide [SEC] are provided by Apple which offers IT System Administrators with the necessary technical information to ensure FIPS 140-3 Compliance of the deployed systems. This guide walks the reader through the system’s assertion of cryptographic module integrity and the steps necessary if module integrity requires remediation.

11.3 Non-Administrator Guidance
11.4 Design and Rules

The Crypto Officer shall consider the following requirements and restrictions when using the module: o AES-GCM internal IV is constructed in compliance with IG C.H scenario

  1. The GCM IV generation follows RFC 4106 and shall only be used for the IPsec protocol version
  2. When the IV in RFC 4106 exhausts the maximum number of possible values for a given security association, either party to the security association that encounters this condition triggers a rekeying with IKEv2 to establish a new encryption key for the security association. The module uses RFC 7296 compliant IKEv2 to establish the shared secret SKEYSEED from which the AES-GCM encryption keys are derived. In case the module’s power is lost and then restored, the key used for the AES GCM encryption/decryption shall be re-distributed. This condition is not enforced by the module. This protocol has not been reviewed or tested by the CAVP and CMVP. This document may be reproduced and distributed only in its original entirely without revision.

29 of 35

Page 30
11.5 End of Life

The module secure sanitization is accomplished by first powering the module down, which will zeroize all SSPs within volatile memory. Following the power-down, an uninstall by way of system wipe or system update will zeroize the binary file listed in section 2.9. This document may be reproduced and distributed only in its original entirely without revision.

30 of 35

Page 31
12 Mitigation of other attacks

The module does not claim mitigation of other attacks. This document may be reproduced and distributed only in its original entirely without revision.

31 of 35

Page 32
Table, extracted as text (did not parse into structured rows)
Appendix A.                  Glossary and Abbreviations AES                    Advanced Encryption Standard CAVP                   Cryptographic Algorithm Validation Program CAST                   Cryptographic Algorithm Self-Test CAST5                  A symmetric-key 64-bit block cipher with 128-bit key CBC                    Cipher Block Chaining CCM                    Counter with Cipher Block Chaining-Message Authentication Code CFB                    Cipher Feedback CMVP                   Cryptographic Module Validation Program CSP                    Critical Security Parameter CTR                    Counter Mode DRBG                   Deterministic Random Bit Generator ECB                    Electronic Code Book ESVP                   Entropy Source Validation Program FIPS                   Federal Information Processing Standards Publication GCM                    Galois Counter Mode HMAC                   Hash Message Authentication Code KAT                    Known Answer Test KDF                    Key Derivation Function KEXT                   Kernel Extension KW                     AES Key Wrap MAC                    Message Authentication Code KPI                    Kernel Programming Interface NIST                   National Institute of Science and Technology OFB                    Output Feedback PAA                    Processor Algorithm Acceleration PKG                    Key-Pair Generation PKV                    Public Key Validation PSS                    Probabilistic Signature Scheme PUD                    Public Use Document RSA                    Rivest, Shamir, Addleman SHA                    Secure Hash Algorithm SHS                    Secure Hash Standard TOEPP                  Tested Operational Environment Physical Perimeter XTS                    XEX-based Tweaked-codebook mode with cipher text Stealing This document may be reproduced and distributed only in its original entirely without revision.

32 of 35

Page 33
Appendix B.References
FIPS140-3FIPS PUB 140-3 - Security Requirements for Cryptographic Modules March 2019 https://doi.org/10.6028/NIST.FIPS.140-3
SP 800-140xCMVP FIPS 140-3 Related Reference https://csrc.nist.gov/Projects/cryptographic-module-validation-program/fips-140-3-standards
FIPS140-3_IGImplementation Guidance for FIPS PUB 140-3 and the Cryptographic Module Validation Program August 2023 https://csrc.nist.gov/Projects/cryptographic-module-validation-program/fips-140-3-ig-announcements
FIPS140-3_MMCMVP FIPS 140-3 Draft Management Manual https://csrc.nist.gov/CSRC/media/Projects/cryptographic-module-validation-program/documents/fips%20140- 3/Draft%20FIPS-140-3-CMVP%20Management%20Manual%2009-18-2020.pdf
SP 800-140FIPS 140-3 Derived Test Requirements (DTR) https://csrc.nist.gov/publications/detail/sp/800-140/final
SP 800-140ACMVP Documentation Requirements https://csrc.nist.gov/publications/detail/sp/800-140a/final
SP 800-140BCMVP Security Policy Requirements https://csrc.nist.gov/publications/detail/sp/800-140b/final
SP 800-140CCMVP Approved Security Functions https://csrc.nist.gov/publications/detail/sp/800-140c/final
SP 800-140DCMVP Approved Sensitive Security Parameter Generation and Establishment Methods https://csrc.nist.gov/publications/detail/sp/800-140d/final
SP 800-140ECMVP Approved Authentication Mechanisms https://csrc.nist.gov/publications/detail/sp/800-140e/final
SP 800-140FCMVP Approved Non-Invasive Attack Mitigation Test Metrics https://csrc.nist.gov/publications/detail/sp/800- 140f/final
FIPS180-4Secure Hash Standard (SHS) March 2012 http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf
FIPS186-4Digital Signature Standard (DSS) July 2013 http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf
FIPS197Advanced Encryption Standard November 2001 http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
FIPS198-1The Keyed Hash Message Authentication Code (HMAC) July 2008 http://csrc.nist.gov/publications/fips/fips198-1/FIPS-198-1_final.pdf
PKCS#1Public Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1 February 2003 http://www.ietf.org/rfc/rfc3447.txt
RFC3394Advanced Encryption Standard (AES) Key Wrap Algorithm September 2002 http://www.ietf.org/rfc/rfc3394.txt This document may be reproduced and distributed only in its original entirely without revision. 33 of 35
Page 34
RFC5649Advanced Encryption Standard (AES) Key Wrap with Padding Algorithm September 2009 http://www.ietf.org/rfc/rfc5649.txt
SP800-38ANIST Special Publication 800-38A - Recommendation for Block Cipher Modes of Operation Methods and Techniques December 2001 http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf
SP800-38CNIST Special Publication 800-38C - Recommendation for Block Cipher Modes of Operation: the CCM Mode for Authentication and Confidentiality May 2004 http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38c.pdf
SP800-38DNIST Special Publication 800-38D - Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC November 2007 http://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf
SP800-38ENIST Special Publication 800-38E - Recommendation for Block Cipher Modes of Operation: The XTS AES Mode for Confidentiality on Storage Devices January 2010 http://csrc.nist.gov/publications/nistpubs/800-38E/nist-sp-800-38E.pdf
SP800-38FNIST Special Publication 800-38F - Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping December 2012 http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf
SP800-56Cr2Recommendation for Key-Derivation Methods in Key-Establishment Schemes August 2020 https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr2.pdf
SP800-57NIST Special Publication 800-57 Part 1 Revision 5 - Recommendation for Key Management Part 1: General May 2020 https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r5.pdf
SP800-67NIST Special Publication 800-67 Revision 1 - Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher January 2012 http://csrc.nist.gov/publications/nistpubs/800-67-Rev1/SP-800-67-Rev1.pdf
SP800-90Ar1NIST Special Publication 800-90A - Revision 1 - Recommendation for Random Number Generation Using Deterministic Random Bit Generators June 2015 http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-90Ar1.pdf
SP800-90BNIST Special Publication 800-90B - Recommendation for the Entropy Sources Used for Random Bit Generation January 2018 https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-90B.pdf
SP800-108NIST Special Publication 800-108r1 - Recommendation for Key Derivation Using Pseudorandom Functions Aug 2022 https://doi.org/10.6028/NIST.SP.800-108r1
SP800-131Ar2Transitioning the Use of Cryptographic Algorithms and Key Lengths March 2019 https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar2.pdf
SP800-133r2Recommendation for Cryptographic Key Generation June 2020 https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-133r2.pdf This document may be reproduced and distributed only in its original entirely without revision. 34 of 35
Page 35

SP800-135 NIST Special Publication 800-135 Revision 1 - Recommendation for Existing Application-Specific Key Derivation Functions December 2011 http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-135r1.pdf SEC Apple Platform Security https://support.apple.com/guide/security/welcome/web https://manuals.info.apple.com/MANUALS/1000/MA1902/en_US/apple-platform-security-guide.pdf platform certifications Apple Platform Certifications https://support.apple.com/guide/certifications/welcome/web This document may be reproduced and distributed only in its original entirely without revision.

35 of 35