diff options
author | Panu Matilainen <pmatilai@redhat.com> | 2011-11-07 13:18:13 +0200 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2011-11-07 13:29:29 +0200 |
commit | 45c880304b78cc7e77a94a309303bc53f96024c6 (patch) | |
tree | 93f1dac02324f3c7381070dcc6314c73315c615a /rpmio | |
parent | 41a3fda32b9092bbf5562b1716463480b99b78d0 (diff) | |
download | librpm-tizen-45c880304b78cc7e77a94a309303bc53f96024c6.tar.gz librpm-tizen-45c880304b78cc7e77a94a309303bc53f96024c6.tar.bz2 librpm-tizen-45c880304b78cc7e77a94a309303bc53f96024c6.zip |
Add an API for comparing two digest parameter containers
- Lift the digest parameter comparison from librpmsign to rpmpgp.c
where it really belongs.
Diffstat (limited to 'rpmio')
-rw-r--r-- | rpmio/rpmpgp.c | 23 | ||||
-rw-r--r-- | rpmio/rpmpgp.h | 8 |
2 files changed, 31 insertions, 0 deletions
diff --git a/rpmio/rpmpgp.c b/rpmio/rpmpgp.c index 045740e43..36ed66c01 100644 --- a/rpmio/rpmpgp.c +++ b/rpmio/rpmpgp.c @@ -897,6 +897,29 @@ pgpDigParams pgpDigGetParams(pgpDig dig, unsigned int pkttype) return params; } +int pgpDigParamsCmp(pgpDigParams p1, pgpDigParams p2) +{ + int rc = 1; /* assume different, eg if either is NULL */ + if (p1 && p2) { + /* XXX Should we compare something else too? */ + if (p1->hash_algo != p2->hash_algo) + goto exit; + if (p1->pubkey_algo != p2->pubkey_algo) + goto exit; + if (p1->version != p2->version) + goto exit; + if (p1->sigtype != p2->sigtype) + goto exit; + if (memcmp(p1->signid, p2->signid, sizeof(p1->signid)) != 0) + goto exit; + + /* Parameters match ... at least for our purposes */ + rc = 0; + } +exit: + return rc; +} + int pgpPrtPkts(const uint8_t * pkts, size_t pktlen, pgpDig dig, int printing) { const uint8_t *p = pkts; diff --git a/rpmio/rpmpgp.h b/rpmio/rpmpgp.h index e00b703e1..ef25388fb 100644 --- a/rpmio/rpmpgp.h +++ b/rpmio/rpmpgp.h @@ -1053,6 +1053,14 @@ pgpDig pgpFreeDig(pgpDig dig); pgpDigParams pgpDigGetParams(pgpDig dig, unsigned int pkttype); /** \ingroup rpmpgp + * Compare OpenPGP packet parameters + * param p1 1st parameter container + * param p2 2nd parameter container + * return 1 if the parameters differ, 0 otherwise + */ +int pgpDigParamsCmp(pgpDigParams p1, pgpDigParams p2); + +/** \ingroup rpmpgp * Verify a PGP signature. * @param key public key * @param sig signature |