6 releases

new 0.2.9 Apr 22, 2025
0.2.8 Apr 17, 2025
0.2.6 Mar 12, 2025
0.2.4 Feb 27, 2025
0.1.0 Feb 12, 2025

#915 in Cryptography

Download history 130/week @ 2025-02-10 10/week @ 2025-02-17 456/week @ 2025-02-24 219/week @ 2025-03-03 160/week @ 2025-03-10 15/week @ 2025-03-17 253/week @ 2025-04-14

253 downloads per month

MIT license

14KB
200 lines

A simple crypto lib use Aes and crypto_box.

mod tests {
    use super::*;

    #[test]
    fn enc_dec_self_works() {
        let key_pair = generate_pal_key_pair();
        let plain_bytes = b"I am a super man.";
        let cipher_bytes = pal_cb_encrypt(key_pair.public_key_bytes.as_slice(), key_pair.secret_key_bytes.as_slice(), plain_bytes).unwrap();
        let decrypted_bytes = pal_cb_decrypt(key_pair.public_key_bytes.as_slice(), key_pair.secret_key_bytes.as_slice(), &cipher_bytes, None).unwrap();
        assert_eq!(plain_bytes, decrypted_bytes.as_slice());
    }

    #[test]
    fn enc_dec_each_works(){
        let key_pair_a = generate_pal_key_pair();
        let key_pair_b = generate_pal_key_pair();

        let a_say = b"Hi, I am a.";
        let b_say = b"Hi, I am B.";

        let a_say_encrypted = pal_cb_encrypt(key_pair_b.public_key_bytes.as_slice(), key_pair_a.secret_key_bytes.as_slice(), a_say).unwrap();
        let a_say_decrypted = pal_cb_decrypt(key_pair_a.public_key_bytes.as_slice(), key_pair_b.secret_key_bytes.as_slice(), a_say_encrypted.as_slice(), None).unwrap();
        assert_eq!(a_say, a_say_decrypted.as_slice());

        let b_say_encrypted = pal_cb_encrypt(key_pair_a.public_key_bytes.as_slice(), key_pair_b.secret_key_bytes.as_slice(), b_say).unwrap();
        let b_say_decrypted = pal_cb_decrypt(key_pair_b.public_key_bytes.as_slice(), key_pair_a.secret_key_bytes.as_slice(), b_say_encrypted.as_slice(), None).unwrap();
        assert_eq!(b_say, b_say_decrypted.as_slice());
    }

    #[test]
    fn sign_verify_works(){
        let key_pair = generate_pal_key_pair();
        let msg = b"Hi, this is my signature.";
        let sign = pal_cb_sign(key_pair.secret_key_bytes.as_slice(), msg).unwrap();
        assert!(pal_cb_verify_sign(key_pair.public_key_bytes.as_slice(), msg, &sign).unwrap());
    }

Dependencies

~7MB
~120K SLoC