Function rgp::decrypt

source ·
pub fn decrypt(
    verifier: Option<&[u8; 32]>,
    encrypted_content: &[u8],
    mode: Decrypt
) -> Result<(Vec<u8>, [u8; 32]), &'static str>
Expand description

decrypts and verifies content.

use rgp::{decrypt, extract_components_mut, Components, Decrypt};

match extract_components_mut(0, &mut encrypted_content) {
    Components::Dh(key) => {
        let (decrypted_content, _) = decrypt(
            Some(&verifier),
            &encrypted_content,
            Decrypt::Dh(key, sender_pub_key, receiver_priv_key),
        )
        .unwrap();
    }
    Components::Hmac(itr) => {
        let (decrypted_content, _) = decrypt(
            Some(&verifier),
            &encrypted_content,
            Decrypt::Hmac(hmac_key, hmac_value),
        )
        .unwrap();
    }
    Components::Session => {
        let (decrypted_content, _) = decrypt(
            Some(&verifier),
            &encrypted_content,
            Decrypt::Session(session_key),
        )
        .unwrap();
    }
};