<!--
{
  "availability" : [
    "iOS: 15.0.0 -",
    "iPadOS: 15.0.0 -",
    "macCatalyst: 15.0.0 -",
    "macOS: 12.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AuthenticationServices",
  "identifier" : "/documentation/AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialProvider",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Authentication Services"
    ],
    "preciseIdentifier" : "c:objc(cs)ASAuthorizationSecurityKeyPublicKeyCredentialProvider"
  },
  "title" : "ASAuthorizationSecurityKeyPublicKeyCredentialProvider"
}
-->

# ASAuthorizationSecurityKeyPublicKeyCredentialProvider

A mechanism for providing public key credential requests to an app or service with a physical security key.

```
class ASAuthorizationSecurityKeyPublicKeyCredentialProvider
```

## Overview

The credential provider accesses public-private key pairs stored on a physical security key for registration or authentication with a relying party. Instantiate this object, passing in the relying party identifier for the credentials.

## Topics

### Creating the provider

[`-  initWithRelyingPartyIdentifier:`](/documentation/AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialProvider/init(relyingPartyIdentifier:))

Creates the object with a relying party identifier.

### Creating the request

[`relyingPartyIdentifier`](/documentation/AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialProvider/relyingPartyIdentifier)

The domain name of the service to authorize against.

[`-  createCredentialAssertionRequestWithChallenge:`](/documentation/AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialProvider/createCredentialAssertionRequest(challenge:))

Creates an assertion request with a challenge.

[`-  createCredentialRegistrationRequestWithChallenge:displayName:name:userID:`](/documentation/AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialProvider/createCredentialRegistrationRequest(challenge:displayName:name:userID:))

Creates a registration request with a challenge, display name, and user ID.

## Relationships

### Conforms To

[`ASAuthorizationWebBrowserSecurityKeyPublicKeyCredentialProvider-8xc1s`](/documentation/AuthenticationServices/ASAuthorizationWebBrowserSecurityKeyPublicKeyCredentialProvider-8xc1s)

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

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

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

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

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

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`ASAuthorizationProvider`](/documentation/AuthenticationServices/ASAuthorizationProvider)

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

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

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

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

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

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)