X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=decodekey.h;h=8cd5480027fa39ba21ab2aa6bf9ce79e65391c21;hb=ec3fd8971e87c82b2768b5b9dcbcd569edc3259b;hp=ba3027b07fbc58dccb6f773a2332189b0f3954c4;hpb=010b333715b8385c78c4bacaf9031e9faed42cfd;p=onak.git diff --git a/decodekey.h b/decodekey.h index ba3027b..8cd5480 100644 --- a/decodekey.h +++ b/decodekey.h @@ -1,16 +1,27 @@ /* * keyindex.h - Routines to list an OpenPGP key. * - * Jonathan McDowell + * Copyright 2002-2008 Jonathan McDowell * - * Copyright 2002 Project Purple + * 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. * - * $Id: decodekey.h,v 1.2 2003/06/04 20:57:07 noodles Exp $ + * 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. */ #ifndef __DECODEKEY_H__ #define __DECODEKEY_H__ +#include +#include #include "keystructs.h" #include "ll.h" @@ -25,6 +36,18 @@ struct ll *keysigs(struct ll *curll, struct openpgp_packet_list *sigs); +/** + * sig_info - Get info on a given OpenPGP signature packet + * @packet: The signature packet + * @keyid: A pointer for where to return the signature keyid + * @creation: A pointer for where to return the signature creation time + * + * Gets any info about a signature packet; parses the subpackets for a v4 + * key or pulls the data directly from v2/3. NULL can be passed for any + * values which aren't cared about. + */ +void sig_info(struct openpgp_packet *packet, uint64_t *keyid, time_t *creation); + /** * sig_keyid - Return the keyid for a given OpenPGP signature packet. * @packet: The signature packet. @@ -53,4 +76,17 @@ char **keyuids(struct openpgp_publickey *key, char **primary); */ uint64_t *keysubkeys(struct openpgp_publickey *key); +/** + * parse_subpackets - Parse the subpackets of a Type 4 signature. + * @data: The subpacket data. + * @keyid: A pointer to where we should return the keyid. + * @creationtime: A pointer to where we should return the creation time. + * + * This function parses the subkey data of a Type 4 signature and fills + * in the supplied variables. It also returns the length of the data + * processed. If the value of any piece of data is not desired a NULL + * can be passed instead of a pointer to a storage area for that value. + */ +int parse_subpackets(unsigned char *data, uint64_t *keyid, time_t *creation); + #endif