Brr_webcrypto.Subtle_crypto
SubtleCrypto
objects
The type for SubtleCrypto
objects.
val encrypt : t -> Crypto_algo.t -> Crypto_key.t -> ('a, 'b) Brr.Tarray.t -> Brr.Tarray.Buffer.t Fut.or_error
encrypt s a k data
is data
encrypted with key k
and algorithm a
.
val decrypt : t -> Crypto_algo.t -> Crypto_key.t -> ('a, 'b) Brr.Tarray.t -> Brr.Tarray.Buffer.t Fut.or_error
decrypt s a k data
is data
decrypted with key k
and algorithm a
.
val digest : t -> Crypto_algo.t -> ('a, 'b) Brr.Tarray.t -> Brr.Tarray.Buffer.t Fut.or_error
digest s a data
is the digest of data
according to algorithm a
.
val sign : t -> Crypto_algo.t -> Crypto_key.t -> ('a, 'b) Brr.Tarray.t -> Brr.Tarray.Buffer.t Fut.or_error
sign s a k data
is the signature of data
with key k
and algorithm a
.
val verify : t -> Crypto_algo.t -> Crypto_key.t -> sig':('a, 'b) Brr.Tarray.t -> ('c, 'd) Brr.Tarray.t -> bool Fut.or_error
verify s a k ~sig' data
is true
iff the signature of data
with key k
and algorithm a
matches sig'
.
val generate_key : t -> Crypto_algo.t -> extractable:bool -> usages:Crypto_key.Usage.t list -> Crypto_key.t Fut.or_error
generate_key s a ~extractable ~usage
is a key generated for algorithm a
and usages usages
. Warning if the algorithm generates a key pair use generate_key_pair
.
val generate_key_pair : t -> Crypto_algo.t -> extractable:bool -> usages:Crypto_key.Usage.t list -> Crypto_key.pair Fut.or_error
generate_key s a ~extractable ~usage
is a key generated of type and parameters a
and usages usages
. Warning if the algorithm generates a single key use generate_key
.
val derive_bits : t -> Crypto_algo.t -> Crypto_key.t -> int -> Brr.Tarray.Buffer.t Fut.or_error
derive_bits s a k l
are l
bits derived from k
with algorithm a
.
val derive_key : t -> Crypto_algo.t -> Crypto_key.t -> derived:Crypto_algo.t -> extractable:bool -> usages:Crypto_key.Usage.t list -> Crypto_key.t Fut.or_error
derive_key s a k ~derived_type ~extractable ~usages
is a key of type and parameters ~derived
and usages usages
derived from key k
of type and parameters a
.
val export_key : t -> Crypto_key.Format.t -> Crypto_key.t -> [ `Buffer of Brr.Tarray.Buffer.t | `Json_web_key of Brr.Json.t ] Fut.or_error
export_key s f k
is the key k
exported in format f
. `Json_web_key
is only returned if Crypto_key.Format.jwk
is specified.
val import_key : t -> Crypto_key.Format.t -> [ `Buffer of Brr.Tarray.Buffer.t | `Json_web_key of Brr.Json.t ] -> Crypto_algo.t -> extractable:bool ->
usages:Crypto_key.Usage.t list -> Crypto_key.t Fut.or_error
import_key s f k a ~extractable ~usage
is the key k
imported from format f
and type a
used for usages
.
val wrap_key : t -> Crypto_key.Format.t -> Crypto_key.t -> wrap_key:Crypto_key.t -> wrapper:Crypto_algo.t -> Brr.Tarray.Buffer.t Fut.or_error
wrap_key s f k ~wrap_key ~wrapper
is like export_key
but encrypts the result with wrap_key
ad algorithm wrapper
.
val unwrap_key : t -> Crypto_key.Format.t -> ('a, 'b) Brr.Tarray.t -> wrap_key:Crypto_key.t -> wrapper:Crypto_algo.t -> unwrapped:Crypto_algo.t ->
extractable:bool -> usages:Crypto_key.Usage.t list -> Crypto_key.t Fut.or_error
unwrap_key s f b ~wrap_key ~wrapper ~unwrapped ~extractable ~usages
is like import_key
but unwraps the wrapper of b
made wtih wrap_key
and algorithm wrapped
.