.Sh STANDARDS
These functions implement Argon2i.
An RFC draft is being maintained.
+.Sh HISTORY
+The
+.Fn crypto_argon2i_general
+function first appeared in Monocypher 0.1 but was called
+.Fn crypto_argon2i ;
+it was renamed to its current name in Monocypher 1.1.0.
+The current
+.Fn crypto_argon2i
+first appeared in Monocypher 1.1.0.
.Sh CAVEATS
Any deviation from the specified input and output length ranges results
in
.Xr intro 3monocypher
.Sh STANDARDS
These functions implement BLAKE2b.
+.Sh HISTORY
+The
+.Fn crypto_blake2b ,
+.Fn crypto_blake2b_general ,
+.Fn crypto_blake2b_general_init ,
+.Fn crypto_blake2b_init ,
+.Fn crypto_blake2b_update ,
+and
+.Fn crypto_blake2b_final
+functions first appeared in Monocypher 0.1.
.Sh CAVEATS
Monocypher does not perform any input validation.
Any deviation from the specified input and output length ranges results
This function implements HChacha20.
HChacha20 derives from Chacha20 the same way HSalsa20 derives from
Salsa20.
+.Sh HISTORY
+The
+.Fn crypto_chacha20_H
+function first appeared in Monocypher 0.1.
.Sh CAVEATS
.Sy This is not a general-purpose cryptographic hash function .
XChacha20 derives from Chacha20 the same way XSalsa20 derives from
Salsa20, and benefits from the same security reduction (proven secure
as long as Chacha20 itself is secure).
+.Sh HISTORY
+The
+.Fn crypto_chacha20_encrypt ,
+.Fn crypto_chacha20_init ,
+functions first appeared in Monocypher 0.1.
+.Fn crypto_chacha20_stream
+was added in Monocypher 0.2.
+.Fn crypto_chacha20_x_init
+and
+.Fn crypto_chacha20_set_ctr
+were added in Monocypher 1.0.
.Sh SECURITY CONSIDERATIONS
.Ss Encrypted does not mean secure
Chacha20 only protects against eavesdropping, not forgeries.
.Sh STANDARDS
These functions are equivalent to an implementation of the X pattern
of the Noise protocol framework.
+.Sh HISTORY
+The
+.Fn crypto_kex_x_init_client ,
+.Fn crypto_kex_x_init_server ,
+.Fn crypto_kex_x_1 ,
+and
+.Fn crypto_kex_x_2
+functions first appeared in Monocypher 2.1.0.
.Sh SECURITY CONSIDERATIONS
Unlike the
.Xr crypto_kex_xk1_init_client 3monocypher
.Sh STANDARDS
These functions are equivalent to an implementation of the XK1 pattern
of the Noise protocol framework.
+.Sh HISTORY
+The
+.Fn crypto_kex_xk1_init_client ,
+.Fn crypto_kex_xk1_init_server ,
+.Fn crypto_kex_xk1_1 ,
+.Fn crypto_kex_xk1_2 ,
+.Fn crypto_kex_xk1_3 ,
+and
+.Fn crypto_kex_xk1_4
+functions first appeared in Monocypher 2.1.0.
These functions implement X25519, described in RFC 7748.
.Fn crypto_key_exchange
uses HChacha20 as well.
+.Sh HISTORY
+The
+.Fn crypto_key_exchange
+function first appeared in Monocypher 0.2.
+The
+.Fn crypto_key_exchange_public_key
+macro alias first appeared in Monocypher 1.1.0.
.Sh SECURITY CONSIDERATIONS
If either of the long term secret keys leaks, it may compromise
.Em all past messages .
XChacha20 derives from Chacha20 the same way XSalsa20 derives from
Salsa20, and benefits from the same security reduction (proven secure
as long as Chacha20 itself is secure).
+.Sh HISTORY
+The
+.Fn crypto_lock
+and
+.Fn crypto_unlock
+functions first appeared in Monocypher 0.1.
+.Fn crypto_lock_aead
+and
+.Fn crypto_unlock_aead
+were introduced in Monocypher 1.1.0.
XChacha20 derives from Chacha20 the same way XSalsa20 derives from
Salsa20, and benefits from the same security reduction (proven secure
as long as Chacha20 itself is secure).
+.Sh HISTORY
+The
+.Fn crypto_lock_init ,
+.Fn crypto_lock_auth_ad ,
+.Fn crypto_lock_auth_message ,
+.Fn crypto_lock_update ,
+.Fn crypto_lock_final ,
+.Fn crypto_unlock_init ,
+.Fn crypto_unlock_auth_ad ,
+.Fn crypto_unlock_auth_message ,
+.Fn crypto_unlock_update ,
+and
+.Fn crypto_unlock_final
+functions first appeared in Monocypher 1.1.0.
.Sh SECURITY CONSIDERATIONS
Messages are not verified until the call to
.Fn crypto_unlock_final .
.Sh SEE ALSO
.Xr crypto_verify16 3monocypher ,
.Xr intro 3monocypher
+.Sh HISTORY
+The
+.Fn crypto_memcmp
+function first appeared in Monocypher 0.1.
+.Fn crypto_zerocmp
+was introduced in Monocypher 0.6.
+These functions were removed in Monocypher 1.1.0.
.Xr intro 3monocypher
.Sh STANDARDS
These functions implement Poly1305, described in RFC 8439.
+.Sh HISTORY
+The
+.Fn crypto_poly1305_init ,
+.Fn crypto_poly1305_update ,
+and
+.Fn crypto_poly1305_final
+functions first appeared in Monocypher 0.1.
+.Fn crypto_poly1305
+first appeared in Monocypher 1.1.0.
.Sh SECURITY CONSIDERATIONS
Poly1305 is difficult to use correctly.
Do not use it unless you are absolutely sure what you are doing.
These functions implement PureEdDSA with Curve25519 and Blake2b, as
described in RFC 8032.
This is the same as Ed25519, with Blake2b instead of SHA-512.
+.Sh HISTORY
+The
+.Fn crypto_sign ,
+.Fn crypto_check ,
+and
+.Fn crypto_sign_public_key
+functions appeared in Monocypher 0.2.
.Sh SECURITY CONSIDERATIONS
.Ss Signature malleability
EdDSA signatures are not unique like cryptographic hashes.
These functions implement PureEdDSA with Curve25519 and Blake2b, as
described in RFC 8032.
This is the same as Ed25519, with Blake2b instead of SHA-512.
+.Sh HISTORY
+The
+.Fn crypto_sign_init_first_pass ,
+.Fn crypto_sign_update ,
+.Fn crypto_sign_final ,
+.Fn crypto_sign_init_second_pass ,
+.Fn crypto_check_init ,
+.Fn crypto_check_update ,
+and
+.Fn crypto_check_final
+functions first appeared in Monocypher 1.1.0.
.Sh SECURITY CONSIDERATIONS
Messages are not verified until the call to
.Fn crypto_check_final .
otherwise.
.Sh SEE ALSO
.Xr intro 3monocypher
+.Sh HISTORY
+The
+.Fn crypto_verify16 ,
+.Fn crypto_verify32 ,
+.Fn crypto_verify64
+functions first appeared in Monocypher 1.1.0.
+They replaced the
+.Fn crypto_memcmp
+and
+.Fn crypto_zerocmp
+functions that were present until Monocypher 1.0.1.
This function returns nothing.
.Sh SEE ALSO
.Xr intro 3monocypher
+.Sh HISTORY
+The
+.Fn crypto_wipe
+function first appeared in Monocypher 1.1.0.
.Xr intro 3monocypher
.Sh STANDARDS
This function implements X25519, described in RFC 7748.
+.Sh HISTORY
+The
+.Fn crypto_x25519 ,
+and
+.Fn crypto_x25519_public_key
+functions first appeared in Monocypher 0.1.
.Sh SECURITY CONSIDERATIONS
If either of the long term secret keys leaks, it may compromise
.Em all past messages .