/** * Verify DSA/RSA signature. * @param keyring pubkey keyring * @param sig OpenPGP signature parameters * @param hashctx digest context * @param isHdr header-only signature? * @retval msg verbose success/failure text * @return RPMRC_OK on success */ static rpmRC verifySignature(rpmKeyring keyring, pgpDigParams sig, DIGEST_CTX hashctx, int isHdr, char **msg) { rpmRC res = rpmKeyringVerifySig(keyring, sig, hashctx); char *sigid = pgpIdentItem(sig); rasprintf(msg, "%s%s: %s\n", isHdr ? _("Header ") : "", sigid, rpmSigString(res)); free(sigid); return res; }
const char *rpmsinfoDescr(struct rpmsinfo_s *sinfo) { if (sinfo->descr == NULL) { char *t; switch (sinfo->type) { case RPMSIG_DIGEST_TYPE: rasprintf(&sinfo->descr, _("%s%s %s"), rangeName(sinfo->range), pgpValString(PGPVAL_HASHALGO, sinfo->hashalgo), _("digest")); break; case RPMSIG_SIGNATURE_TYPE: t = sinfo->sig ? pgpIdentItem(sinfo->sig) : NULL; rasprintf(&sinfo->descr, _("%s%s"), rangeName(sinfo->range), t ? t : _("signature")); free(t); break; } } return sinfo->descr; }