diff options
Diffstat (limited to 'openpgp-ffi/src/packet')
-rw-r--r-- | openpgp-ffi/src/packet/key.rs | 2 | ||||
-rw-r--r-- | openpgp-ffi/src/packet/pkesk.rs | 8 | ||||
-rw-r--r-- | openpgp-ffi/src/packet/userid.rs | 13 |
3 files changed, 19 insertions, 4 deletions
diff --git a/openpgp-ffi/src/packet/key.rs b/openpgp-ffi/src/packet/key.rs index e774fd43..6966acc1 100644 --- a/openpgp-ffi/src/packet/key.rs +++ b/openpgp-ffi/src/packet/key.rs @@ -82,6 +82,6 @@ fn pgp_key_into_key_pair(errp: Option<&mut *mut crate::error::Error>, -> *mut self::openpgp::crypto::KeyPair { ffi_make_fry_from_errp!(errp); - let key = ffi_try!(key.move_from_raw().mark_parts_secret()); + let key = ffi_try!(key.move_from_raw().parts_into_secret()); ffi_try_box!(key.into_keypair()) } diff --git a/openpgp-ffi/src/packet/pkesk.rs b/openpgp-ffi/src/packet/pkesk.rs index 28b03844..bbecddb0 100644 --- a/openpgp-ffi/src/packet/pkesk.rs +++ b/openpgp-ffi/src/packet/pkesk.rs @@ -43,12 +43,12 @@ pub extern "C" fn pgp_pkesk_decrypt(errp: Option<&mut *mut crate::error::Error>, let algo = ffi_param_ref_mut!(algo); let key_len = ffi_param_ref_mut!(key_len); - match ffi_try_or_status!(secret_key.clone().mark_parts_secret()) + match ffi_try_or_status!(secret_key.clone().parts_into_secret()) .into_keypair() { Ok(mut keypair) => { match pkesk.decrypt(&mut keypair, None /* XXX */) { - Ok((a, k)) => { + Some((a, k)) => { *algo = a.into(); if !key.is_null() && *key_len >= k.len() { unsafe { @@ -60,7 +60,9 @@ pub extern "C" fn pgp_pkesk_decrypt(errp: Option<&mut *mut crate::error::Error>, *key_len = k.len(); Status::Success }, - Err(e) => ffi_try_status!(Err::<(), anyhow::Error>(e)), + None => ffi_try_status!(Err::<(), anyhow::Error>( + openpgp::Error::InvalidSessionKey( + "Decryption failed".into()).into())), } }, Err(e) => { diff --git a/openpgp-ffi/src/packet/userid.rs b/openpgp-ffi/src/packet/userid.rs index 69e49b42..339f1486 100644 --- a/openpgp-ffi/src/packet/userid.rs +++ b/openpgp-ffi/src/packet/userid.rs @@ -12,6 +12,19 @@ use super::Packet; use crate::RefRaw; use crate::MoveIntoRaw; +/// Holds a UserID packet. +/// +/// See [Section 5.11 of RFC 4880] for details. +/// +/// [Section 5.11 of RFC 4880]: https://tools.ietf.org/html/rfc4880#section-5.11 +/// +/// Wraps [`sequoia-openpgp::packet::UserID`]. +/// +/// [`sequoia-openpgp::packet::UserID`]: ../../../sequoia_openpgp/packet/struct.UserID.html +#[crate::ffi_wrapper_type(prefix = "pgp_", + derive = "Clone, Debug, PartialEq")] +pub struct UserID(openpgp::packet::UserID); + /// Create a new User ID with the value `value`. /// /// `value` need not be valid UTF-8, but it must be NUL terminated. |