From 98c18eefa8ab66d8a8941d495bf2c9327f321a34 Mon Sep 17 00:00:00 2001 From: Filip Skrzeczkowski Date: Tue, 5 Nov 2024 15:17:50 +0100 Subject: [PATCH] [WebAuthn] Enhance code documentation --- .../AuthenticationExtension.cs | 13 +++- .../AuthenticationSelectionCriteria.cs | 24 +++++- .../Tizen.Security.WebAuthn/Authenticator.cs | 26 +++---- .../AuthenticatorAssertionResponse.cs | 38 +++++++--- .../AuthenticatorAttestationResponse.cs | 41 +++++++++-- .../Tizen.Security.WebAuthn/ClientData.cs | 16 ++-- .../GetAssertionCallbacks.cs | 24 +++++- .../HybridLinkedData.cs | 16 ++-- .../MakeCredentialCallbacks.cs | 24 +++++- .../PubkeyCredAssertion.cs | 50 ++++++++++--- .../PubkeyCredAttestation.cs | 52 ++++++++++--- .../PubkeyCredCreationOptions.cs | 73 +++++++++++++++---- .../PubkeyCredDescriptor.cs | 23 ++++-- .../PubkeyCredParam.cs | 12 ++- .../PubkeyCredRequestOptions.cs | 58 ++++++++++++--- .../RelyingPartyEntity.cs | 16 +++- .../Tizen.Security.WebAuthn/UserEntity.cs | 20 +++-- 17 files changed, 403 insertions(+), 123 deletions(-) diff --git a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/AuthenticationExtension.cs b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/AuthenticationExtension.cs index 630461152db..ef243ecc412 100644 --- a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/AuthenticationExtension.cs +++ b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/AuthenticationExtension.cs @@ -15,7 +15,6 @@ */ using static Interop; -using static Tizen.Security.WebAuthn.ErrorFactory; namespace Tizen.Security.WebAuthn { @@ -47,12 +46,20 @@ internal AuthenticationExtension(WauthnAuthenticationExt ext) } /// - /// Extension identifier. + /// Gets the extension identifier. /// + /// + /// The binary data of the extension indentifier. + /// + /// 12 public byte[] ExtensionId { get; init; } /// - /// Extension value. + /// Gets the extension value. /// + /// + /// The binary data of the extension value. + /// + /// 12 public byte[] ExtensionValue { get; init; } } } diff --git a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/AuthenticationSelectionCriteria.cs b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/AuthenticationSelectionCriteria.cs index 1f4714caa56..ee8923c2827 100644 --- a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/AuthenticationSelectionCriteria.cs +++ b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/AuthenticationSelectionCriteria.cs @@ -43,20 +43,36 @@ public AuthenticationSelectionCriteria( } /// - /// Authenticator attachment modality. + /// Gets the authenticator attachment modality. /// + /// + /// The attachment modality - the usage of platform or roaming authenticators. + /// + /// 12 public AuthenticatorAttachment Attachment { get; init; } /// - /// The extent to which the Relying Party desires to create a client-side discoverable credential. + /// Gets the Relying Party's requirement regarding client-side discoverable credentials. /// + /// + /// The extent to which the Relying Party desires to create a client-side discoverable credential. + /// + /// 12 public ResidentKeyRequirement ResidentKey { get; init; } /// - /// Whether residentKey is required. + /// Gets a value indicating whether a ResidentKey is required. /// + /// + /// A boolean value indicating whether a ResidentKey is required. + /// + /// 12 public bool RequireResidentKey { get; init; } /// - /// The Relying Party's requirements regarding user verification. + /// Gets the user verification requirements. /// + /// + /// The Relying Party's requirements regarding user verification. + /// + /// 12 public UserVerificationRequirement UserVerification { get; init; } } } diff --git a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/Authenticator.cs b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/Authenticator.cs index 803c3915604..dd69fa61cb3 100644 --- a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/Authenticator.cs +++ b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/Authenticator.cs @@ -41,7 +41,7 @@ public static class Authenticator /// 12 /// http://tizen.org/feature/security.webauthn /// An enum with the collection of all supported authenticator types. - /// The required feature is not supported. + /// Thrown when the required feature is not supported. public static AuthenticatorTransport SupportedAuthenticators() { int ret = Libwebauthn.SupportedAuthenticators(out uint supported); @@ -72,11 +72,11 @@ public static AuthenticatorTransport SupportedAuthenticators() /// UTF-8 encoded JSON serialization of the client data. /// Specifies the desired attributes of the to-be-created public key credential. /// The callback functions to be invoked. - /// The required feature is not supported. - /// Required privilege is missing. - /// Input parameter is invalid. - /// Operation invalid in current state. - /// Canceled by a cancel request. + /// Thrown when the required feature is not supported. + /// Thrown when a required privilege is missing. + /// Thrown when an input parameter is invalid. + /// Thrown when the operation is invalid in current state. + /// Thrown when the call is canceled by a cancel request. public static void MakeCredential(ClientData clientData, PubkeyCredCreationOptions options, MakeCredentialCallbacks callbacks) { CheckPreconditions(); @@ -136,11 +136,11 @@ public static void MakeCredential(ClientData clientData, PubkeyCredCreationOptio /// UTF-8 encoded JSON serialization of the client data. /// Specifies the desired attributes of the public key credential to discover. /// The callback functions to be invoked. - /// The required feature is not supported. - /// Required privilege is missing. - /// Input parameter is invalid. - /// Operation invalid in current state. - /// Canceled by a cancel request. + /// Thrown when the required feature is not supported. + /// Thrown when a required privilege is missing. + /// Thrown when an input parameter is invalid. + /// Thrown when the operation is invalid in current state. + /// Thrown when the call is canceled by a cancel request. public static void GetAssertion(ClientData clientData, PubkeyCredRequestOptions options, GetAssertionCallbacks callbacks) { CheckPreconditions(); @@ -180,8 +180,8 @@ public static void GetAssertion(ClientData clientData, PubkeyCredRequestOptions /// /// 12 /// http://tizen.org/feature/security.webauthn - /// The required feature is not supported. - /// Not allowed in the current context. + /// Thrown when the required feature is not supported. + /// Thrown when the operation is invalid in current state. public static void Cancel() { int ret = Libwebauthn.Cancel(); diff --git a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/AuthenticatorAssertionResponse.cs b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/AuthenticatorAssertionResponse.cs index b17fa49726c..f52006b1684 100644 --- a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/AuthenticatorAssertionResponse.cs +++ b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/AuthenticatorAssertionResponse.cs @@ -19,7 +19,7 @@ namespace Tizen.Security.WebAuthn { /// - /// The response of GetAssertion(). + /// The authenticator's response of . /// /// /// Refer to the following W3C specification for more information. @@ -38,28 +38,48 @@ internal AuthenticatorAssertionResponse(WauthnAuthenticatorAssertionResponse wau } /// - /// JSON-compatible serialization of client data. + /// Gets the serialized client data json. /// + /// + /// A JSON-compatible serialization of client data. + /// + /// 12 public byte[] ClientDataJson { get; init; } /// - /// The authenticator data contained within attestation_object. - /// For more information, refer to https://www.w3.org/TR/webauthn-3/#sctn-authenticator-data + /// Gets the authenticator data contained within the Attestation Object. /// + /// + /// Authenticator data contained within the Attestation Object. + /// For more information, refer to https://www.w3.org/TR/webauthn-3/#sctn-authenticator-data + /// + /// 12 public byte[] AuthenticatorData { get; init; } /// - /// The raw signature returned from the authenticator. - /// For more information, refer to https://www.w3.org/TR/webauthn-3/#sctn-op-get-assertion + /// Gets the signature returned from the authenticator. /// + /// + /// The signature returned from the authenticator. + /// For more information, refer to https://www.w3.org/TR/webauthn-3/#sctn-op-get-assertion + /// + /// 12 public byte[] Signature { get; init; } /// + /// Gets the user handle returned from the authenticator. + /// + /// /// The user handle returned from the authenticator, /// or null if the authenticator did not return a user handle. - /// + /// + /// 12 public byte[] UserHandle { get; init; } /// - /// This OPTIONAL attribute contains an attestation object, - /// if the authenticator supports attestation in assertions. + /// Gets the attestation object. /// + /// + /// An OPTIONAL property that contains an attestation object, + /// if the authenticator supports attestation in assertions. + /// + /// 12 public byte[] AttestationObject { get; init; } } } \ No newline at end of file diff --git a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/AuthenticatorAttestationResponse.cs b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/AuthenticatorAttestationResponse.cs index e4209c00f52..b25c822e8e3 100644 --- a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/AuthenticatorAttestationResponse.cs +++ b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/AuthenticatorAttestationResponse.cs @@ -19,7 +19,7 @@ namespace Tizen.Security.WebAuthn { /// - /// The response of MakeCredential(). + /// The response of . /// /// /// Refer to the following W3C specification for more information. @@ -39,30 +39,55 @@ internal AuthenticatorAttestationResponse(WauthnAuthenticatorAttestationResponse } /// - /// JSON-compatible serialization of client data. + /// Gets the serialized client data json. /// + /// + /// A JSON-compatible serialization of client data. + /// + /// 12 public byte[] ClientDataJson { get; init; } /// - /// The CBOR encoded Attestation Object to be returned to the RP. + /// Gets the Attestation Object to be returned to the Relying Party. /// + /// + /// A CBOR-encoded Attestation Object. + /// + /// 12 public byte[] AttestationObject { get; init; } /// - /// To represent multiple transports, can be ORed multiple times. + /// Gets an enum containing a list of transports. /// + /// + /// A list of transports. To represent multiple transports, + /// can be ORed multiple times. + /// + /// 12 public AuthenticatorTransport Transports { get; init; } /// - /// The authenticator data contained within attestation_object. - /// For more information, refer to https://www.w3.org/TR/webauthn-3/#sctn-authenticator-data + /// Gets the authenticator data contained within the Attestation Object. /// + /// + /// Authenticator data contained within the Attestation Object. + /// For more information, refer to https://www.w3.org/TR/webauthn-3/#sctn-authenticator-data + /// + /// 12 public byte[] AuthenticatorData { get; init; } /// + /// Gets the DER SubjectPublicKeyInfo of the new credential. + /// + /// /// DER SubjectPublicKeyInfo of the new credential, or null if this is not available. /// For more information, refer to https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.7 - /// + /// + /// 12 public byte[] SubjectPubkeyInfo { get; init; } /// - /// The COSEAlgorithmIdentifier of the new credential. + /// Gets the COSE algorithm identifier of the new credential. /// + /// + /// The COSE algorithm identifier of the new credential. + /// + /// 12 public CoseAlgorithm PubkeyAlg { get; init; } } diff --git a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/ClientData.cs b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/ClientData.cs index 609cfb4e749..f0f1b8ea5d7 100644 --- a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/ClientData.cs +++ b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/ClientData.cs @@ -14,8 +14,6 @@ * limitations under the License */ -using static Tizen.Security.WebAuthn.ErrorFactory; - namespace Tizen.Security.WebAuthn { /// @@ -33,7 +31,7 @@ public class ClientData /// /// 12 /// UTF-8 encoded JSON serialization of the client data. - /// Hash algorithm used to hash the JsonData property. + /// Hash algorithm used to hash the jsonData parameter. public ClientData(byte[] jsonData, HashAlgorithm hashAlgo) { JsonData = jsonData; @@ -41,12 +39,20 @@ public ClientData(byte[] jsonData, HashAlgorithm hashAlgo) } /// - /// UTF-8 encoded JSON serialization of the client data. + /// Gets the serialized client data json. /// + /// + /// A UTF-8 encoded JSON serialization of the client data. + /// + /// 12 public byte[] JsonData { get; init; } /// - /// Hash algorithm used to hash the JsonData property. + /// Gets the hash algorithm. /// + /// + /// The hash algorithm used to hash the JsonData property. + /// + /// 12 public HashAlgorithm HashAlgo{ get; init; } } } diff --git a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/GetAssertionCallbacks.cs b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/GetAssertionCallbacks.cs index b3a79daa60b..7f6f1dbfcaf 100644 --- a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/GetAssertionCallbacks.cs +++ b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/GetAssertionCallbacks.cs @@ -82,20 +82,36 @@ public GetAssertionCallbacks( } /// - /// Callback function for displaying QR code. + /// Gets the callback function for displaying the QR code. /// + /// + /// The callback function for displaying the QR code. + /// + /// 12 public Action QrcodeCallback { get; init; } /// - /// Callback function for getting the final response. + /// Gets the callback function for getting the final response. /// + /// + /// The callback function for getting the final response of the operation from the authenticator. + /// + /// 12 public Action ResponseCallback { get; init; } /// - /// Callback function for getting the updated linked device data. + /// Gets the callback function for getting the updated linked device data. /// + /// + /// The callback function for getting the updated linked device data from the authenticator. + /// + /// 12 public Action LinkedDataCallback { get; init; } /// - /// User data to be passed to , and . + /// Gets the user data to be passed to callbacks. /// + /// + /// The user data to be passed to , and . + /// + /// 12 public object UserData { get; init; } } } diff --git a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/HybridLinkedData.cs b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/HybridLinkedData.cs index f12d8852cc0..4ee638b6550 100644 --- a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/HybridLinkedData.cs +++ b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/HybridLinkedData.cs @@ -89,35 +89,35 @@ internal HybridLinkedData(WauthnHybridLinkedData linkedData) } /// - /// CBOR:"1". + /// Gets the contact id (CBOR:"1"). /// public byte[] ContactId { get; init; } /// - /// CBOR:"3". + /// Gets the link id (CBOR:"3"). /// public byte[] LinkId { get; init; } /// - /// CBOR:"3". + /// Gets the link secret (CBOR:"3"). /// public byte[] LinkSecret { get; init; } /// - /// CBOR:"4". + /// Gets the authenticator public key (CBOR:"4"). /// public byte[] AuthenticatorPubkey { get; init; } /// - /// CBOR:"5". + /// Gets the authenticator name (CBOR:"5"). /// public byte[] AuthenticatorName { get; init; } /// - /// CBOR:"6". + /// Gets the signature (CBOR:"6"). /// public byte[] Signature { get; init; } /// - /// Domain String of tunnel server. + /// Gets the Domain String of tunnel server. /// public byte[] TunnelServerDomain { get; init; } /// - /// Identity Key created during QR initiated transaction. + /// Gets the identity Key created during QR initiated transaction. /// public byte[] IdentityKey { get; init; } } diff --git a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/MakeCredentialCallbacks.cs b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/MakeCredentialCallbacks.cs index 9d3ecf19485..fd932bcf75f 100644 --- a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/MakeCredentialCallbacks.cs +++ b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/MakeCredentialCallbacks.cs @@ -82,20 +82,36 @@ public MakeCredentialCallbacks( } /// - /// Callback function for displaying QR code. + /// Gets the callback function for displaying the QR code. /// + /// + /// The callback function for displaying the QR code. + /// + /// 12 public Action QrcodeCallback { get; init; } /// - /// Callback function for getting the final response. + /// Gets the callback function for getting the final response. /// + /// + /// The callback function for getting the final response of the operation from the authenticator. + /// + /// 12 public Action ResponseCallback { get; init; } /// - /// Callback function for getting the updated linked device data. + /// Gets the callback function for getting the updated linked device data. /// + /// + /// The callback function for getting the updated linked device data from the authenticator. + /// + /// 12 public Action LinkedDataCallback { get; init; } /// - /// User data to be passed to , and . + /// Gets the user data to be passed to callbacks. /// + /// + /// The user data to be passed to , and . + /// + /// 12 public object UserData { get; init; } } } diff --git a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredAssertion.cs b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredAssertion.cs index 292a30e66a0..08def88db57 100644 --- a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredAssertion.cs +++ b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredAssertion.cs @@ -49,9 +49,9 @@ internal PubkeyCredAssertion(WauthnPubkeyCredentialAssertion assertion) unsafe { var extPtr = (WauthnAuthenticationExt*)wauthnExts.descriptors; - for (int i = 0; i < (int)wauthnExts.size; i++) + for (ulong i = 0; i < wauthnExts.size; i++) { - var wauthnExt = Marshal.PtrToStructure(new IntPtr(extPtr + i * sizeof(WauthnAuthenticationExt))); + var wauthnExt = Marshal.PtrToStructure(new IntPtr(extPtr + i * (ulong)sizeof(WauthnAuthenticationExt))); extensionsArray[i] = new AuthenticationExtension(wauthnExt); } } @@ -68,35 +68,63 @@ internal PubkeyCredAssertion(WauthnPubkeyCredentialAssertion assertion) } /// - /// The base64url encoding of credential’s identifier. + /// Gets the credential’s identifier. /// + /// + /// The base64url encoding of credential’s identifier. + /// + /// 12 public byte[] Id { get; init; } /// - /// The credential’s type. + /// Gets the credential’s type. /// + /// + /// The credential’s type. + /// + /// 12 public PubkeyCredType Type { get; init; } /// - /// The raw value of credential’s identifier. + /// Gets the credential’s raw identifier. /// + /// + /// The raw value of the credential’s identifier. + /// + /// 12 public byte[] RawId { get; init; } /// - /// Authenticator's response. + /// Gets the authenticator's response. /// + /// + /// The authenticator's response data. + /// + /// 12 public AuthenticatorAssertionResponse Response { get; init; } /// - /// Authenticator attachment modality. + /// Gets the authenticator attachment modality. /// + /// + /// The attachment modality - the usage of platform or roaming authenticators. + /// + /// 12 public AuthenticatorAttachment AuthenticatorAttachment { get; init; } /// - /// The results of processing client extensions requested by the Relying Party - /// upon the Relying Party's invocation of GetAssertion(). (optional) + /// Gets the results of processing client extensions. /// + /// + /// The results of processing client extensions requested by the Relying Party + /// upon the Relying Party's invocation of . (optional) + /// + /// 12 public IEnumerable Extensions { get; init; } /// - /// Linked Device Connection Info (optional). + /// Gets the linked Device Connection Info. + /// + /// + /// The linked Device Connection Info (optional). /// If not null, the caller has to store this value and use this /// in the next transaction to invoke state assisted transaction. - /// + /// + /// 12 public HybridLinkedData LinkedDevice { get; init; } } } \ No newline at end of file diff --git a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredAttestation.cs b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredAttestation.cs index 12368be29f2..1a4e28d3db8 100644 --- a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredAttestation.cs +++ b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredAttestation.cs @@ -49,9 +49,9 @@ internal PubkeyCredAttestation(WauthnPubkeyCredentialAttestation attestation) unsafe { var extPtr = (WauthnAuthenticationExt*)wauthnExts.descriptors; - for (int i = 0; i < (int)wauthnExts.size; i++) + for (ulong i = 0; i < wauthnExts.size; i++) { - var wauthnExt = Marshal.PtrToStructure(new IntPtr(extPtr + i * sizeof(WauthnAuthenticationExt))); + var wauthnExt = Marshal.PtrToStructure(new IntPtr(extPtr + i * (ulong)sizeof(WauthnAuthenticationExt))); extensionsArray[i] = new AuthenticationExtension(wauthnExt); } } @@ -68,35 +68,63 @@ internal PubkeyCredAttestation(WauthnPubkeyCredentialAttestation attestation) } /// - /// The base64url encoding of credential’s identifier. + /// Gets the credential’s identifier. /// + /// + /// The base64url encoding of credential’s identifier. + /// + /// 12 public byte[] Id { get; init; } /// - /// The credential’s type. + /// Gets the credential’s type. /// + /// + /// The credential’s type. + /// + /// 12 public PubkeyCredType Type { get; init; } /// - /// The raw value of credential’s identifier. + /// Gets the credential’s raw identifier. /// + /// + /// The raw value of the credential’s identifier. + /// + /// 12 public byte[] RawId { get; init; } /// - /// Authenticator's response. + /// Gets the authenticator's response. /// + /// + /// The authenticator's response data. + /// + /// 12 public AuthenticatorAttestationResponse Response { get; init; } /// - /// Authenticator attachment modality. + /// Gets the authenticator attachment modality. /// + /// + /// The attachment modality - the usage of platform or roaming authenticators. + /// + /// 12 public AuthenticatorAttachment AuthenticatorAttachment { get; init; } /// - /// The results of processing client extensions requested by the Relying Party - /// upon the Relying Party's invocation of MakeCredential(). (optional) + /// Gets the results of processing client extensions. /// + /// + /// The results of processing client extensions requested by the Relying Party + /// upon the Relying Party's invocation of . (optional) + /// + /// 12 public IEnumerable Extensions { get; init; } /// - /// Linked Device Connection Info (optional). - /// If not null, the caller has to store this value and use thi - /// in the next transaction to invoke state assisted transaction. + /// Gets the linked Device Connection Info. /// + /// + /// The linked Device Connection Info (optional). + /// If not null, the caller has to store this value and use this + /// in the next transaction to invoke state assisted transaction. + /// + /// 12 public HybridLinkedData LinkedDevice { get; init; } } } diff --git a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredCreationOptions.cs b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredCreationOptions.cs index 9f812041609..147868a80b3 100644 --- a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredCreationOptions.cs +++ b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredCreationOptions.cs @@ -15,7 +15,6 @@ */ using System.Collections.Generic; -using static Tizen.Security.WebAuthn.ErrorFactory; namespace Tizen.Security.WebAuthn { @@ -101,53 +100,97 @@ public PubkeyCredCreationOptions( } /// - /// Contains a name and an identifier for the Relying Party responsible for the request. + /// Gets the Relying Party data. /// + /// + /// The name and identifier for the Relying Party responsible for the request. + /// + /// 12 public RelyingPartyEntity Rp { get; init; } /// - /// Contains names and an identifier for the user account performing the registration. + /// Gets user account data. /// + /// + /// The names and identifier for the user account performing the registration. + /// + /// 12 public UserEntity User { get; init; } /// - /// Lists the key types and signature algorithms the Relying Party supports, - /// ordered from most preferred to least preferred. + /// Gets the key parameters the Relying Party supports. /// + /// + /// The key types and signature algorithms the Relying Party supports, + /// ordered from most preferred to least preferred. + /// + /// 12 public IEnumerable PubkeyCredParams { get; init; } /// - /// Specifies a time, in milliseconds, that the Relying Party is willing to wait for the + /// Gets the timeout requested by the Relying Party. + /// + /// + /// The time, in milliseconds, that the Relying Party is willing to wait for the /// call to complete. This is treated as a hint, and MAY be overridden by the client. /// The value, '0', means no timeout is set. - /// + /// + /// 12 public ulong Timeout { get; init; } /// - /// Lists any existing credentials mapped to this user account (as identified by user.id). + /// Gets the existing credentials mapped to this user account. /// + /// + /// Any existing credentials mapped to this user account (as identified by user.id). + /// + /// 12 public IEnumerable ExcludeCredentials { get; init; } /// - /// Specifies capabilities and settings that the authenticator MUST or SHOULD satisfy - /// to participate in this operation. + /// Gets the criteria for authenticator selection. /// + /// + /// The capabilities and settings that the authenticator MUST or SHOULD satisfy + /// to participate in this operation. + /// + /// 12 public AuthenticationSelectionCriteria AuthenticatorSelection { get; init; } /// + /// Gets hints used to guide the user agent in interacting with the user. + /// + /// /// Contains zero or more elements from to /// guide the user agent in interacting with the user. - /// + /// + /// 12 public IEnumerable Hints { get; init; } /// - /// Specifies a preference regarding attestation conveyance. + /// Gets the attestation conveyance preference. /// + /// + /// Specifies a preference regarding attestation conveyance. + /// + /// 12 public AttestationPref Attestation { get; init; } /// - /// Specifies a preference regarding the attestation statement format used by the authenticator. + /// Gets the attestation format preference. /// + /// + /// Specifies a preference regarding the attestation statement format used by the authenticator. + /// + /// 12 public IEnumerable AttestationFormats { get; init; } /// - /// Client extension inputs requesting additional processing by the client and authenticator. + /// Gets the client extension inputs. /// + /// + /// Client extension inputs requesting additional processing by the client and authenticator. + /// + /// 12 public IEnumerable Extensions { get; init; } /// - /// Linked Device Connection Info. If not null, the state assisted transaction will start. + /// Gets the Linked Device Connection Info. /// + /// + /// Linked Device Connection Info. If not null, the state assisted transaction will start. + /// + /// 12 public HybridLinkedData LinkedDevice { get; init; } } } diff --git a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredDescriptor.cs b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredDescriptor.cs index f1a6523318b..fc3aa10920e 100644 --- a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredDescriptor.cs +++ b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredDescriptor.cs @@ -14,8 +14,6 @@ * limitations under the License */ -using static Tizen.Security.WebAuthn.ErrorFactory; - namespace Tizen.Security.WebAuthn { /// @@ -33,7 +31,7 @@ public class PubkeyCredDescriptor /// /// The type of the public key credential. /// The credential ID of the public key credential. - /// To represent multiple transports, this enum can be ORed multiple times. + /// Transport types. To represent multiple transports, this enum can be ORed multiple times. public PubkeyCredDescriptor(PubkeyCredType type, byte[] id, AuthenticatorTransport transport) { Type = type; @@ -41,16 +39,29 @@ public PubkeyCredDescriptor(PubkeyCredType type, byte[] id, AuthenticatorTranspo Transport = transport; } /// - /// The type of the public key credential. + /// Gets the type of the public key credential. /// + /// + /// The type of the public key credential. + /// + /// 12 public PubkeyCredType Type { get; init; } /// - /// The credential ID of the public key credential. + /// Gets the ID of the public key credential. /// + /// + /// The binary ID of the public key credential. + /// + /// 12 public byte[] Id { get; init; } /// - /// Transport types. + /// Gets the transport types. /// + /// + /// The transport types describing communication between the client and the authenticator. + /// To represent multiple transports, this enum can be ORed multiple times. + /// + /// 12 public AuthenticatorTransport Transport { get; init; } } } diff --git a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredParam.cs b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredParam.cs index 762b1195b55..a0186e5cdb8 100644 --- a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredParam.cs +++ b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredParam.cs @@ -38,12 +38,20 @@ public PubkeyCredParam(PubkeyCredType type, CoseAlgorithm alg) Alg = alg; } /// - /// Well-known credential type specifying a credential to create. + /// Gets the type of the credential to create. /// + /// + /// Well-known credential type specifying the credential to create. + /// + /// 12 public PubkeyCredType Type { get; init; } /// - /// Well-known COSE algorithm specifying the algorithm to use for the credential. + /// Gets the algotithm used for the credential. /// + /// + /// Well-known COSE algorithm specifying the algorithm to use for the credential. + /// + /// 12 public CoseAlgorithm Alg { get; init; } } } diff --git a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredRequestOptions.cs b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredRequestOptions.cs index 3df50f33ae0..45dd06fb74d 100644 --- a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredRequestOptions.cs +++ b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/PubkeyCredRequestOptions.cs @@ -91,43 +91,81 @@ public PubkeyCredRequestOptions( } /// - /// Specifies a time, in milliseconds, that the Relying Party is willing to wait for the + /// Gets the timeout requested by the Relying Party. + /// + /// + /// The time, in milliseconds, that the Relying Party is willing to wait for the /// call to complete. This is treated as a hint, and MAY be overridden by the client. /// The value, '0', means no timeout is set. - /// + /// + /// 12 public ulong Timeout { get; init; } /// - /// Specifies the RP ID claimed by the Relying Party. + /// Gets the Relying Party ID. /// + /// + /// Specifies the RP ID claimed by the Relying Party. + /// + /// 12 public string RpId { get; init; } /// - /// Used by the client to find authenticators eligible for this authentication ceremony. + /// Gets the list of allowed credentials. /// + /// + /// Used by the client to find authenticators eligible for this authentication ceremony. + /// The list is ordered in descending order of preference. + /// + /// 12 public IEnumerable AllowCredentials { get; init; } /// - /// Specifies the Relying Party's requirements regarding user verification for the GetAssertion() operation. + /// Gets the user verification requirements. /// + /// + /// The Relying Party's requirements regarding user verification for the + /// operation. + /// + /// 12 public UserVerificationRequirement UserVerification { get; init; } /// + /// Gets hints used to guide the user agent in interacting with the user. + /// + /// /// Contains zero or more elements from to /// guide the user agent in interacting with the user. - /// + /// + /// 12 public IEnumerable Hints { get; init; } /// - /// Specifies a preference regarding attestation conveyance. + /// Gets the attestation conveyance preference. /// + /// + /// Specifies a preference regarding attestation conveyance. + /// + /// 12 public AttestationPref Attestation { get; init; } /// - /// Specifies a preference regarding the attestation statement format used by the authenticator. + /// Gets the attestation format preference. /// + /// + /// Specifies a preference regarding the attestation statement format used by the authenticator. + /// + /// 12 public IEnumerable AttestationFormats { get; init; } /// - /// Client extension inputs requesting additional processing by the client and authenticator. + /// Gets the client extension inputs. /// + /// + /// Client extension inputs requesting additional processing by the client and authenticator. + /// + /// 12 public IEnumerable Extensions { get; init; } /// - /// Linked Device Connection Info. If not null, the state assisted transaction will start. + /// Gets the Linked Device Connection Info. /// + /// + /// Linked Device Connection Info. If not null, the state assisted transaction will start. + /// + /// 12 public HybridLinkedData LinkedDevice { get; init; } } } \ No newline at end of file diff --git a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/RelyingPartyEntity.cs b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/RelyingPartyEntity.cs index f00fdec4fc6..a483ee8637f 100644 --- a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/RelyingPartyEntity.cs +++ b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/RelyingPartyEntity.cs @@ -30,8 +30,8 @@ public class RelyingPartyEntity /// Initializes a new instance of the class. /// /// 12 - /// The name of RP. - /// The RPID. + /// The name of the Relying Party. + /// The ID of the Relying Party. public RelyingPartyEntity(string name, string id) { Name = name; @@ -39,12 +39,20 @@ public RelyingPartyEntity(string name, string id) } /// - /// The name of RP. + /// Gets the name of the Relying Party. /// + /// + /// The name of the Relying Party. + /// + /// 12 public string Name { get; init; } /// - /// The RPID. + /// Gets the ID of the Relying Party. /// + /// + /// The ID of the Relying Party. + /// + /// 12 public string Id { get; init; } } } diff --git a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/UserEntity.cs b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/UserEntity.cs index 6eb65e12145..b7d26416127 100644 --- a/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/UserEntity.cs +++ b/src/Tizen.Security.WebAuthn/Tizen.Security.WebAuthn/UserEntity.cs @@ -14,8 +14,6 @@ * limitations under the License */ -using static Tizen.Security.WebAuthn.ErrorFactory; - namespace Tizen.Security.WebAuthn { /// @@ -46,16 +44,28 @@ public UserEntity(string name, byte[] id, string displayName) } /// - /// A human-palatable name for the entity. + /// Gets the name of the user entity. /// + /// + /// A human-palatable name for the entity. + /// + /// 12 public string Name { get; init; } /// - /// The ID of the user account. + /// Gets the user ID. /// + /// + /// The ID of the user account. + /// + /// 12 public byte[] Id { get; init; } /// - /// A human-palatable name for the user account, intended only for display. + /// Gets the dispay name of the user entity. /// + /// + /// A human-palatable name for the user account, intended only for display. + /// + /// 12 public string DisplayName { get; init; } } }