using System.Runtime.Serialization; using System.Text.Json.Serialization; using ProtonVPN.OperatingSystems.WebAuthn.Serialization; namespace ProtonVPN.OperatingSystems.WebAuthn.Enums; /// /// Defines hints as to how clients might communicate with a particular authenticator in order to obtain an assertion for a specific credential. /// /// https://www.w3.org/TR/webauthn/#enum-transport [Flags] [JsonConverter(typeof(JsonCustomEnumConverter))] public enum AuthenticatorTransport : uint { /// /// No transport restrictions. /// [EnumMember(Value = "NULL")] #pragma warning disable CA1008 // Enums should have zero value NoRestrictions = 0, #pragma warning restore CA1008 // Enums should have zero value /// /// Universal Serial Bus (USB). /// /// Corresponds to WEBAUTHN_CTAP_TRANSPORT_USB. [EnumMember(Value = "usb")] USB = PInvoke.WEBAUTHN_CTAP_TRANSPORT_USB, /// /// Near Field Communication (NFC). /// /// Corresponds to WEBAUTHN_CTAP_TRANSPORT_NFC. [EnumMember(Value = "nfc")] NFC = PInvoke.WEBAUTHN_CTAP_TRANSPORT_NFC, /// /// Bluetooth Low Energy (BLE). /// /// Corresponds to WEBAUTHN_CTAP_TRANSPORT_BLE. [EnumMember(Value = "ble")] BLE = PInvoke.WEBAUTHN_CTAP_TRANSPORT_BLE, /// /// Hybrid Transport (QR Code). /// /// Corresponds to WEBAUTHN_CTAP_TRANSPORT_HYBRID. [EnumMember(Value = "hybrid")] Hybrid = PInvoke.WEBAUTHN_CTAP_TRANSPORT_HYBRID, /// Corresponds to WEBAUTHN_CTAP_TRANSPORT_TEST. Test = PInvoke.WEBAUTHN_CTAP_TRANSPORT_TEST, /// /// Client device-specific transport. /// /// Corresponds to WEBAUTHN_CTAP_TRANSPORT_INTERNAL. [EnumMember(Value = "internal")] Internal = PInvoke.WEBAUTHN_CTAP_TRANSPORT_INTERNAL }