summaryrefslogtreecommitdiffstats
path: root/ffi
diff options
context:
space:
mode:
authorNeal H. Walfield <neal@pep.foundation>2018-12-17 21:07:35 +0100
committerNeal H. Walfield <neal@pep.foundation>2018-12-17 21:09:36 +0100
commit7f5384b0a35e09d51970fbd7c8b1a6d25ce1051e (patch)
treea5482433755b4c394916b7c32b577f5f5acaddd9 /ffi
parent3f495a0a2e45f3fdcb14e6da7bba0a1947ca22eb (diff)
ffi: Wrap TPK's alive and expired methods.
- We currently wrap TPK::expired. Also wrap TPK::expired_at, TPK::alive, and TPK::alive_at.
Diffstat (limited to 'ffi')
-rw-r--r--ffi/include/sequoia/openpgp.h15
-rw-r--r--ffi/src/openpgp.rs25
2 files changed, 40 insertions, 0 deletions
diff --git a/ffi/include/sequoia/openpgp.h b/ffi/include/sequoia/openpgp.h
index dcdc3d73..4c6f61a8 100644
--- a/ffi/include/sequoia/openpgp.h
+++ b/ffi/include/sequoia/openpgp.h
@@ -844,6 +844,21 @@ sq_tpk_t sq_tpk_revoke_in_place (sq_context_t ctx,
int sq_tpk_expired(sq_tpk_t tpk);
/*/
+/// Returns whether the TPK has expired at the specified time.
+/*/
+int sq_tpk_expired_at(sq_tpk_t tpk, time_t at);
+
+/*/
+/// Returns whether the TPK is alive.
+/*/
+int sq_tpk_alive(sq_tpk_t tpk);
+
+/*/
+/// Returns whether the TPK is alive at the specified time.
+/*/
+int sq_tpk_alive_at(sq_tpk_t tpk, time_t at);
+
+/*/
/// Changes the TPK's expiration.
///
/// Expiry is when the key should expire in seconds relative to the
diff --git a/ffi/src/openpgp.rs b/ffi/src/openpgp.rs
index 78d6b72e..82d00769 100644
--- a/ffi/src/openpgp.rs
+++ b/ffi/src/openpgp.rs
@@ -982,6 +982,31 @@ pub extern "system" fn sq_tpk_expired(tpk: Option<&TPK>)
tpk.expired() as c_int
}
+/// Returns whether the TPK has expired.
+#[no_mangle]
+pub extern "system" fn sq_tpk_expired_at(tpk: Option<&TPK>, when: time_t)
+ -> c_int {
+ let tpk = tpk.expect("TPK is NULL");
+ tpk.expired_at(time::at(time::Timespec::new(when as i64, 0))) as c_int
+}
+
+/// Returns whether the TPK is alive.
+#[no_mangle]
+pub extern "system" fn sq_tpk_alive(tpk: Option<&TPK>)
+ -> c_int {
+ let tpk = tpk.expect("TPK is NULL");
+
+ tpk.alive() as c_int
+}
+
+/// Returns whether the TPK is alive at the specified time.
+#[no_mangle]
+pub extern "system" fn sq_tpk_alive_at(tpk: Option<&TPK>, when: time_t)
+ -> c_int {
+ let tpk = tpk.expect("TPK is NULL");
+ tpk.alive_at(time::at(time::Timespec::new(when as i64, 0))) as c_int
+}
+
/// Changes the TPK's expiration.
///
/// Expiry is when the key should expire in seconds relative to the