Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,17 @@ import Foundation
public struct PublicKeyCredentialRequestOptions: Sendable {
/// A challenge that the authenticator signs, along with other data, when producing an authentication assertion.
///
/// When encoding using `Encodable` this is encoded as base64url.
public var challenge: [UInt8]
/// The Relying Party should store the challenge temporarily until the authentication flow is complete. When encoding using `Encodable` this is encoded as base64url.
///
/// - Warning: Although the challenge can be changed, doing so is not recommended and can lead to an insecure implementation of the WebAuthn protocol. See ``setUnsafeChallenge(_:)``.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's just remove this from the API docs, I don't think we need it

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed in favor of a SeeAlso

public private(set) var challenge: [UInt8]

/// Unsafely change the challenge that will be delivered to the client.
///
/// - Warning: Although the challenge can be changed, doing so is not recommended and can lead to an insecure implementation of the WebAuthn protocol.
public mutating func setUnsafeChallenge(_ newValue: [UInt8]) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
public mutating func setUnsafeChallenge(_ newValue: [UInt8]) {
public mutating func unsafeSetChallenge(_ newValue: [UInt8]) {

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Renamed.

challenge = newValue
}

/// A time, in seconds, that the caller is willing to wait for the call to complete. This is treated as a
/// hint, and may be overridden by the client.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,16 @@ public struct PublicKeyCredentialCreationOptions: Sendable {
///
/// The Relying Party should store the challenge temporarily until the registration flow is complete. When
/// encoding using `Encodable`, the challenge is base64url encoded.
public let challenge: [UInt8]
///
/// - Warning: Although the challenge can be changed, dooing so is not recommended and can lead to an insecure implementation of the WebAuthn protocol. See ``setUnsafeChallenge(_:)``.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As above

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll change them right now!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed in favor of a SeeAlso.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, should I have kept the warning on unsafeSetChallenge?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah keep the warning on unsafeSetChallenge, we just don't need to include it on the main parameter

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated!

public private(set) var challenge: [UInt8]

/// Unsafely change the challenge that will be delivered to the client.
///
/// - Warning: Although the challenge can be changed, doing so is not recommended and can lead to an insecure implementation of the WebAuthn protocol.
public mutating func setUnsafeChallenge(_ newValue: [UInt8]) {
challenge = newValue
}

/// Contains names and an identifier for the user account performing the registration.
public var user: PublicKeyCredentialUserEntity
Expand Down
Loading