<!--
{
  "availability" : [
    "iOS: 10.0.0 -",
    "iPadOS: 10.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.12.0 -",
    "tvOS: 10.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 3.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Security",
  "identifier" : "/documentation/Security/SecKeyAlgorithm",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Security"
    ],
    "preciseIdentifier" : "c:@T@SecKeyAlgorithm"
  },
  "title" : "SecKeyAlgorithm"
}
-->

# SecKeyAlgorithm

The algorithms that cryptographic keys enable.

```
struct SecKeyAlgorithm
```

## Topics

### Elliptic curve encryption standard X963

[`static let eciesEncryptionStandardX963SHA1AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionStandardX963SHA1AESGCM)

[`static let eciesEncryptionStandardX963SHA224AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionStandardX963SHA224AESGCM)

[`static let eciesEncryptionStandardX963SHA256AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionStandardX963SHA256AESGCM)

[`static let eciesEncryptionStandardX963SHA384AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionStandardX963SHA384AESGCM)

[`static let eciesEncryptionStandardX963SHA512AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionStandardX963SHA512AESGCM)

### Elliptic curve encryption standard variable IVX963

[`static let eciesEncryptionStandardVariableIVX963SHA224AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionStandardVariableIVX963SHA224AESGCM)

[`static let eciesEncryptionStandardVariableIVX963SHA256AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionStandardVariableIVX963SHA256AESGCM)

[`static let eciesEncryptionStandardVariableIVX963SHA384AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionStandardVariableIVX963SHA384AESGCM)

[`static let eciesEncryptionStandardVariableIVX963SHA512AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionStandardVariableIVX963SHA512AESGCM)

### Elliptic curve encryption cofactor variable IVX963

[`static let eciesEncryptionCofactorVariableIVX963SHA224AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionCofactorVariableIVX963SHA224AESGCM)

[`static let eciesEncryptionCofactorVariableIVX963SHA256AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionCofactorVariableIVX963SHA256AESGCM)

[`static let eciesEncryptionCofactorVariableIVX963SHA384AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionCofactorVariableIVX963SHA384AESGCM)

[`static let eciesEncryptionCofactorVariableIVX963SHA512AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionCofactorVariableIVX963SHA512AESGCM)

### Elliptic curve encryption cofactor X963

[`static let eciesEncryptionCofactorX963SHA1AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionCofactorX963SHA1AESGCM)

[`static let eciesEncryptionCofactorX963SHA224AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionCofactorX963SHA224AESGCM)

[`static let eciesEncryptionCofactorX963SHA256AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionCofactorX963SHA256AESGCM)

[`static let eciesEncryptionCofactorX963SHA384AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionCofactorX963SHA384AESGCM)

[`static let eciesEncryptionCofactorX963SHA512AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/eciesEncryptionCofactorX963SHA512AESGCM)

### Elliptic curve signature RFC4754

[`static let ecdsaSignatureRFC4754: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureRFC4754)

### Elliptic curve signature digest RFC4754

[`static let ecdsaSignatureDigestRFC4754: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureDigestRFC4754)

An algorithm for generating message digest signatures.

[`static let ecdsaSignatureDigestRFC4754SHA1: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureDigestRFC4754SHA1)

An algorithm for generating signatures of SHA1 message digests.

[`static let ecdsaSignatureDigestRFC4754SHA224: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureDigestRFC4754SHA224)

An algorithm for generating signatures of SHA224 message digests.

[`static let ecdsaSignatureDigestRFC4754SHA256: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureDigestRFC4754SHA256)

An algorithm for generating signatures of SHA256 message digests.

[`static let ecdsaSignatureDigestRFC4754SHA384: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureDigestRFC4754SHA384)

An algorithm for generating signatures of SHA384 message digests.

[`static let ecdsaSignatureDigestRFC4754SHA512: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureDigestRFC4754SHA512)

An algorithm for generating signatures of SHA512 message digests.

### Elliptic curve signature message RFC4754

[`static let ecdsaSignatureMessageRFC4754SHA1: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureMessageRFC4754SHA1)

An algorithm for generating message signatures by calculating and signing the SHA1 message digest.

[`static let ecdsaSignatureMessageRFC4754SHA224: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureMessageRFC4754SHA224)

An algorithm for generating message signatures by calculating and signing the SHA224 message digest.

[`static let ecdsaSignatureMessageRFC4754SHA256: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureMessageRFC4754SHA256)

An algorithm for generating message signatures by calculating and signing the SHA256 message digest.

[`static let ecdsaSignatureMessageRFC4754SHA384: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureMessageRFC4754SHA384)

An algorithm for generating message signatures by calculating and signing the SHA384 message digest.

[`static let ecdsaSignatureMessageRFC4754SHA512: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureMessageRFC4754SHA512)

An algorithm for generating message signatures by calculating and signing the SHA512 message digest.

### Elliptic curve signature digest X962

[`static let ecdsaSignatureDigestX962: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureDigestX962)

[`static let ecdsaSignatureDigestX962SHA1: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureDigestX962SHA1)

[`static let ecdsaSignatureDigestX962SHA224: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureDigestX962SHA224)

[`static let ecdsaSignatureDigestX962SHA256: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureDigestX962SHA256)

[`static let ecdsaSignatureDigestX962SHA384: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureDigestX962SHA384)

[`static let ecdsaSignatureDigestX962SHA512: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureDigestX962SHA512)

### Elliptic curve signature message X962

[`static let ecdsaSignatureMessageX962SHA1: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureMessageX962SHA1)

[`static let ecdsaSignatureMessageX962SHA224: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureMessageX962SHA224)

[`static let ecdsaSignatureMessageX962SHA256: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureMessageX962SHA256)

[`static let ecdsaSignatureMessageX962SHA384: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureMessageX962SHA384)

[`static let ecdsaSignatureMessageX962SHA512: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdsaSignatureMessageX962SHA512)

### Elliptic curve key exchange

[`static let ecdhKeyExchangeCofactor: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdhKeyExchangeCofactor)

[`static let ecdhKeyExchangeStandard: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdhKeyExchangeStandard)

[`static let ecdhKeyExchangeCofactorX963SHA1: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdhKeyExchangeCofactorX963SHA1)

[`static let ecdhKeyExchangeStandardX963SHA1: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdhKeyExchangeStandardX963SHA1)

[`static let ecdhKeyExchangeCofactorX963SHA224: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdhKeyExchangeCofactorX963SHA224)

[`static let ecdhKeyExchangeCofactorX963SHA256: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdhKeyExchangeCofactorX963SHA256)

[`static let ecdhKeyExchangeCofactorX963SHA384: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdhKeyExchangeCofactorX963SHA384)

[`static let ecdhKeyExchangeCofactorX963SHA512: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdhKeyExchangeCofactorX963SHA512)

[`static let ecdhKeyExchangeStandardX963SHA224: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdhKeyExchangeStandardX963SHA224)

[`static let ecdhKeyExchangeStandardX963SHA256: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdhKeyExchangeStandardX963SHA256)

[`static let ecdhKeyExchangeStandardX963SHA384: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdhKeyExchangeStandardX963SHA384)

[`static let ecdhKeyExchangeStandardX963SHA512: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/ecdhKeyExchangeStandardX963SHA512)

### RSA encryption

[`static let rsaEncryptionRaw: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaEncryptionRaw)

[`static let rsaEncryptionPKCS1: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaEncryptionPKCS1)

### RSA encryption OAEP

[`static let rsaEncryptionOAEPSHA1: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaEncryptionOAEPSHA1)

[`static let rsaEncryptionOAEPSHA224: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaEncryptionOAEPSHA224)

[`static let rsaEncryptionOAEPSHA256: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaEncryptionOAEPSHA256)

[`static let rsaEncryptionOAEPSHA384: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaEncryptionOAEPSHA384)

[`static let rsaEncryptionOAEPSHA512: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaEncryptionOAEPSHA512)

### RSA encryption OAEP AESGCM

[`static let rsaEncryptionOAEPSHA1AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaEncryptionOAEPSHA1AESGCM)

[`static let rsaEncryptionOAEPSHA224AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaEncryptionOAEPSHA224AESGCM)

[`static let rsaEncryptionOAEPSHA256AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaEncryptionOAEPSHA256AESGCM)

[`static let rsaEncryptionOAEPSHA384AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaEncryptionOAEPSHA384AESGCM)

[`static let rsaEncryptionOAEPSHA512AESGCM: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaEncryptionOAEPSHA512AESGCM)

### RSA signature raw

[`static let rsaSignatureRaw: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureRaw)

### RSA signature digest PKCS1v15

[`static let rsaSignatureDigestPKCS1v15Raw: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureDigestPKCS1v15Raw)

[`static let rsaSignatureDigestPKCS1v15SHA1: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureDigestPKCS1v15SHA1)

[`static let rsaSignatureDigestPKCS1v15SHA224: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureDigestPKCS1v15SHA224)

[`static let rsaSignatureDigestPKCS1v15SHA256: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureDigestPKCS1v15SHA256)

[`static let rsaSignatureDigestPKCS1v15SHA384: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureDigestPKCS1v15SHA384)

[`static let rsaSignatureDigestPKCS1v15SHA512: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureDigestPKCS1v15SHA512)

### RSA signature message PKCS1v15

[`static let rsaSignatureMessagePKCS1v15SHA1: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureMessagePKCS1v15SHA1)

[`static let rsaSignatureMessagePKCS1v15SHA224: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureMessagePKCS1v15SHA224)

[`static let rsaSignatureMessagePKCS1v15SHA256: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureMessagePKCS1v15SHA256)

[`static let rsaSignatureMessagePKCS1v15SHA384: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureMessagePKCS1v15SHA384)

[`static let rsaSignatureMessagePKCS1v15SHA512: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureMessagePKCS1v15SHA512)

### RSA signature digest PSS

[`static let rsaSignatureDigestPSSSHA1: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureDigestPSSSHA1)

[`static let rsaSignatureDigestPSSSHA224: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureDigestPSSSHA224)

[`static let rsaSignatureDigestPSSSHA256: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureDigestPSSSHA256)

[`static let rsaSignatureDigestPSSSHA384: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureDigestPSSSHA384)

[`static let rsaSignatureDigestPSSSHA512: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureDigestPSSSHA512)

### RSA signature message PSS

[`static let rsaSignatureMessagePSSSHA1: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureMessagePSSSHA1)

[`static let rsaSignatureMessagePSSSHA224: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureMessagePSSSHA224)

[`static let rsaSignatureMessagePSSSHA256: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureMessagePSSSHA256)

[`static let rsaSignatureMessagePSSSHA384: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureMessagePSSSHA384)

[`static let rsaSignatureMessagePSSSHA512: SecKeyAlgorithm`](/documentation/Security/SecKeyAlgorithm/rsaSignatureMessagePSSSHA512)

### Initializers

[`init(rawValue: CFString)`](/documentation/Security/SecKeyAlgorithm/init(rawValue:))

## Relationships

### Conforms To

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Equatable`](/documentation/Swift/Equatable)

[`Sendable`](/documentation/Swift/Sendable)

[`RawRepresentable`](/documentation/Swift/RawRepresentable)

[`Hashable`](/documentation/Swift/Hashable)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)