summaryrefslogtreecommitdiffstats
path: root/openpgp-ffi
diff options
context:
space:
mode:
authorJustus Winter <justus@sequoia-pgp.org>2020-10-09 12:14:33 +0200
committerJustus Winter <justus@sequoia-pgp.org>2020-10-09 12:30:30 +0200
commitbd41b17285a66340b917d8aef6ae567889cf47e4 (patch)
treeba295ba451d83400474df09296d71792c3d0a07f /openpgp-ffi
parentf1e778a9ee3e0dfef2ae3e5d2958526e6b8a8743 (diff)
openpgp: Make Recipient::set_keyid easier to use.
Diffstat (limited to 'openpgp-ffi')
-rw-r--r--openpgp-ffi/include/sequoia/openpgp/serialize.h2
-rw-r--r--openpgp-ffi/src/serialize.rs10
2 files changed, 9 insertions, 3 deletions
diff --git a/openpgp-ffi/include/sequoia/openpgp/serialize.h b/openpgp-ffi/include/sequoia/openpgp/serialize.h
index 5f9239b5..77cbfdce 100644
--- a/openpgp-ffi/include/sequoia/openpgp/serialize.h
+++ b/openpgp-ffi/include/sequoia/openpgp/serialize.h
@@ -27,7 +27,7 @@ pgp_keyid_t pgp_recipient_keyid (const pgp_recipient_t);
/*/
/// Sets the KeyID.
/*/
-void pgp_recipient_set_keyid (pgp_recipient_t, pgp_keyid_t);
+void pgp_recipient_set_keyid (pgp_recipient_t *, pgp_keyid_t);
/*/
/// Collects recipients from a `pgp_cert_key_iter_t`.
diff --git a/openpgp-ffi/src/serialize.rs b/openpgp-ffi/src/serialize.rs
index 972ce7a5..982bafc0 100644
--- a/openpgp-ffi/src/serialize.rs
+++ b/openpgp-ffi/src/serialize.rs
@@ -266,8 +266,14 @@ fn pgp_recipient_keyid(recipient: *const Recipient) -> *mut KeyID {
///
/// Consumes `keyid`.
#[::sequoia_ffi_macros::extern_fn] #[no_mangle] pub extern "C"
-fn pgp_recipient_set_keyid(recipient: *mut Recipient, keyid: *mut KeyID) {
- recipient.ref_mut_raw().set_keyid(keyid.move_from_raw());
+fn pgp_recipient_set_keyid(recipient: *mut *mut Recipient, keyid: *mut KeyID) {
+ assert!(! recipient.is_null());
+ unsafe {
+ *recipient =
+ (*recipient).move_from_raw()
+ .set_keyid(keyid.move_from_raw())
+ .move_into_raw();
+ }
}
/// Collects recipients from a `pgp_cert_key_iter_t`.