]> the.earth.li Git - onak.git/blobdiff - parsekey.h
cscvs to tla changeset 99
[onak.git] / parsekey.h
index 2bfaf728ea131ca7cb8766ada350b2ff0c9043b8..ed7e3a0daf2c8200deff01f7b61346a3755babac 100644 (file)
@@ -4,6 +4,8 @@
  * Jonathan McDowell <noodles@earth.li>
  *
  * Copyright 2002 Project Purple
+ *
+ * $Id: parsekey.h,v 1.5 2003/09/30 20:40:11 noodles Exp $
  */
 
 #ifndef __PARSEKEY_H__
@@ -30,6 +32,8 @@ int add_key(struct openpgp_publickey *key);
  *
  *     This function takes an list of OpenPGP packets and attempts to parse it
  *     into a list of public keys with signatures and subkeys.
+ *
+ *      Returns a count of how many keys we parsed.
  */
 int parse_keys(struct openpgp_packet_list *packets,
                struct openpgp_publickey **keys);
@@ -49,15 +53,20 @@ int debug_packet(struct openpgp_packet *packet);
  *     @getchar_func: The function to get the next character from the stream.
  *     @ctx: A pointer to the context structure for getchar_func.
  *     @packets: The outputted list of packets.
+ *     @maxnum: The maximum number of keys to read. 0 means unlimited.
  *
  *     This function uses getchar_func to read characters from an OpenPGP
  *     packet stream and reads the packets into a linked list of packets
- *     ready for parsing as a public key or whatever.
+ *     ready for parsing as a public key or whatever. maxnum allows you to
+ *     specify the maximum number of keys to read. Note that if this is used
+ *     then only the public key component of the last key will be returned,
+ *     none of the other packets of the key will be read.
  */
 int read_openpgp_stream(int (*getchar_func)(void *ctx, size_t count,
                                unsigned char *c),
                                void *ctx,
-                               struct openpgp_packet_list **packets);
+                               struct openpgp_packet_list **packets,
+                               int maxnum);
 
 /**
  *     write_openpgp_stream - Reads a stream of OpenPGP packets.