1#![cfg_attr(not(feature = "std"), no_std)]
19#![forbid(unsafe_code)]
20#![allow(clippy::incompatible_msrv)]
21#![allow(clippy::manual_rotate)]
22
23#[cfg(not(feature = "std"))]
30#[macro_use]
31extern crate alloc;
32
33mod internal_alloc;
34
35pub mod drbg;
36pub mod hash;
37pub mod pkc;
38pub mod sym;
39
40pub use drbg::HmacDrbgSha256;
41pub use hash::{
42 noxtls_bcrypt_pbkdf_sha512, noxtls_decode_hex, noxtls_hkdf_expand_sha256,
43 noxtls_hkdf_expand_sha384, noxtls_hkdf_extract_sha256, noxtls_hkdf_extract_sha384,
44 noxtls_hmac_sha1, noxtls_hmac_sha256, noxtls_hmac_sha384, noxtls_hmac_sha512, noxtls_sha1,
45 noxtls_sha256, noxtls_sha384, noxtls_sha3_256, noxtls_sha3_384, noxtls_sha3_512, noxtls_sha512,
46 noxtls_shake128, noxtls_shake256, noxtls_tls12_finished_verify_data_sha256,
47 noxtls_tls12_finished_verify_data_sha384, noxtls_tls12_prf_sha256, noxtls_tls12_prf_sha384,
48 Digest, Sha256, Sha512, TlsTranscriptSha256, TlsTranscriptSha384,
49};
50#[allow(deprecated)]
51pub use pkc::{
52 noxtls_ecc_generate_keypair_auto, noxtls_ed25519_generate_private_key_auto,
53 noxtls_ed25519_public_key_from_subject_public_key_info, noxtls_ed25519_verify,
54 noxtls_ed448_generate_private_key_auto, noxtls_ed448_public_key_from_subject_public_key_info,
55 noxtls_ed448_verify, noxtls_ffdhe_public_key, noxtls_ffdhe_shared_secret,
56 noxtls_mldsa_generate_keypair_auto, noxtls_mldsa_public_key_from_subject_public_key_info,
57 noxtls_mldsa_verify, noxtls_mlkem_decapsulate, noxtls_mlkem_encapsulate_auto,
58 noxtls_mlkem_generate_keypair_auto, noxtls_mlkem_generate_keypair_auto_for_parameter_set,
59 noxtls_named_curve_from_mbedtls_name, noxtls_named_curve_info,
60 noxtls_named_ec_generate_private_key_auto, noxtls_named_ecdh_shared_secret,
61 noxtls_named_ecdsa_sign_digest, noxtls_named_ecdsa_verify_digest,
62 noxtls_p256_ecdh_shared_secret, noxtls_p256_ecdsa_sign_digest,
63 noxtls_p256_ecdsa_sign_digest_auto, noxtls_p256_ecdsa_sign_sha256,
64 noxtls_p256_ecdsa_sign_sha256_auto, noxtls_p256_ecdsa_verify_digest,
65 noxtls_p256_ecdsa_verify_sha256, noxtls_p256_generate_private_key_auto,
66 noxtls_p384_ecdh_shared_secret, noxtls_p384_ecdsa_sign_digest,
67 noxtls_p384_ecdsa_sign_digest_auto, noxtls_p384_ecdsa_sign_sha384,
68 noxtls_p384_ecdsa_sign_sha384_auto, noxtls_p384_ecdsa_verify_digest,
69 noxtls_p384_ecdsa_verify_sha384, noxtls_p384_generate_private_key_auto,
70 noxtls_rsa_generate_keypair_secure_auto, noxtls_rsa_generate_keypair_with_policy_auto,
71 noxtls_rsaes_oaep_sha256_decrypt, noxtls_rsaes_oaep_sha256_decrypt_crt_only,
72 noxtls_rsaes_oaep_sha256_encrypt_auto, noxtls_rsaes_pkcs1_v15_decrypt,
73 noxtls_rsaes_pkcs1_v15_decrypt_crt_only, noxtls_rsaes_pkcs1_v15_encrypt_auto,
74 noxtls_rsassa_pss_sha256_sign, noxtls_rsassa_pss_sha256_sign_auto,
75 noxtls_rsassa_pss_sha256_verify, noxtls_rsassa_pss_sha384_sign,
76 noxtls_rsassa_pss_sha384_sign_auto, noxtls_rsassa_pss_sha384_verify, noxtls_rsassa_pss_sign,
77 noxtls_rsassa_pss_verify, noxtls_rsassa_sha1_sign, noxtls_rsassa_sha1_verify,
78 noxtls_rsassa_sha256_sign, noxtls_rsassa_sha256_verify, noxtls_rsassa_sha384_sign,
79 noxtls_rsassa_sha384_verify, noxtls_rsassa_sha512_sign, noxtls_rsassa_sha512_verify,
80 noxtls_run_pq_self_tests, noxtls_secp256k1_ecdsa_sign_sha256,
81 noxtls_secp521r1_ecdsa_sign_sha512, noxtls_x25519, noxtls_x25519_basepoint,
82 noxtls_x25519_generate_private_key_auto, noxtls_x25519_shared_secret, EccKeyAlgorithm,
83 EccPrivateKey, EccPublicKey, Ed25519PrivateKey, Ed25519PublicKey, Ed448PrivateKey,
84 Ed448PublicKey, MlDsaPrivateKey, MlDsaPublicKey, MlKemParameterSet, MlKemPrivateKey,
85 MlKemPublicKey, NamedCurve, NamedCurveInfo, NamedEcPrivateKey, NamedEcPublicKey,
86 P256PrivateKey, P256PublicKey, P384PrivateKey, P384PublicKey, RsaKeySizePolicy, RsaPrivateKey,
87 RsaPssHashAlgorithm, RsaPublicKey, X25519PrivateKey, X25519PublicKey, X448PrivateKey,
88 X448PublicKey, MLKEM1024_CIPHERTEXT_LEN, MLKEM1024_PRIVATE_KEY_LEN, MLKEM1024_PUBLIC_KEY_LEN,
89 MLKEM512_CIPHERTEXT_LEN, MLKEM512_PRIVATE_KEY_LEN, MLKEM512_PUBLIC_KEY_LEN,
90 MLKEM_CIPHERTEXT_LEN, MLKEM_PRIVATE_KEY_LEN, MLKEM_PUBLIC_KEY_LEN, MLKEM_SHARED_SECRET_LEN,
91 NOXTLS_MBEDTLS_ECC_CURVES, OID_ID_MLDSA65,
92};
93#[cfg(feature = "hazardous-legacy-crypto")]
94pub use pkc::{noxtls_rsa_generate_keypair_auto, noxtls_rsa_generate_keypair_with_exponent_auto};
95#[cfg(feature = "hazardous-legacy-crypto")]
96pub use pkc::{
97 noxtls_x448, noxtls_x448_basepoint, noxtls_x448_generate_private_key_auto,
98 noxtls_x448_shared_secret,
99};
100pub use sym::{
101 noxtls_aes_cbc_decrypt, noxtls_aes_cbc_encrypt, noxtls_aes_ccm_decrypt,
102 noxtls_aes_ccm_decrypt_with_tag_len, noxtls_aes_ccm_encrypt,
103 noxtls_aes_ccm_encrypt_with_tag_len, noxtls_aes_cfb_apply, noxtls_aes_cfb_decrypt,
104 noxtls_aes_cfb_encrypt, noxtls_aes_ctr_apply, noxtls_aes_gcm_decrypt, noxtls_aes_gcm_encrypt,
105 noxtls_aes_ofb_apply, noxtls_aes_xts_decrypt, noxtls_aes_xts_encrypt, noxtls_aria_cbc_decrypt,
106 noxtls_aria_cbc_encrypt, noxtls_aria_cfb_apply, noxtls_aria_cfb_decrypt,
107 noxtls_aria_cfb_encrypt, noxtls_aria_ctr_apply, noxtls_aria_ctr_decrypt,
108 noxtls_aria_ctr_encrypt, noxtls_aria_ofb_apply, noxtls_aria_ofb_decrypt,
109 noxtls_aria_ofb_encrypt, noxtls_camellia_cbc_decrypt, noxtls_camellia_cbc_encrypt,
110 noxtls_camellia_cfb_apply, noxtls_camellia_cfb_decrypt, noxtls_camellia_cfb_encrypt,
111 noxtls_camellia_ctr_apply, noxtls_camellia_ctr_decrypt, noxtls_camellia_ctr_encrypt,
112 noxtls_camellia_ofb_apply, noxtls_camellia_ofb_decrypt, noxtls_camellia_ofb_encrypt,
113 noxtls_chacha20_poly1305_decrypt, noxtls_chacha20_poly1305_encrypt, noxtls_poly1305_key_gen,
114 noxtls_poly1305_mac, noxtls_poly1305_tags_equal, AesCipher, AriaCipher, CamelliaCipher,
115 ChaCha20,
116};
117#[cfg(feature = "hazardous-legacy-crypto")]
118pub use sym::{
119 noxtls_aes_ecb_decrypt, noxtls_aes_ecb_encrypt, noxtls_aria_ecb_decrypt,
120 noxtls_aria_ecb_encrypt, noxtls_camellia_ecb_decrypt, noxtls_camellia_ecb_encrypt,
121 noxtls_des_cbc_decrypt, noxtls_des_cbc_encrypt, noxtls_des_cfb_apply, noxtls_des_cfb_decrypt,
122 noxtls_des_cfb_encrypt, noxtls_des_ctr_apply, noxtls_des_ctr_decrypt, noxtls_des_ctr_encrypt,
123 noxtls_des_ecb_decrypt, noxtls_des_ecb_encrypt, noxtls_des_ofb_apply, noxtls_des_ofb_decrypt,
124 noxtls_des_ofb_encrypt, DesCipher, Rc4,
125};