On Fri, Nov 2, 2012 at 10:28 AM, Allan McRae <[email protected]> wrote: > This does not support all possibilities of RFC4880, but it does > cover every key currently used in Arch Linux. > > Signed-off-by: Allan McRae <[email protected]> > --- > lib/libalpm/signing.c | 100 > ++++++++++++++++++++++++++++++++++++++++++++++++++ > lib/libalpm/signing.h | 2 + > 2 files changed, 102 insertions(+) > > diff --git a/lib/libalpm/signing.c b/lib/libalpm/signing.c > index 9d56aba..6b13522 100644 > --- a/lib/libalpm/signing.c > +++ b/lib/libalpm/signing.c > @@ -948,4 +948,104 @@ int SYMEXPORT alpm_siglist_cleanup(alpm_siglist_t > *siglist) > return 0; > } > > +/** > + * Extract the Issuer Key ID from a signature > + * @param sig PGP signature > + * @param len length of signature > + * @param keys a pointer to storage for key IDs > + * @return 0 on success, -1 on error > + */ > +int _alpm_extract_keyid(const unsigned char *sig, size_t len, alpm_list_t > **keys) > +{ > + size_t pos, spos, blen, hlen, ulen, slen; > + pos = 0; > + > + while(pos < len) { > + if(!(sig[pos] & 0x80)) { > + return -1; > + } > + > + if(sig[pos] & 0x40) { > + // "new" packet format is not supported Respect the preferred coding style for comments, please. :)
-Dan
