summaryrefslogtreecommitdiffstats
path: root/openpgp-ffi/src/packet
diff options
context:
space:
mode:
Diffstat (limited to 'openpgp-ffi/src/packet')
-rw-r--r--openpgp-ffi/src/packet/key.rs2
-rw-r--r--openpgp-ffi/src/packet/pkesk.rs8
-rw-r--r--openpgp-ffi/src/packet/userid.rs13
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.