/// <summary>
/// Contains information about the authenticators registered on the device.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
/// <example>
/// <code>
/// IEnumerable<AuthenticatorInformation> authInfos = await UafAuthenticatorFinder.DiscoverAuthenticatorsAsync();
/// <summary>
/// The authenticator Title
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public string Title { get; internal set; }
/// <summary>
/// The Authenticator AAID (Authenticator Attestation ID)
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public string Aaid { get; internal set; }
/// <summary>
/// The Authenticator description
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public string Description { get; internal set; }
/// <summary>
/// The Authenticator assertion scheme.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public string AssertionScheme { get; internal set; }
/// <summary>
/// The Authenticator algorithm.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public AuthenticationAlgorithm AuthenticationAlgorithm { get; internal set; }
/// <summary>
/// The user verification method of this Authenticator
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public UserVerificationMethod UserVerification { get; internal set; }
/// <summary>
/// The key protection method of this Authenticator.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public KeyProtectionType KeyProtection { get; internal set; }
/// <summary>
/// The matcher protection method of this Authenticator.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public MatcherProtectionType MatcherProtection { get; internal set; }
/// <summary>
/// The attachment hint of this Authenticator.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public AuthenticatorAttachmentHint AttachmentHint { get; internal set; }
/// <summary>
/// Denotes the Authenticator is Second factor only which is supported by U2F standards.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public bool IsSecondFactorOnly { get; internal set; }
/// <summary>
/// The available attestation types for this Authenticator.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public IEnumerable<AuthenticatorAttestationType> AttestationTypes { get; internal set; }
/// <summary>
/// The Transaction Confirmation display type of this Authenticator.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public TransactionConfirmationDisplayType TcDisplayType { get; internal set; }
/// <summary>
/// The Transaction Confirmation display type of this Authenticator.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public string TcDisplayContentType { get; internal set; }
/// <summary>
/// The icon of this Authenticator.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public string Icon { get; internal set; }
}
}
\ No newline at end of file
/// <summary>
/// The FIDO UAF Client APIs
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public static class UafClient
{
private static string _vendorName = null;
/// <summary>
/// The FIDO Client vendor name
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public static string VendorName
{
get
/// <summary>
/// The FIDO Client Major version
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public static int MajorVersion
{
get
/// <summary>
/// The FIDO Client Minor version
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public static int MinorVersion
{
get
/// <summary>
/// The FIDO Server response for successfull interaction.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public static int StautsOk
{
get
/// <summary>
/// Checks whether the FIDO message can be processed
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="uafMessage">The FIDO UAF message which is received from the relying party server</param>
/// <returns>True if the message can be handled by the device, else false</returns>
/// <privilege>http://tizen.org/privilege/fido.client</privilege>
/// <summary>
/// Processes the given FIDO UAF message.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="uafMessage">The FIDO UAF message which is received from the relying party server</param>
/// <param name="channelBindng">The channel binding data in JSON format which is received from the relying party server</param>
/// <returns>FIDO response message</returns>
/// <summary>
/// Notifies the FIDO client about the server result. FIDO Server sends the result of processing a UAF message to FIDO client.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
/// <param name="responseCode">The status code received from Server.(StautsOk implies success)</param>
/// <param name="response">The FIDO response message sent to server in JSON format</param>
/// <privilege>http://tizen.org/privilege/fido.client</privilege>
/// <summary>
/// Authenticator's supported algorithm and encoding
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public enum AuthenticationAlgorithm
{
/// <summary>
/// SECP256R1 ECDSA SHA256 Raw
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Secp256r1EcdsaSha256Raw = 0X01,
/// <summary>
/// SECP256R1 ECDSA SHA256 DER
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Secp256r1EcdsaSha256Der = 0X02,
/// <summary>
/// RSA PSS SHA256 Raw
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
RsassaPssSha256Raw = 0X03,
/// <summary>
/// RSA PSS SHA256 DER
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
RsassaPssSha256Der = 0X04,
/// <summary>
/// SECP256K1 ECDSA SHA256 Raw
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Secp256k1EcdsaSha256Raw = 0X05,
/// <summary>
/// SECP256K1 ECDSA SHA256 DER
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Secp256k1EcdsaSha256Der = 0X06
}
/// <summary>
/// Authenticator's supported user verification method type.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public enum UserVerificationMethod
{
/// <summary>
/// User presence verification.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Presence = 0X01,
/// <summary>
/// User fingerprint verification.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Fingerprint = 0X02,
/// <summary>
/// User passcode verification.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Passcode = 0X04,
/// <summary>
/// User voiceprint verification.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Voiceprint = 0X08,
/// <summary>
/// User faceprint verification.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Faceprint = 0X10,
/// <summary>
/// User location verification.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Location = 0X20,
/// <summary>
/// User eyeprint verification.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Eyeprint = 0X40,
/// <summary>
/// User pattern verification.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Pattern = 0X80,
/// <summary>
/// User handprint verification.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Handprint = 0X100,
/// <summary>
/// Silent verification.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
None = 0X200,
/// <summary>
/// If an authenticator sets multiple flags for user verification types, it may also set this flag to indicate that all verification methods will be enforced (e.g. faceprint AND voiceprint). If flags for multiple user verification methods are set and this flag is not set, verification with only one is necessary (e.g. fingerprint OR passcode).
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
All = 0X400
}
/// <summary>
/// Authenticator's supported key protection method type.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public enum KeyProtectionType
{
/// <summary>
/// Software based key management.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Software = 0X01,
/// <summary>
/// Hardware based key management.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Hardware = 0X02,
/// <summary>
/// Trusted Execution Environment based key management.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Tee = 0X04,
/// <summary>
/// Secure Element based key management.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
SecureElement = 0X08,
/// <summary>
/// Authenticator does not store (wrapped) UAuth keys at the client, but relies on a server-provided key handle.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
RemoteHandle = 0X10
}
/// <summary>
/// Authenticator's supported matcher protection type.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public enum MatcherProtectionType
{
/// <summary>
/// Authenticator's matcher is running in software.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Software = 0X01,
/// <summary>
/// Authenticator's matcher is running inside the Trusted Execution Environment.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Tee = 0X02,
/// <summary>
/// Aauthenticator's matcher is running on the chip.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
OnChip = 0X04
}
/// <summary>
/// Authenticator's supproted method to communicate to FIDO user device.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public enum AuthenticatorAttachmentHint
{
/// <summary>
/// Authenticator is permanently attached to the FIDO User Device.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Internal = 0X01,
/// <summary>
/// Authenticator is removable or remote from the FIDO User Device.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
External = 0X02,
/// <summary>
/// The external authenticator currently has an exclusive wired connection.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Wired = 0X04,
/// <summary>
/// The external authenticator communicates with the FIDO User Device through wireless means.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Wireless = 0X08,
/// <summary>
/// Authenticator is able to communicate by NFC to the FIDO User Device.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Nfc = 0X10,
/// <summary>
/// Authenticator is able to communicate by Bluetooth to the FIDO User Device.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Bt = 0X20,
/// <summary>
/// Authenticator is connected to the FIDO User Device ver a non-exclusive network (e.g. over a TCP/IP LAN or WAN, as opposed to a PAN or point-to-point connection).
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Nw = 0X40,
/// <summary>
/// The external authenticator is in a "ready" state.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Ready = 0X80,
/// <summary>
/// The external authenticator is able to communicate using WiFi Direct with the FIDO User Device.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
WifiDirect = 0X100
}
/// <summary>
/// Authenticator's supported Attestation type.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public enum AuthenticatorAttestationType
{
/// <summary>
/// Full basic attestation.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
BasicFull = 0X3e07,
/// <summary>
/// Surrogate basic attestation.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
BasicSurrogate = 0X3e08,
}
/// <summary>
/// Transaction confirmation display capability type.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
public enum TransactionConfirmationDisplayType
{
/// <summary>
/// Some form of transaction confirmation display is available on this authenticator.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Any = 0X01,
/// <summary>
/// Software-based transaction confirmation display operating in a privileged context is available on this authenticator.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
PrivilegedSoftware = 0X02,
/// <summary>
/// Transaction confirmation display is in a Trusted Execution Environment.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Tee = 0X04,
/// <summary>
/// Transaction confirmation display based on hardware assisted capabilities is available on this authenticator.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Hw = 0X08,
/// <summary>
/// Transaction confirmation display is provided on a distinct device from the FIDO User Device.
/// </summary>
+ /// <since_tizen> 3 </since_tizen>
Remote = 0X10
}
}