}
PAKFIRE_EXPORT const char* pakfire_key_get_uid(struct pakfire_key* key) {
- return key->gpgkey->uids->uid;
+ if (key->gpgkey->uids)
+ return key->gpgkey->uids->uid;
+
+ return NULL;
}
PAKFIRE_EXPORT const char* pakfire_key_get_name(struct pakfire_key* key) {
- return key->gpgkey->uids->name;
+ if (key->gpgkey->uids)
+ return key->gpgkey->uids->name;
+
+ return NULL;
}
PAKFIRE_EXPORT const char* pakfire_key_get_email(struct pakfire_key* key) {
- return key->gpgkey->uids->email;
+ if (key->gpgkey->uids)
+ return key->gpgkey->uids->email;
+
+ return NULL;
}
PAKFIRE_EXPORT const char* pakfire_key_get_pubkey_algo(struct pakfire_key* key) {
+ if (!key->gpgkey->subkeys)
+ return NULL;
+
switch (key->gpgkey->subkeys->pubkey_algo) {
case GPGME_PK_RSA:
case GPGME_PK_RSA_E:
}
PAKFIRE_EXPORT size_t pakfire_key_get_pubkey_length(struct pakfire_key* key) {
- return key->gpgkey->subkeys->length;
+ if (key->gpgkey->subkeys)
+ return key->gpgkey->subkeys->length;
+
+ return 0;
}
PAKFIRE_EXPORT time_t pakfire_key_get_created(struct pakfire_key* key) {
- return key->gpgkey->subkeys->timestamp;
+ if (key->gpgkey->subkeys)
+ return key->gpgkey->subkeys->timestamp;
+
+ return 0;
}
PAKFIRE_EXPORT time_t pakfire_key_get_expires(struct pakfire_key* key) {
- return key->gpgkey->subkeys->expires;
+ if (key->gpgkey->subkeys)
+ return key->gpgkey->subkeys->expires;
+
+ return 0;
}
PAKFIRE_EXPORT int pakfire_key_is_revoked(struct pakfire_key* key) {
- return key->gpgkey->subkeys->revoked;
+ if (key->gpgkey->subkeys)
+ return key->gpgkey->subkeys->revoked;
+
+ return 0;
}
PAKFIRE_EXPORT int pakfire_key_generate(struct pakfire_key** key, Pakfire pakfire,