6 releases
0.3.0 | Feb 22, 2021 |
---|---|
0.2.3 | Feb 21, 2021 |
0.1.0 | Feb 20, 2021 |
#184 in macOS and iOS APIs
21 downloads per month
23KB
651 lines
common-crypto
Bindings for Apple's Common Crypto APIs.
Examples
[dependencies]
common-crypto = "0.3"
Cryptor
let config = Config::AES256 {
mode: Mode::CTR,
iv: Some(b"use random iv :)"),
key: b"0123456789abcdef0123456789abcdef",
};
let encrypted = Cryptor::encrypt(&config, b"Hello").unwrap();
let decrypted = Cryptor::decrypt(&config, encrypted).unwrap();
assert_eq!(decrypted, b"Hello");
Hash
let hash = Hash::sha256(b"data");
let mut hasher = hash::SHA256::new();
hasher.update(b"data");
hasher.update(b"more data");
let hash = hasher.finish();
HMAC
let auth_code = HMAC::sha512(b"Key", b"Input");
let mut hasher = hmac::SHA256::new(b"Key");
hasher.update(b"data");
hasher.update(b"more data");
let hash = hasher.finish();
What's missing?
- Resetting cryptors - I don't see a use case for this, so I won't implement it.
- Padding and rounds for cryptors. I want to make sure they're only configurable where they're actually supported.
Contributing
Feel free to contribute in any way you like.