An implementation of WebAuthn in OCaml
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.8 KiB

opam-version: "2.0"
homepage: ""
dev-repo: "git+"
bug-reports: ""
doc: ""
maintainer: [ "" ]
authors: [ "Reynir Björnsson <>" "Hannes Mehnert <>" ]
license: "BSD-2-Clause"
build: [
["dune" "subst"] {dev}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
depends: [
"ocaml" {>= "4.08.0"}
"dune" {>= "2.7"}
"dream" {dev & >= "1.0.0~alpha2"}
"ppx_blob" {dev}
"cmdliner" {dev}
"logs" {dev}
"lwt" {dev}
"x509" {>= "0.13.0"}
"base64" {>= "3.1.0"}
"cstruct" {>= "6.0.0"}
"cbor" {>= "0.5"}
conflicts: [
"result" {< "1.5"}
synopsis: "WebAuthn - authenticating users to services using public key cryptography"
description: """
WebAuthn is a web standard published by the W3C. Its goal is to
standardize an interfacefor authenticating users to web-based
applications and services using public key cryptography. Modern web
browsers support WebAuthn functionality.
WebAuthn provides two funcitons: register and authenticate. Usually the
public and private keypair is stored on an external token (Yuikey etc.)
or part of the platform (TPM). After the public key is registered, it can
be used to authenticate to the same service.
This module does not preserve a database of registered public keys, their
credential ID, usernames and pending challenges - instead this data must
be stored by a client of this API in a database or other persistent
[Demo server](
[WebAuthn specification at W3C](