<!--
{
  "availability" : [
    "macOS: 10.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Security",
  "identifier" : "/documentation/Security/SecKeyUsage",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Security"
    ],
    "preciseIdentifier" : "c:@E@SecKeyUsage"
  },
  "title" : "SecKeyUsage"
}
-->

# SecKeyUsage

The flags that indicate key usage in the `KeyUsage` extension of a certificate.

```
struct SecKeyUsage
```

## Topics

### Initializers

[`init(rawValue:)`](/documentation/Security/SecKeyUsage/init(rawValue:))

Initializes a key usage structure.

### Flags

[`kSecKeyUsageUnspecified`](/documentation/Security/SecKeyUsage/kSecKeyUsageUnspecified)

[`crlSign`](/documentation/Security/SecKeyUsage/crlSign)

The `CRLSign` bit is set in KeyUsage extension.

[`contentCommitment`](/documentation/Security/SecKeyUsage/contentCommitment)

The `ContentCommitment` bit is set in KeyUsage extension.

[`critical`](/documentation/Security/SecKeyUsage/critical)

The KeyUsage extension is marked critical.

[`dataEncipherment`](/documentation/Security/SecKeyUsage/dataEncipherment)

The `DataEncipherment` bit is set in KeyUsage extension.

[`decipherOnly`](/documentation/Security/SecKeyUsage/decipherOnly)

The `DecipherOnly` bit is set in KeyUsage extension.

[`digitalSignature`](/documentation/Security/SecKeyUsage/digitalSignature)

The `DigitalSignature` bit is set in KeyUsage extension.

[`encipherOnly`](/documentation/Security/SecKeyUsage/encipherOnly)

The `EncipherOnly` bit is set in KeyUsage extension.

[`keyAgreement`](/documentation/Security/SecKeyUsage/keyAgreement)

The `KeyAgreement` bit is set in KeyUsage extension.

[`keyCertSign`](/documentation/Security/SecKeyUsage/keyCertSign)

The `KeyCertSign` bit is set in KeyUsage extension.

[`keyEncipherment`](/documentation/Security/SecKeyUsage/keyEncipherment)

The `KeyEncipherment` bit is set in KeyUsage extension.

[`nonRepudiation`](/documentation/Security/SecKeyUsage/nonRepudiation)

The `NonRepudiation` bit is set in KeyUsage extension.

[`all`](/documentation/Security/SecKeyUsage/all)

All flags set.



---

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)