mirror of
https://github.com/bitwarden/mobile
synced 2026-01-14 14:33:46 +00:00
* [PM-5731] feat: implement get assertion params object * [PM-5731] feat: add first test * [PM-5731] feat: add rp mismatch test * [PM-5731] feat: ask for credentials when found * [PM-5731] feat: find discoverable credentials * [PM-5731] feat: add tests for successful UV requests * [PM-5731] feat: add user does not consent test * [PM-5731] feat: check for UV when reprompt is active * [PM-5731] fix: tests a bit, needed some additional "arrange" steps * [PM-5731] feat: add support for counter * [PM-5731] feat: implement assertion without signature * [PM-5732] feat: finish authenticator assertion implementation note: CryptoFunctionService still needs Sign implemenation * [PM-5731] chore: minor clean up * [PM-5731] feat: scaffold make credential * [PM-5731] feat: start implementing attestation * [PM-5731] feat: implement credential exclusion * [PM-5731] feat: add new credential confirmaiton * [PM-5731] feat: implement credential creation * [PM-5731] feat: add user verification checks * [PM-5731] feat: add unknown error handling * [PM-5731] chore: clean up unusued params * [PM-5731] feat: partial attestation implementation * [PM-5731] feat: implement key generation * [PM-5731] feat: return public key in DER format * [PM-5731] feat: implement signing * [PM-5731] feat: remove logging * [PM-5731] chore: use primary constructor * [PM-5731] chore: add Async to method names * [PM-5731] feat: add support for silent discoverability * [PM-5731] feat: add support for specifying user presence requirement * [PM-5731] feat: ensure unlocked vault * [PM-5731] chore: clean up and refactor assertion tests * [PM-5731] chore: clean up and refactor attestation tests * [PM-5731] chore: add user presence todo comment * [PM-5731] feat: scaffold fido2 client * PM-5731 Fix build updating discoverable flag * [PM-5731] fix: failing test * [PM-5731] feat: add sameOriginWithAncestor and user id length checks * [PM-5731] feat: add incomplete rpId verification * [PM-5731] chore: document uri helpers * [PM-5731] feat: implement fido2 client createCredential * [PM-5731] feat: implement credential assertion in client * fix wrong signature format (cherry picked from commita1c9ebf01f) * [PM-5731] fix: issues after cherry-pick * Fix incompatible GUID conversions (cherry picked from commitc801b2fc3a) * [PM-5731] chore: remove default constructor * [PM-5731] feat: refactor user interface to increase flexibility * [PM-5731] feat: implement generic assertion user interface class * [PM-5731] feat: remove ability to make user presence optional * [PM-5731] chore: remove logging comments * [PM-5731] feat: add native reprompt support to the authenticator * [PM-5731] feat: allow pre and post UV * [PM-5731] chore: add `Async` to method name. Remove `I` from struct * [PM-5731] fix: discoverable string repr lowercase * [PM-5731] chore: don't use C# 12 features * [PM-5731] fix: replace magic strings and numbers with contants and enums * [PM-5731] fix: use UTC creation date * [PM-5731] fix: formatting * [PM-5731] chore: use properties for public fields * [PM-5731] chore: remove TODO * [PM-5731] fix: IsValidRpId --------- Co-authored-by: Federico Maccaroni <fedemkr@gmail.com> Co-authored-by: mpbw2 <59324545+mpbw2@users.noreply.github.com>
76 lines
3.2 KiB
C#
76 lines
3.2 KiB
C#
namespace Bit.Core.Utilities.Fido2
|
||
{
|
||
#nullable enable
|
||
|
||
/// <summary>
|
||
/// Parameters for creating a new credential.
|
||
/// </summary>
|
||
public class Fido2ClientCreateCredentialParams
|
||
{
|
||
/// <summary>
|
||
/// The Relaying Parties origin, see: https://html.spec.whatwg.org/multipage/browsers.html#concept-origin
|
||
/// </summary>
|
||
public required string Origin { get; set; }
|
||
|
||
/// <summary>
|
||
/// A value which is true if and only if the caller’s environment settings object is same-origin with its ancestors.
|
||
/// It is false if caller is cross-origin.
|
||
/// </summary>
|
||
public bool SameOriginWithAncestors { get; set; }
|
||
|
||
/// <summary>
|
||
/// The Relying Party's preference for attestation conveyance
|
||
/// </summary>
|
||
public string? Attestation { get; set; } = "none";
|
||
|
||
/// <summary>
|
||
/// The Relying Party's requirements of the authenticator used in the creation of the credential.
|
||
/// </summary>
|
||
public AuthenticatorSelectionCriteria? AuthenticatorSelection { get; set; }
|
||
|
||
/// <summary>
|
||
/// Challenge intended to be used for generating the newly created credential's attestation object.
|
||
/// </summary>
|
||
public required byte[] Challenge { get; set; } // base64url encoded
|
||
|
||
/// <summary>
|
||
/// This member is intended for use by Relying Parties that wish to limit the creation of multiple credentials for
|
||
/// the same account on a single authenticator. The client is requested to return an error if the new credential would
|
||
/// be created on an authenticator that also contains one of the credentials enumerated in this parameter.
|
||
/// </summary>
|
||
public PublicKeyCredentialDescriptor[]? ExcludeCredentials { get; set; }
|
||
|
||
/// <summary>
|
||
/// This member contains additional parameters requesting additional processing by the client and authenticator.
|
||
/// Not currently supported.
|
||
/// </summary>
|
||
public object? Extensions { get; set; }
|
||
|
||
/// <summary>
|
||
/// This member contains information about the desired properties of the credential to be created.
|
||
/// The sequence is ordered from most preferred to least preferred.
|
||
/// The client makes a best-effort to create the most preferred credential that it can.
|
||
/// </summary>
|
||
public required PublicKeyCredentialParameters[] PubKeyCredParams { get; set; }
|
||
|
||
/// <summary>
|
||
/// Data about the Relying Party responsible for the request.
|
||
/// </summary>
|
||
public required PublicKeyCredentialRpEntity Rp { get; set; }
|
||
|
||
/// <summary>
|
||
/// Data about the user account for which the Relying Party is requesting attestation.
|
||
/// </summary>
|
||
public required PublicKeyCredentialUserEntity User { get; set; }
|
||
|
||
/// <summary>
|
||
/// This member specifies a time, in milliseconds, 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.
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// This is not currently supported.
|
||
/// </remarks>
|
||
public int? Timeout { get; set; }
|
||
}
|
||
}
|