X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/blobdiff_plain/348e7d134e9243fd72cf8fbe366c77c1571faec1..33cfd5887ea8d05241b5b4749abbf7fdfadb51fe:/decodekey.c?ds=sidebyside diff --git a/decodekey.c b/decodekey.c index 606b091..5b2092e 100644 --- a/decodekey.c +++ b/decodekey.c @@ -2,6 +2,19 @@ * decodekey.c - Routines to further decode an OpenPGP key. * * Copyright 2002-2008 Jonathan McDowell + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., 51 + * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include @@ -16,6 +29,7 @@ #include "keystructs.h" #include "ll.h" #include "log.h" +#include "openpgp.h" /* * parse_subpackets - Parse the subpackets of a Type 4 signature. @@ -54,7 +68,7 @@ int parse_subpackets(unsigned char *data, uint64_t *keyid, time_t *creation) packetlen = data[offset++]; } switch (data[offset] & 0x7F) { - case 2: + case OPENPGP_SIGSUB_CREATION: /* * Signature creation time. */ @@ -68,17 +82,11 @@ int parse_subpackets(unsigned char *data, uint64_t *keyid, time_t *creation) *creation = data[offset + packetlen - 1]; } break; - case 3: /* * Signature expiration time. Might want to output this? */ break; - case 6: - /* - * Regular expression for UIDs this sig is over. - */ - break; - case 16: + case OPENPGP_SIGSUB_ISSUER: if (keyid != NULL) { *keyid = data[offset+packetlen - 8]; *keyid <<= 8; @@ -97,25 +105,23 @@ int parse_subpackets(unsigned char *data, uint64_t *keyid, time_t *creation) *keyid += data[offset+packetlen - 1]; } break; - case 20: - /* - * Annotation data. - */ - break; - - case 23: - /* - * Key server preferences. Including no-modify. - */ - break; - case 25: - /* - * Primary UID. - */ - break; - case 26: + case OPENPGP_SIGSUB_EXPIRY: + case OPENPGP_SIGSUB_EXPORTABLE: + case OPENPGP_SIGSUB_TRUSTSIG: + case OPENPGP_SIGSUB_REGEX: + case OPENPGP_SIGSUB_KEYEXPIRY: + case OPENPGP_SIGSUB_PREFSYM: + case OPENPGP_SIGSUB_NOTATION: + case OPENPGP_SIGSUB_PREFHASH: + case OPENPGP_SIGSUB_PREFCOMPRESS: + case OPENPGP_SIGSUB_KEYSERVER: + case OPENPGP_SIGSUB_PRIMARYUID: + case OPENPGP_SIGSUB_POLICYURI: + case OPENPGP_SIGSUB_KEYFLAGS: /* - * Policy URI. + * Various subpacket types we know about, but don't + * currently handle. Some are candidates for being + * supported if we add signature checking support. */ break; default: @@ -276,7 +282,7 @@ char **keyuids(struct openpgp_publickey *key, char **primary) curuid = key->uids; while (curuid != NULL) { buf[0] = 0; - if (curuid->packet->tag == 13) { + if (curuid->packet->tag == OPENPGP_PACKET_UID) { snprintf(buf, 1023, "%.*s", (int) curuid->packet->length, curuid->packet->data);