diff options
author | Panu Matilainen <pmatilai@redhat.com> | 2017-04-19 16:35:28 +0300 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2017-04-19 16:35:28 +0300 |
commit | 5aeb8ed1cf5462ddc703b6d04838cc7d8b46b747 (patch) | |
tree | aba66451b564e9d1f6c9b0e95244bd167285a62d | |
parent | c6dfbece5fd4d6be9ab97ceb01203d2a27a827c0 (diff) | |
download | rpm-5aeb8ed1cf5462ddc703b6d04838cc7d8b46b747.tar.gz |
Add signature/digest disabler info to rpmsinfo struct
-rw-r--r-- | lib/signature.c | 13 | ||||
-rw-r--r-- | lib/signature.h | 1 |
2 files changed, 12 insertions, 2 deletions
diff --git a/lib/signature.c b/lib/signature.c index 19265bc94..d99d1a806 100644 --- a/lib/signature.c +++ b/lib/signature.c @@ -8,6 +8,7 @@ #include <netinet/in.h> #include <rpm/rpmtypes.h> +#include <rpm/rpmts.h> /* XXX: verify flags */ #include <rpm/rpmstring.h> #include <rpm/rpmfileutil.h> #include <rpm/rpmlog.h> @@ -38,22 +39,26 @@ rpmRC rpmsinfoInit(rpmtd td, const char *origin, tagtype = RPM_BIN_TYPE; sinfo->type = RPMSIG_SIGNATURE_TYPE; sinfo->range = (RPMSIG_HEADER|RPMSIG_PAYLOAD); + sinfo->disabler = RPMVSF_NODSA; break; case RPMSIGTAG_PGP5: /* XXX legacy */ case RPMSIGTAG_PGP: tagtype = RPM_BIN_TYPE; sinfo->type = RPMSIG_SIGNATURE_TYPE; sinfo->range = (RPMSIG_HEADER|RPMSIG_PAYLOAD); + sinfo->disabler = RPMVSF_NORSA; break; - case RPMSIGTAG_RSA: + case RPMSIGTAG_DSA: tagtype = RPM_BIN_TYPE; sinfo->type = RPMSIG_SIGNATURE_TYPE; sinfo->range = RPMSIG_HEADER; + sinfo->disabler = RPMVSF_NODSAHEADER; break; - case RPMSIGTAG_DSA: + case RPMSIGTAG_RSA: tagtype = RPM_BIN_TYPE; sinfo->type = RPMSIG_SIGNATURE_TYPE; sinfo->range = RPMSIG_HEADER; + sinfo->disabler = RPMVSF_NORSAHEADER; break; case RPMSIGTAG_SHA256: tagsize = 65; /* includes trailing \0 */ @@ -63,6 +68,7 @@ rpmRC rpmsinfoInit(rpmtd td, const char *origin, sinfo->hashalgo = PGPHASHALGO_SHA256; sinfo->type = RPMSIG_DIGEST_TYPE; sinfo->range = RPMSIG_HEADER; + sinfo->disabler = RPMVSF_NOSHA256HEADER; break; case RPMSIGTAG_SHA1: tagsize = 41; /* includes trailing \0 */ @@ -72,6 +78,7 @@ rpmRC rpmsinfoInit(rpmtd td, const char *origin, sinfo->hashalgo = PGPHASHALGO_SHA1; sinfo->type = RPMSIG_DIGEST_TYPE; sinfo->range = RPMSIG_HEADER; + sinfo->disabler = RPMVSF_NOSHA1HEADER; break; case RPMSIGTAG_MD5: tagtype = RPM_BIN_TYPE; @@ -79,6 +86,7 @@ rpmRC rpmsinfoInit(rpmtd td, const char *origin, sinfo->hashalgo = PGPHASHALGO_MD5; sinfo->type = RPMSIG_DIGEST_TYPE; sinfo->range = (RPMSIG_HEADER|RPMSIG_PAYLOAD); + sinfo->disabler = RPMVSF_NOMD5; break; case RPMSIGTAG_SIZE: case RPMSIGTAG_PAYLOADSIZE: @@ -106,6 +114,7 @@ rpmRC rpmsinfoInit(rpmtd td, const char *origin, sinfo->hashalgo = PGPHASHALGO_SHA256; sinfo->type = RPMSIG_DIGEST_TYPE; sinfo->range = RPMSIG_PAYLOAD; + sinfo->disabler = RPMVSF_NOPAYLOAD; /* XXX: get the last element, fail due to tagcount is arbitrary */ if (rpmtdSetIndex(td, rpmtdCount(td)-1) == -1) tagcount = 0; diff --git a/lib/signature.h b/lib/signature.h index 4a7bf7c61..3de3d64f0 100644 --- a/lib/signature.h +++ b/lib/signature.h @@ -27,6 +27,7 @@ struct rpmsinfo_s { int hashalgo; int range; int type; + int disabler; unsigned int keyid; union { pgpDigParams sig; |