What EC curve is used by Apple iOS platform?
Apple's CryptKit Suite
Since Apple's actual documentation is sparse we need to look for all available source;
There is apple/swift-crypto Github page that we can find the source code and cryptokit page also provides only a list.

Swift Crypto is an open-source implementation of a substantial portion of the API of Apple CryptoKit suitable for use on Linux platforms. It enables cross-platform or server applications with the advantages of CryptoKit.


ECDH.swift implements the below standard NIST 800-186 curves

P256 + Signing
P256 + KeyAgreement
P384 + Signing
P384 + KeyAgreement
P521 + Signing
P521 + KeyAgreement
P256 + DH
P384 + DH
P521 + DH

The curves P256 (secp256r1 in SECG, prime256v1 in ANSI X9.62 and P-256 in NIST) and 384 (secp384r1) are in NSA Suite B
The Secp means: Standard for Efficient Cryptography Elliptic Curve Domain Parameters

The key derivation is HKDF

Signing

ECDSA Signing with NIST curves P256|P384|P512.
EdDSA Signing EdDSA signature over Curve25519. Not a standard naming there. I should be Ed25519.


Keys

Curve25519 key agreement


From the BoringSSL support lists

Curve25519 key agreement


For the security of these curves ( possibly a backdoor) see these questions from our site.

Should we trust the NIST-recommended ECC parameters?
Is there a feasible method by which NIST ECC curves over prime fields could be intentionally rigged?



The below from the iOS page SecKeySizes

secp192r1: 192-bit ECC Keys for Suite-B from RFC 4492 section 5.1.1.
secp256r1: 256-bit ECC Keys for Suite-B from RFC 4492 section 5.1.1.
secp384r1: 384-bit ECC Keys for Suite-B from RFC 4492 section 5.1.1.
secp521r1: 521-bit ECC Keys for Suite-B from RFC 4492 section 5.1.1.


There is also iOS-compatible ECIES implementation in Java

kSecKeyAlgorithmECIESEncryptionCofactorX963SHA256AESGCM
Little digging about the constant;

If we take a look at the corresponding constant kSecKeyAlgorithmECIESEncryptionCofactorX963SHA256AESGCM defined in SecKey.h (see here for example) then we can see that this algorithm is considered “legacy” and the recommended one is SecKeyAlgorithmECIESEncryptionCofactorVariableIVX963SHA256AESGCM instead (in Swift it’s eciesEncryptionCofactorVariableIVX963SHA256AESGCM).

and the below from darthnull.org/security


ECIES: Elliptic Curve Integrated Encryption System - an open standard that defines exactly how to do what we’re about to do
Cofactor: Include the elliptic curve’s “cofactor” when completing the Diffie-Hellman key agreement process
X963SHA256: Use the ANSI x9.63* key derivation function (KDF), with SHA-256 as an underlying hash function
AESGCM: For the final symmetric encryption, use AES in Galois Counter Mode (GCM), a form of authenticated encryption


The curve is SecP256R1 (This claim needs to be verified!!!)
The Secure Enclave
Apple describes the Secure Enclave as &quot;a representation of a device’s hardware-based key manager. Secure Enclave only have

NIST P-256 signatures and key agreement as of 2020.


*real ANSI X9.63 is here