1#![doc(html_root_url = "https://docs.rs/bc-crypto/0.10.0")]
2#![warn(rust_2018_idioms)]
3
4pub mod error;
31pub use error::{Error, Result};
32
33pub mod hash;
35pub use hash::{
36 CRC32_SIZE, SHA256_SIZE, SHA512_SIZE, double_sha256, hkdf_hmac_sha256,
37 hmac_sha256, hmac_sha512, pbkdf2_hmac_sha256, sha256, sha512,
38};
39
40mod memzero;
41pub use memzero::{memzero, memzero_vec_vec_u8};
42
43mod symmetric_encryption;
44pub use symmetric_encryption::{
45 SYMMETRIC_AUTH_SIZE, SYMMETRIC_KEY_SIZE, SYMMETRIC_NONCE_SIZE,
46 aead_chacha20_poly1305_decrypt, aead_chacha20_poly1305_decrypt_with_aad,
47 aead_chacha20_poly1305_encrypt, aead_chacha20_poly1305_encrypt_with_aad,
48};
49
50mod public_key_encryption;
51pub use public_key_encryption::{
52 X25519_PRIVATE_KEY_SIZE, X25519_PUBLIC_KEY_SIZE,
53 derive_agreement_private_key, derive_signing_private_key,
54 x25519_new_private_key_using, x25519_public_key_from_private_key,
55 x25519_shared_key,
56};
57
58mod ecdsa_keys;
59pub use ecdsa_keys::{
60 ECDSA_MESSAGE_HASH_SIZE, ECDSA_PRIVATE_KEY_SIZE, ECDSA_PUBLIC_KEY_SIZE,
61 ECDSA_SIGNATURE_SIZE, ECDSA_UNCOMPRESSED_PUBLIC_KEY_SIZE,
62 SCHNORR_PUBLIC_KEY_SIZE, ecdsa_compress_public_key,
63 ecdsa_decompress_public_key, ecdsa_derive_private_key,
64 ecdsa_new_private_key_using, ecdsa_public_key_from_private_key,
65 schnorr_public_key_from_private_key,
66};
67
68mod ecdsa_signing;
69pub use ecdsa_signing::{ecdsa_sign, ecdsa_verify};
70
71mod schnorr_signing;
72pub use schnorr_signing::{
73 SCHNORR_SIGNATURE_SIZE, schnorr_sign, schnorr_sign_using,
74 schnorr_sign_with_aux_rand, schnorr_verify,
75};
76
77mod ed25519_signing;
78pub use ed25519_signing::{
79 ED25519_PRIVATE_KEY_SIZE, ED25519_PUBLIC_KEY_SIZE, ED25519_SIGNATURE_SIZE,
80 ed25519_new_private_key_using, ed25519_public_key_from_private_key,
81 ed25519_sign, ed25519_verify,
82};
83
84mod scrypt;
85pub use scrypt::{scrypt, scrypt_opt};
86
87mod argon;
88pub use argon::argon2id;
89
90#[cfg(test)]
91mod tests {
92 #[test]
93 fn test_readme_deps() {
94 version_sync::assert_markdown_deps_updated!("README.md");
95 }
96
97 #[test]
98 fn test_html_root_url() {
99 version_sync::assert_html_root_url_updated!("src/lib.rs");
100 }
101}