webauthn/src/webauthn.ml

49 lines
1.1 KiB
OCaml
Raw Normal View History

2021-09-28 11:30:14 +00:00
type key_handle = string
type error = [
`None
]
let pp_error _ppf _e = ()
type t = unit
type challenge = string
type typ = Public_key [@name "public-key"]
[@@deriving yojson]
type response_raw = {
attestation_object : string [@key "attestationObject"];
client_data_json : string [@key "clientDataJSON"];
} [@@deriving of_yojson]
type attestation_raw = {
id : string;
raw_id : string [@key "rawId"];
typ : typ [@key "type"];
response : response_raw;
} [@@deriving of_yojson]
let b64_enc = Base64.(encode_string ~pad:false ~alphabet:uri_safe_alphabet)
let lift_err f = function Ok _ as a -> a | Error x -> Error (f x)
let b64_dec thing s =
lift_err
(function `Msg m -> `Base64_decoding (thing, m, s))
Base64.(decode ~pad:false ~alphabet:uri_safe_alphabet s)
let _ = ignore b64_enc; ignore b64_dec
let create _app = ()
let register_request ?key_handles:_ _t = "foo", "bar"
let register_response _t _challenge _data = Error `None
let authentication_request _t _handles = "foo", "bar"
let authentication_response _t _handles _challenges _data =
Error `None