Stability | experimental |
---|---|
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Crypto.WebAuthn.Model.Kinds
Description
This module contains some useful kinds used throughout this library to ensure better type safety. Also included are some singleton types for these kinds via the singletons library
Synopsis
- data CeremonyKind
- data SCeremonyKind :: CeremonyKind -> Type where
- data ProtocolKind
- data SProtocolKind :: ProtocolKind -> Type where
- data AttestationKind
Documentation
data CeremonyKind Source #
(spec) A Haskell kind for a Webauthn ceremony. This is used throughout this library for extra type safety and API clarity.
Constructors
Registration | (spec) The ceremony where a user,
a Relying Party, and
the user’s client (containing
at least one authenticator)
work in concert to create a
public key credential
and associate it with the user’s Relying Party
account. Note that this includes employing a
test of user presence
or user verification.
After a successful registration ceremony,
the user can be authenticated by an
authentication ceremony.
The WebAuthn registration ceremony is defined in
§ 7.1 Registering a New Credential,
and is initiated by the Relying Party calling
|
Authentication | (spec) The ceremony where a user, and the user’s client (containing at least one authenticator) work in concert to cryptographically prove to a Relying Party that the user controls the credential private key of a previously-registered public key credential (see Registration). Note that this includes a test of user presence or user verification. The WebAuthn authentication ceremony
is defined in § 7.2 Verifying an Authentication Assertion,
and is initiated by the Relying Party calling
|
Instances
SingI 'Authentication Source # | |
Defined in Crypto.WebAuthn.Model.Kinds Methods sing :: Sing 'Authentication # | |
SingI 'Registration Source # | |
Defined in Crypto.WebAuthn.Model.Kinds Methods sing :: Sing 'Registration # | |
type Sing Source # | |
Defined in Crypto.WebAuthn.Model.Kinds |
data SCeremonyKind :: CeremonyKind -> Type where Source #
The singleton type for CeremonyKind
Constructors
SRegistration :: SCeremonyKind 'Registration | |
SAuthentication :: SCeremonyKind 'Authentication |
Instances
ToJSON (SCeremonyKind c) Source # | An arbitrary and potentially unstable JSON encoding, only intended for logging purposes. To actually encode and decode structures, use the Crypto.WebAuthn.Encoding modules |
Defined in Crypto.WebAuthn.Model.Kinds Methods toJSON :: SCeremonyKind c -> Value # toEncoding :: SCeremonyKind c -> Encoding # toJSONList :: [SCeremonyKind c] -> Value # toEncodingList :: [SCeremonyKind c] -> Encoding # | |
Show (SCeremonyKind c) Source # | |
Defined in Crypto.WebAuthn.Model.Kinds Methods showsPrec :: Int -> SCeremonyKind c -> ShowS # show :: SCeremonyKind c -> String # showList :: [SCeremonyKind c] -> ShowS # | |
Eq (SCeremonyKind c) Source # | |
Defined in Crypto.WebAuthn.Model.Kinds Methods (==) :: SCeremonyKind c -> SCeremonyKind c -> Bool # (/=) :: SCeremonyKind c -> SCeremonyKind c -> Bool # |
data ProtocolKind Source #
Authenticator protocols supported by webauthn attestations
data SProtocolKind :: ProtocolKind -> Type where Source #
The singleton type for ProtocolKind
Constructors
SFidoU2F :: SProtocolKind 'FidoU2F | |
SFido2 :: SProtocolKind 'Fido2 |
Instances
ToJSON (SProtocolKind p) Source # | An arbitrary and potentially unstable JSON encoding, only intended for logging purposes. To actually encode and decode structures, use the Crypto.WebAuthn.Encoding modules |
Defined in Crypto.WebAuthn.Model.Kinds Methods toJSON :: SProtocolKind p -> Value # toEncoding :: SProtocolKind p -> Encoding # toJSONList :: [SProtocolKind p] -> Value # toEncodingList :: [SProtocolKind p] -> Encoding # | |
Show (SProtocolKind p) Source # | |
Defined in Crypto.WebAuthn.Model.Kinds Methods showsPrec :: Int -> SProtocolKind p -> ShowS # show :: SProtocolKind p -> String # showList :: [SProtocolKind p] -> ShowS # | |
Eq (SProtocolKind p) Source # | |
Defined in Crypto.WebAuthn.Model.Kinds Methods (==) :: SProtocolKind p -> SProtocolKind p -> Bool # (/=) :: SProtocolKind p -> SProtocolKind p -> Bool # |
data AttestationKind Source #
A Haskell kind for the attestation type, indicating whether we have verifiable information about the authenticator that created the public key credential.
Constructors
Unverifiable | An unverifiable attestation type. This includes None and Self attestation. This kind indicates that we do not have any information about the authenticator model used. |
Verifiable ProtocolKind | A verifiable attestation type. This includes Basic, AttCA and AnonCA attestation. This kind indicates that we have verifiable information about the authenticator model used. |