<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.10.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Security",
  "identifier" : "/documentation/Security/SecAccessControlCreateFlags",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Security"
    ],
    "preciseIdentifier" : "c:@E@SecAccessControlCreateFlags"
  },
  "title" : "SecAccessControlCreateFlags"
}
-->

# SecAccessControlCreateFlags

Access control constants that dictate how a keychain item may be used.

```
struct SecAccessControlCreateFlags
```

## Overview

Use these flags with the [`SecAccessControlCreateWithFlags(_:_:_:_:)`](/documentation/Security/SecAccessControlCreateWithFlags(_:_:_:_:)) function, or as the value associated with the [`kSecAttrAccessControl`](/documentation/Security/kSecAttrAccessControl) key in a keychain item’s attribute dictionary, to control keychain item accessibility.

## Topics

### Constraints

[`devicePasscode`](/documentation/Security/SecAccessControlCreateFlags/devicePasscode)

Constraint to access an item with a passcode.

[`biometryAny`](/documentation/Security/SecAccessControlCreateFlags/biometryAny)

Constraint to access an item with Touch ID for any enrolled fingers, or Face ID.

[`biometryCurrentSet`](/documentation/Security/SecAccessControlCreateFlags/biometryCurrentSet)

Constraint to access an item with Touch ID for currently enrolled fingers, or from Face ID with the currently enrolled user.

[`userPresence`](/documentation/Security/SecAccessControlCreateFlags/userPresence)

Constraint to access an item with either biometry or passcode.

[`watch`](/documentation/Security/SecAccessControlCreateFlags/watch)

Constraint to access an item with a watch.

### Conjunctions

[`and`](/documentation/Security/SecAccessControlCreateFlags/and)

Indicates that all constraints must be satisfied.

[`or`](/documentation/Security/SecAccessControlCreateFlags/or)

Indicates that at least one constraint must be satisfied.

### Additional Options

[`applicationPassword`](/documentation/Security/SecAccessControlCreateFlags/applicationPassword)

Option to use an application-provided password for data encryption key generation.

[`privateKeyUsage`](/documentation/Security/SecAccessControlCreateFlags/privateKeyUsage)

Enable a private key to be used in signing a block of data or verifying a signed block.

### Initializers

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

Initialize an access control creation flags object.

### Legacy Constraints

[`touchIDAny`](/documentation/Security/SecAccessControlCreateFlags/touchIDAny)

Constraint to access an item with Touch ID for any enrolled fingers.

[`touchIDCurrentSet`](/documentation/Security/SecAccessControlCreateFlags/touchIDCurrentSet)

Constraint to access an item with Touch ID for currently enrolled fingers.

### Type Properties

[`companion`](/documentation/Security/SecAccessControlCreateFlags/companion)



---

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)