pub fn crypto_box_seal_open(cipher: &[u8], pk: &[u8], sk: &[u8])
    -> Result<Vec<u8>, DecryptionError>
{
    assert_eq!(sk.len(), 32);
    let (epk, cipher) = cipher.split_at(32);
    let nonce = seal_nonce(epk, pk);
    return crypto_box_open(cipher, &nonce, epk, sk);
}
/// Unseal an (anonymous) crypto box
Unseal an (anonymous) crypto box
Unseal an ( anonymous ) crypto box
pub fn crypto_box_seal_open(cipher: &[u8], pk: &[u8], sk: &[u8])
    -> Result<Vec<u8>, DecryptionError>
{
    assert_eq!(sk.len(), 32);
    let (epk, cipher) = cipher.split_at(32);
    let nonce = seal_nonce(epk, pk);
    return crypto_box_open(cipher, &nonce, epk, sk);
}
pub fn crypto_box_seal_open ( cipher : & [ u8 ] , pk : & [ u8 ] , sk : & [ u8 ] ) -> Result < Vec < u8 > , DecryptionError > { assert_eq ! ( sk len ( ) 32 ) ; let ( epk , cipher ) = cipher . split_at ( 32 ) ; let nonce = seal_nonce ( epk , pk ) ; return crypto_box_open ( cipher , & nonce , epk , sk ) ; }
Unseal an (anonymous) crypto box
Unseal an ( anonymous ) crypto box
cipher
&[u8]
pk
&[u8]
sk
&[u8]
cipher
&[u8]
pk
&[u8]
sk
&[u8]