This library relies on foreign libraries for the implementations of cryptographic primitives. Each foreign library is called a cryptography provider and it has an associated factory that map cryptographic algorithm specifiers to implementations.
Cryptography providers may be used to obtain algorithm implementations either explicitly or implicitly. An implementation of a cryptographic algorithm may be obtained explicitly by calling the appropriate function (eg, get-digest, get-cipher, etc) on a factory or list of factories. Alternatively, most functions provided by this library for performing cryptographic operations accept either a implementation object or an algorithm specifier. If an algorithm specifier is given, an implementation is implicitly sought from the factories in (crypto-factories); if no implementation is available, an exception is raised.
(crypto-factories factories) → void? factories : (or/c crypto-factory? (listof crypto-factory?))
The initial value is '().
(or/c digest-impl? digest-ctx? cipher-impl? cipher-ctx? pk-impl? pk-parameters? pk-key?)
→ (or/c (listof exact-nonnegative-integer?) #f) factory : crypto-factory?
the version of the underlying foreign library (if known)
the available digests
the available ciphers
the available PK systems
the available EC named curves
the available key-derivation functions
|(require crypto/all)||package: crypto-lib|
Warning: the order of the factories may change in future versions of this library. This module is intended as a convenience for interactive use, not for developing libraries or applications.
|(require crypto/libcrypto)||package: crypto-lib|
|(require crypto/gcrypt)||package: crypto-lib|
|(require crypto/nettle)||package: crypto-lib|
|(require crypto/sodium)||package: crypto-lib|
|(require crypto/b2)||package: crypto-lib|
|(require crypto/argon2)||package: crypto-lib|