fn encrypt()

in src/vtok_p11/src/crypto/encrypt.rs [48:67]


    fn encrypt(mut self: Box<Self>, data: &[u8]) -> Result<Vec<u8>, Error> {
        let mut enc = vec![0u8; self.encrypt_len];
        let mut encrypt_len: ffi::c_size_t = self.encrypt_len as ffi::c_size_t;

        let rc = unsafe {
            ffi::EVP_PKEY_encrypt(
                self.evp_pkey_ctx.as_mut_ptr(),
                enc.as_mut_ptr(),
                &mut encrypt_len as *mut ffi::c_size_t,
                data.as_ptr(),
                data.len() as ffi::c_size_t,
            )
        };
        if rc != 1 {
            return Err(Error::Encrypt);
        }

        enc.resize(encrypt_len as usize, 0);
        Ok(enc)
    }