pub mod app; pub mod envelope; pub mod error; pub mod key; pub use app::{decryptor, encryptor, encryptor_for, encryptor_from_public_pem, fingerprint_for}; pub use envelope::{ ENVELOPE_PREFIX, decrypt, decrypt_string, encrypt, encrypt_string, envelope_key_id, }; pub use error::{CryptError, CryptResult}; pub use key::{DEFAULT_KEY_BITS, MIN_KEY_BITS, RsaDecryptor, RsaEncryptor, RsaKeyPair}; pub fn constant_time_eq(left: &[u8], right: &[u8]) -> bool { if left.len() != right.len() { return false; } let mut diff = 0u8; for (a, b) in left.iter().zip(right.iter()) { diff |= a ^ b; } diff == 0 }