/** * gnutls_openpgp_privkey_get_subkey_revoked_status: * @key: the structure that contains the OpenPGP private key. * @idx: is the subkey index * * Get revocation status of key. * * Returns: true (1) if the key has been revoked, or false (0) if it * has not, or a negative error code indicates an error. * * Since: 2.4.0 **/ int gnutls_openpgp_privkey_get_subkey_revoked_status(gnutls_openpgp_privkey_t key, unsigned int idx) { cdk_packet_t pkt; if (!key) { gnutls_assert(); return GNUTLS_E_INVALID_REQUEST; } if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX) return gnutls_openpgp_privkey_get_revoked_status(key); pkt = _get_secret_subkey(key, idx); if (!pkt) return GNUTLS_E_OPENPGP_GETKEY_FAILED; if (pkt->pkt.secret_key->is_revoked != 0) return 1; return 0; }
/** * gnutls_openpgp_privkey_get_subkey_expiration_time: * @key: the structure that contains the OpenPGP private key. * @idx: the subkey index * * Get subkey expiration time. A value of '0' means that the key * doesn't expire at all. * * Returns: the time when the OpenPGP key expires. * * Since: 2.4.0 **/ time_t gnutls_openpgp_privkey_get_subkey_expiration_time(gnutls_openpgp_privkey_t key, unsigned int idx) { cdk_packet_t pkt; time_t timestamp; if (!key) return (time_t) - 1; if (idx == GNUTLS_OPENPGP_MASTER_KEYID_IDX) pkt = cdk_kbnode_find_packet(key->knode, CDK_PKT_SECRET_KEY); else pkt = _get_secret_subkey(key, idx); if (pkt) timestamp = pkt->pkt.secret_key->pk->expiredate; else timestamp = 0; return timestamp; }
/** * gnutls_openpgp_privkey_get_subkey_id: * @key: the structure that contains the OpenPGP secret key. * @idx: the subkey index * @keyid: the buffer to save the keyid. * * Get the key-id for the subkey. * * Returns: the 64-bit keyID of the OpenPGP key. * * Since: 2.4.0 **/ int gnutls_openpgp_privkey_get_subkey_id (gnutls_openpgp_privkey_t key, unsigned int idx, gnutls_openpgp_keyid_t keyid) { cdk_packet_t pkt; uint32_t kid[2]; if (!key || !keyid) { gnutls_assert (); return GNUTLS_E_INVALID_REQUEST; } pkt = _get_secret_subkey (key, idx); if (!pkt) return GNUTLS_E_OPENPGP_GETKEY_FAILED; cdk_sk_get_keyid (pkt->pkt.secret_key, kid); _gnutls_write_uint32 (kid[0], keyid); _gnutls_write_uint32 (kid[1], keyid + 4); return 0; }