Пример #1
0
/* 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);
}
Пример #2
0
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));
}