moved PGP types to pgp/pgp.h

This commit is contained in:
Andreas Steffen 2009-06-05 22:06:28 +02:00 committed by Martin Willi
parent 8b799d55ce
commit ca062e48ee
3 changed files with 95 additions and 55 deletions

View File

@ -16,6 +16,47 @@
#include "pgp.h"
ENUM_BEGIN(pgp_packet_tag_names, PGP_PKT_RESERVED, PGP_PKT_PUBLIC_SUBKEY,
"Reserved",
"Public-Key Encrypted Session Key Packet",
"Signature Packet",
"Symmetric-Key Encrypted Session Key Packet",
"One-Pass Signature Packet",
"Secret Key Packet",
"Public Key Packet",
"Secret Subkey Packet",
"Compressed Data Packet",
"Symmetrically Encrypted Data Packet",
"Marker Packet",
"Literal Data Packet",
"Trust Packet",
"User ID Packet",
"Public Subkey Packet"
);
ENUM_NEXT(pgp_packet_tag_names, PGP_PKT_USER_ATTRIBUTE, PGP_PKT_MOD_DETECT_CODE, PGP_PKT_PUBLIC_SUBKEY,
"User Attribute Packet",
"Sym. Encrypted and Integrity Protected Data Packet",
"Modification Detection Code Packet"
);
ENUM_END(pgp_packet_tag_names, PGP_PKT_MOD_DETECT_CODE);
ENUM_BEGIN(pgp_pubkey_alg_names, PGP_PUBKEY_ALG_RSA, PGP_PUBKEY_ALG_RSA_SIGN_ONLY,
"RSA",
"RSA_ENC_ONLY",
"RSA_SIGN_ONLY"
);
ENUM_NEXT(pgp_pubkey_alg_names, PGP_PUBKEY_ALG_ELGAMAL_ENC_ONLY, PGP_PUBKEY_ALG_DIFFIE_HELLMAN, PGP_PUBKEY_ALG_RSA_SIGN_ONLY,
"ELGAMAL_ENC_ONLY",
"DSA",
"ECC",
"ECDSA",
"ELGAMAL",
"DIFFIE_HELLMAN"
);
ENUM_END(pgp_pubkey_alg_names, PGP_PUBKEY_ALG_DIFFIE_HELLMAN);
ENUM(pgp_sym_alg_names, PGP_SYM_ALG_PLAIN, PGP_SYM_ALG_TWOFISH,
"PLAINTEXT",
"IDEA",

View File

@ -22,13 +22,63 @@
#ifndef PGP_H_
#define PGP_H_
typedef enum pgp_packet_tag_t pgp_packet_tag_t;
typedef enum pgp_sym_alg_t pgp_sym_alg_t;
#include <chunk.h>
#include <enum.h>
/**
* OpenPGP symmetric key algorithms defined in section 9.2 of RFC 4880
* OpenPGP packet tags as defined in section 4.3 of RFC 4880
*/
enum pgp_packet_tag_t {
PGP_PKT_RESERVED = 0,
PGP_PKT_PUBKEY_ENC_SESSION_KEY = 1,
PGP_PKT_SIGNATURE = 2,
PGP_PKT_SYMKEY_ENC_SESSION_KEY = 3,
PGP_PKT_ONE_PASS_SIGNATURE_PKT = 4,
PGP_PKT_SECRET_KEY = 5,
PGP_PKT_PUBLIC_KEY = 6,
PGP_PKT_SECRET_SUBKEY = 7,
PGP_PKT_COMPRESSED_DATA = 8,
PGP_PKT_SYMKEY_ENC_DATA = 9,
PGP_PKT_MARKER = 10,
PGP_PKT_LITERAL_DATA = 11,
PGP_PKT_TRUST = 12,
PGP_PKT_USER_ID = 13,
PGP_PKT_PUBLIC_SUBKEY = 14,
PGP_PKT_USER_ATTRIBUTE = 17,
PGP_PKT_SYM_ENC_INT_PROT_DATA = 18,
PGP_PKT_MOD_DETECT_CODE = 19
};
/**
* Enum names for pgp_packet_tag_t
*/
extern enum_name_t *pgp_packet_tag_names;
/**
* OpenPGP public key algorithms as defined in section 9.1 of RFC 4880
*/
enum pgp_pubkey_alg_t {
PGP_PUBKEY_ALG_RSA = 1,
PGP_PUBKEY_ALG_RSA_ENC_ONLY = 2,
PGP_PUBKEY_ALG_RSA_SIGN_ONLY = 3,
PGP_PUBKEY_ALG_ELGAMAL_ENC_ONLY = 16,
PGP_PUBKEY_ALG_DSA = 17,
PGP_PUBKEY_ALG_ECC = 18,
PGP_PUBKEY_ALG_ECDSA = 19,
PGP_PUBKEY_ALG_ELGAMAL = 20,
PGP_PUBKEY_ALG_DIFFIE_HELLMAN = 21,
};
/**
* Enum names for pgp_pubkey_alg_t
*/
extern enum_name_t *pgp_pubkey_alg_names;
/**
* OpenPGP symmetric key algorithms as defined in section 9.2 of RFC 4880
*/
enum pgp_sym_alg_t {
PGP_SYM_ALG_PLAIN = 0,

View File

@ -39,56 +39,6 @@
*/
static pgpcert_t *pgpcerts = NULL;
/*
* OpenPGP packet tags defined in section 4.3 of RFC 2440
*/
#define PGP_PKT_RESERVED 0
#define PGP_PKT_PUBKEY_ENC_SESSION_KEY 1
#define PGP_PKT_SIGNATURE 2
#define PGP_PKT_SYMKEY_ENC_SESSION_KEY 3
#define PGP_PKT_ONE_PASS_SIGNATURE_PKT 4
#define PGP_PKT_SECRET_KEY 5
#define PGP_PKT_PUBLIC_KEY 6
#define PGP_PKT_SECRET_SUBKEY 7
#define PGP_PKT_COMPRESSED_DATA 8
#define PGP_PKT_SYMKEY_ENC_DATA 9
#define PGP_PKT_MARKER 10
#define PGP_PKT_LITERAL_DATA 11
#define PGP_PKT_TRUST 12
#define PGP_PKT_USER_ID 13
#define PGP_PKT_PUBLIC_SUBKEY 14
#define PGP_PKT_ROOF 15
static const char *const pgp_packet_type_name[] = {
"Reserved",
"Public-Key Encrypted Session Key Packet",
"Signature Packet",
"Symmetric-Key Encrypted Session Key Packet",
"One-Pass Signature Packet",
"Secret Key Packet",
"Public Key Packet",
"Secret Subkey Packet",
"Compressed Data Packet",
"Symmetrically Encrypted Data Packet",
"Marker Packet",
"Literal Data Packet",
"Trust Packet",
"User ID Packet",
"Public Subkey Packet"
};
/*
* OpenPGP public key algorithms defined in section 9.1 of RFC 2440
*/
#define PGP_PUBKEY_ALG_RSA 1
#define PGP_PUBKEY_ALG_RSA_ENC_ONLY 2
#define PGP_PUBKEY_ALG_RSA_SIGN_ONLY 3
#define PGP_PUBKEY_ALG_ELGAMAL_ENC_ONLY 16
#define PGP_PUBKEY_ALG_DSA 17
#define PGP_PUBKEY_ALG_ECC 18
#define PGP_PUBKEY_ALG_ECDSA 19
#define PGP_PUBKEY_ALG_ELGAMAL 20
/*
* Size of PGP Key ID
*/
@ -313,10 +263,9 @@ bool parse_pgp(chunk_t blob, pgpcert_t *cert, private_key_t **key)
blob.ptr += packet.len;
blob.len -= packet.len;
DBG(DBG_PARSING,
DBG_log(" %s (%d), old format, %d bytes",
(packet_type < PGP_PKT_ROOF) ?
pgp_packet_type_name[packet_type] :
"Undefined Packet Type", packet_type, (int)packet.len);
DBG_log(" %N (%d), old format, %u bytes",
pgp_packet_tag_names, packet_type,
packet_type, packet.len);
DBG_log("L2 - body:")
)
DBG_cond_dump_chunk(DBG_RAW, "", packet);