aboutsummaryrefslogtreecommitdiffstats
path: root/g10/packet.h
diff options
context:
space:
mode:
Diffstat (limited to 'g10/packet.h')
-rw-r--r--g10/packet.h61
1 files changed, 49 insertions, 12 deletions
diff --git a/g10/packet.h b/g10/packet.h
index f57dce172..480fb54db 100644
--- a/g10/packet.h
+++ b/g10/packet.h
@@ -28,16 +28,22 @@
#include "filter.h"
-#define PKT_PUBKEY_ENC 1 /* public key encrypted packet */
-#define PKT_SIGNATURE 2 /* secret key encrypted packet */
-#define PKT_SECKEY_CERT 5 /* secret key certificate */
-#define PKT_PUBKEY_CERT 6 /* public key certificate */
-#define PKT_COMPR_DATA 8 /* compressed data packet */
-#define PKT_ENCR_DATA 9 /* conventional encrypted data */
-#define PKT_PLAINTEXT 11 /* plaintext data with filename and mode */
-#define PKT_RING_TRUST 12 /* keyring trust packet */
-#define PKT_USER_ID 13 /* user id packet */
-#define PKT_COMMENT 14 /* comment packet */
+#define PKT_PUBKEY_ENC 1 /* public key encrypted packet */
+#define PKT_SIGNATURE 2 /* secret key encrypted packet */
+#define PKT_SESSION_KEY 3 /* session key packet (OpenPGP)*/
+#define PKT_ONEPASS_SIG 4 /* one pass sig packet (OpenPGP)*/
+#define PKT_SECKEY_CERT 5 /* secret key certificate */
+#define PKT_PUBKEY_CERT 6 /* public key certificate */
+#define PKT_SECKEY_SUBCERT 7 /* secret subkey certificate (OpenPGP) */
+#define PKT_COMPR_DATA 8 /* compressed data packet */
+#define PKT_ENCR_DATA 9 /* conventional encrypted data */
+#define PKT_MARKER 10 /* marker packet (OpenPGP) */
+#define PKT_PLAINTEXT 11 /* plaintext data with filename and mode */
+#define PKT_RING_TRUST 12 /* keyring trust packet */
+#define PKT_USER_ID 13 /* user id packet */
+#define PKT_COMMENT 14 /* comment packet */
+#define PKT_PUBKEY_SUBCERT 14 /* subkey certificate (OpenPGP) */
+#define PKT_NEW_COMMENT 16 /* new comment packet (OpenPGP) */
typedef struct packet_struct PACKET;
@@ -48,6 +54,9 @@ typedef struct {
struct {
MPI rsa_integer; /* integer containing the DEK */
} rsa;
+ struct {
+ MPI a, b; /* integers with the enciphered DEK */
+ } elg;
} d;
} PKT_pubkey_enc;
@@ -60,10 +69,15 @@ typedef struct {
/* (PUBKEY_ALGO_xxx) */
union {
struct {
- byte digest_algo; /* algorithm used for digest (DIGEST_ALGO_xxxx) */
+ byte digest_algo; /* algorithm used for digest (DIGEST_ALGO_xxxx) */
byte digest_start[2]; /* first 2 byte of the digest */
- MPI rsa_integer; /* the encrypted digest */
+ MPI rsa_integer; /* the encrypted digest */
} rsa;
+ struct {
+ byte digest_algo; /* algorithm used for digest (DIGEST_ALGO_xxxx) */
+ byte digest_start[2]; /* first 2 byte of the digest */
+ MPI a, b; /* integers with the digest */
+ } elg;
} d;
} PKT_signature;
@@ -78,6 +92,11 @@ typedef struct {
MPI rsa_n; /* public modulus */
MPI rsa_e; /* public exponent */
} rsa;
+ struct {
+ MPI p; /* prime */
+ MPI g; /* group generator */
+ MPI y; /* g^x mod p */
+ } elg;
} d;
} PKT_pubkey_cert;
@@ -106,6 +125,24 @@ typedef struct {
} blowfish;
} protect;
} rsa;
+ struct {
+ MPI p; /* prime */
+ MPI g; /* group generator */
+ MPI y; /* g^x mod p */
+ MPI x; /* secret exponent */
+ u16 csum; /* checksum */
+ u16 calc_csum; /* and a place to store the calculated csum */
+ byte is_protected; /* The above infos are protected and must */
+ /* be deciphered before use */
+ byte protect_algo; /* cipher used to protect the secret informations*/
+ union { /* information for the protection */
+ struct {
+ byte iv[8]; /* initialization vector for CFB mode */
+ /* when protected, the MPIs above are pointers
+ * to plain storage */
+ } blowfish;
+ } protect;
+ } elg;
} d;
} PKT_seckey_cert;