/* get data from the 'certificate' */ static char* get_cert_data (GMimeCertificate *cert) { const char /**email,*/ *name, *digest_algo, *pubkey_algo, *keyid, *trust; /* email = g_mime_certificate_get_email (cert); */ name = g_mime_certificate_get_name (cert); keyid = g_mime_certificate_get_key_id (cert); digest_algo = get_digestkey_algo_name (g_mime_certificate_get_digest_algo (cert)); pubkey_algo = get_pubkey_algo_name (g_mime_certificate_get_pubkey_algo (cert)); switch (g_mime_certificate_get_trust (cert)) { case GMIME_CERTIFICATE_TRUST_NONE: trust = "none"; break; case GMIME_CERTIFICATE_TRUST_NEVER: trust = "never"; break; case GMIME_CERTIFICATE_TRUST_UNDEFINED: trust = "undefined"; break; case GMIME_CERTIFICATE_TRUST_MARGINAL: trust = "marginal"; break; case GMIME_CERTIFICATE_TRUST_FULLY: trust = "full"; break; case GMIME_CERTIFICATE_TRUST_ULTIMATE: trust = "ultimate"; break; default: g_return_val_if_reached (NULL); } return g_strdup_printf ( "signer:%s, key:%s (%s,%s), trust:%s", name ? name : "?", /* email ? email : "?", */ keyid, pubkey_algo, digest_algo, trust); }
static void harvest_certificate_info (GMimeSignature *sig, MuMsgPartSigInfo *siginfo) { GMimeCertificate *cert; cert = g_mime_signature_get_certificate (sig); if (!cert) return; /* nothing to harvest */ siginfo->_cert = cert; siginfo->issuer_serial = g_mime_certificate_get_issuer_serial (cert); siginfo->issuer_name = g_mime_certificate_get_issuer_name (cert); siginfo->fingerprint = g_mime_certificate_get_fingerprint (cert); siginfo->key_id = g_mime_certificate_get_key_id (cert); siginfo->email = g_mime_certificate_get_email (cert); siginfo->name = g_mime_certificate_get_name (cert); siginfo->pubkey_algo = get_pubkey_algo_name (g_mime_certificate_get_pubkey_algo (cert)); siginfo->digest_algo = get_digestkey_algo_name (g_mime_certificate_get_digest_algo (cert)); }