X-Git-Url: https://the.earth.li/gitweb/?a=blobdiff_plain;f=decodekey.h;h=5eb78d173226b573fa64f6c2d3d3df9de686c690;hb=3da81770b841f841c5145f91a9ccedc296e13f4b;hp=8d6306aeb2ac144086fb960a0122a23dcd87b05e;hpb=23f086c85c5d2db35e9ce76cf0bbf72200b4dc42;p=onak.git diff --git a/decodekey.h b/decodekey.h index 8d6306a..5eb78d1 100644 --- a/decodekey.h +++ b/decodekey.h @@ -13,8 +13,7 @@ * 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. + * this program. If not, see . */ #ifndef __DECODEKEY_H__ @@ -24,6 +23,7 @@ #include #include "keystructs.h" #include "ll.h" +#include "onak.h" /** * keysigs - Return the sigs on a given OpenPGP signature packet list. @@ -46,7 +46,8 @@ struct ll *keysigs(struct ll *curll, * 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); +onak_status_t sig_info(struct openpgp_packet *packet, uint64_t *keyid, + time_t *creation); /** * sig_keyid - Return the keyid for a given OpenPGP signature packet. @@ -79,6 +80,8 @@ struct openpgp_fingerprint *keysubkeys(struct openpgp_publickey *key); /** * parse_subpackets - Parse the subpackets of a Type 4 signature. * @data: The subpacket data. + * @len: The amount of data available to read. + * @parselen: The amount of data that was actually parsed. * @keyid: A pointer to where we should return the keyid. * @creationtime: A pointer to where we should return the creation time. * @@ -87,6 +90,23 @@ struct openpgp_fingerprint *keysubkeys(struct openpgp_publickey *key); * 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); +onak_status_t parse_subpackets(unsigned char *data, size_t len, + size_t *parselen, uint64_t *keyid, time_t *creation); + +enum onak_oid { + ONAK_OID_UNKNOWN = 0, + ONAK_OID_INVALID, + ONAK_OID_CURVE25519, + ONAK_OID_ED25519, + ONAK_OID_NISTP256, + ONAK_OID_NISTP384, + ONAK_OID_NISTP521, + ONAK_OID_BRAINPOOLP256R1, + ONAK_OID_BRAINPOOLP384R1, + ONAK_OID_BRAINPOOLP512R1, + ONAK_OID_SECP256K1, +}; + +enum onak_oid onak_parse_oid(uint8_t *buf, size_t len); #endif