gpg: Remove cipher.h and put algo ids into a common file.
authorWerner Koch <wk@gnupg.org>
Wed, 29 Jan 2014 19:35:05 +0000 (20:35 +0100)
committerWerner Koch <wk@gnupg.org>
Wed, 29 Jan 2014 19:35:05 +0000 (20:35 +0100)
* common/openpgpdefs.h (cipher_algo_t, pubkey_algo_t, digest_algo_t)
(compress_algo_t): New.
* agent/gpg-agent.c: Remove ../g10/cipher.h. Add openpgpdefs.h.
* g10/cipher.h (DEK): Move to ...
* g10/dek.h: new file.
* g10/cipher.h (is_RSA, is_ELGAMAL, is_DSA)
(PUBKEY_MAX_NPKEY, PUBKEY_MAX_NSKEY, PUBKEY_MAX_NSIG, PUBKEY_MAX_NENC)
(PUBKEY_USAGE_SIG, PUBKEY_USAGE_ENC, PUBKEY_USAGE_CERT)
(PUBKEY_USAGE_AUTH, PUBKEY_USAGE_NONE): Move to
* g10/packet.h: here.
* g10/cipher.h: Remove.  Remove from all files.
* g10/filter.h, g10/packet.h:  Include dek.h.
* g10/Makefile.am (common_source): Remove cipher.h.  Add dek.h.

Signed-off-by: Werner Koch <wk@gnupg.org>
25 files changed:
agent/gpg-agent.c
common/openpgpdefs.h
g10/Makefile.am
g10/build-packet.c
g10/cipher.h [deleted file]
g10/cpr.c
g10/decrypt-data.c
g10/dek.h [new file with mode: 0644]
g10/filter.h
g10/free-packet.c
g10/gpg.c
g10/gpg.h
g10/gpgv.c
g10/keydb.h
g10/keygen.c
g10/main.h
g10/mainproc.c
g10/options.h
g10/packet.h
g10/parse-packet.c
g10/passphrase.c
g10/pubkey-enc.c
g10/seskey.c
g10/sig-check.c
g10/skclist.c

index 9810983..34f8ef3 100644 (file)
@@ -51,7 +51,7 @@
 #include "gc-opt-flags.h"
 #include "exechelp.h"
 #include "asshelp.h"
-#include "../g10/cipher.h"     /* for PUBKEY_ALGO_ECDSA, PUBKEY_ALGO_ECDH */
+#include "openpgpdefs.h"  /* for PUBKEY_ALGO_ECDSA, PUBKEY_ALGO_ECDH */
 #include "../common/init.h"
 
 
index c2fa617..0a58442 100644 (file)
@@ -1,6 +1,7 @@
 /* openpgpdefs.h - Constants from the OpenPGP standard (rfc2440)
  * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
  *               2006 Free Software Foundation, Inc.
+ * Copyright (C) 2014 Werner Koch
  *
  * This file is free software; you can redistribute it and/or modify
  * it under the terms of either
@@ -92,4 +93,65 @@ typedef enum
 sigsubpkttype_t;
 
 
+typedef enum
+  {
+    CIPHER_ALGO_NONE       =  0,
+    CIPHER_ALGO_IDEA       =  1,
+    CIPHER_ALGO_3DES       =  2,
+    CIPHER_ALGO_CAST5      =  3,
+    CIPHER_ALGO_BLOWFISH    =  4, /* 128 bit */
+    /* 5 & 6 are reserved */
+    CIPHER_ALGO_AES         =  7,
+    CIPHER_ALGO_AES192      =  8,
+    CIPHER_ALGO_AES256      =  9,
+    CIPHER_ALGO_TWOFISH            = 10, /* 256 bit */
+    CIPHER_ALGO_CAMELLIA128 = 11,
+    CIPHER_ALGO_CAMELLIA192 = 12,
+    CIPHER_ALGO_CAMELLIA256 = 13,
+
+    CIPHER_ALGO_DUMMY      = 110 /* No encryption at all (private). */
+  }
+cipher_algo_t;
+
+
+typedef enum
+  {
+    PUBKEY_ALGO_RSA         =  1,
+    PUBKEY_ALGO_RSA_E       =  2, /* RSA encrypt only (legacy). */
+    PUBKEY_ALGO_RSA_S       =  3, /* RSA sign only (legacy).    */
+    PUBKEY_ALGO_ELGAMAL_E   = 16, /* Elgamal encrypt only.      */
+    PUBKEY_ALGO_DSA         = 17,
+    PUBKEY_ALGO_ECDH        = 18, /* RFC-6637  */
+    PUBKEY_ALGO_ECDSA       = 19, /* RFC-6637  */
+    PUBKEY_ALGO_ELGAMAL     = 20, /* Elgamal encrypt+sign (legacy).  */
+
+    PUBKEY_ALGO_EDDSA      = 105  /* EdDSA (cf. Ed25519) (experimental). */
+  }
+pubkey_algo_t;
+
+
+typedef enum
+  {
+    DIGEST_ALGO_MD5         =  1,
+    DIGEST_ALGO_SHA1        =  2,
+    DIGEST_ALGO_RMD160      =  3,
+    /* 4, 5, 6, and 7 are reserved. */
+    DIGEST_ALGO_SHA256      =  8,
+    DIGEST_ALGO_SHA384      =  9,
+    DIGEST_ALGO_SHA512      = 10,
+    DIGEST_ALGO_SHA224      = 11
+  }
+digest_algo_t;
+
+
+typedef enum
+  {
+    COMPRESS_ALGO_NONE      =  0,
+    COMPRESS_ALGO_ZIP       =  1,
+    COMPRESS_ALGO_ZLIB      =  2,
+    COMPRESS_ALGO_BZIP2     =  3
+  }
+compress_algo_t;
+
+
 #endif /*GNUPG_COMMON_OPENPGPDEFS_H*/
index 3e81ae4..415822a 100644 (file)
@@ -48,7 +48,7 @@ endif
 
 common_source =  \
              gpg.h             \
-             cipher.h          \
+             dek.h             \
              build-packet.c    \
              compress.c        \
              $(bzip2_source)   \
index b4514ae..f31ca88 100644 (file)
@@ -30,7 +30,6 @@
 #include "packet.h"
 #include "status.h"
 #include "iobuf.h"
-#include "cipher.h"
 #include "i18n.h"
 #include "options.h"
 
diff --git a/g10/cipher.h b/g10/cipher.h
deleted file mode 100644 (file)
index 7e784d2..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/* cipher.h - Definitions for OpenPGP
- * Copyright (C) 1998, 1999, 2000, 2001, 2006,
- *               2007, 2010  Free Software Foundation, Inc.
- *
- * This file is part of GnuPG.
- *
- * GnuPG 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; either version 3 of the License, or
- * (at your option) any later version.
- *
- * GnuPG 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, see <http://www.gnu.org/licenses/>.
- */
-#ifndef G10_CIPHER_H
-#define G10_CIPHER_H
-
-#include <gcrypt.h>
-
-/* Constants for OpenPGP. */
-
-#define CIPHER_ALGO_NONE        /*  0 */  GCRY_CIPHER_NONE
-#define CIPHER_ALGO_IDEA        /*  1 */  GCRY_CIPHER_IDEA
-#define CIPHER_ALGO_3DES        /*  2 */  GCRY_CIPHER_3DES
-#define CIPHER_ALGO_CAST5       /*  3 */  GCRY_CIPHER_CAST5
-#define CIPHER_ALGO_BLOWFISH    /*  4 */  GCRY_CIPHER_BLOWFISH /* 128 bit */
-/* 5 & 6 are reserved */
-#define CIPHER_ALGO_AES          /*  7 */  GCRY_CIPHER_AES
-#define CIPHER_ALGO_AES192       /*  8 */  GCRY_CIPHER_AES192
-#define CIPHER_ALGO_AES256       /*  9 */  GCRY_CIPHER_AES256
-#define CIPHER_ALGO_RIJNDAEL     CIPHER_ALGO_AES
-#define CIPHER_ALGO_RIJNDAEL192  CIPHER_ALGO_AES192
-#define CIPHER_ALGO_RIJNDAEL256  CIPHER_ALGO_AES256
-#define CIPHER_ALGO_TWOFISH     /* 10 */  GCRY_CIPHER_TWOFISH  /* 256 bit */
-/* Note: Camellia ids don't match those used by libgcrypt. */
-#define CIPHER_ALGO_CAMELLIA128     11
-#define CIPHER_ALGO_CAMELLIA192     12
-#define CIPHER_ALGO_CAMELLIA256     13
-#define CIPHER_ALGO_DUMMY          110    /* No encryption at all. */
-
-#define PUBKEY_ALGO_RSA          /*  1 */ GCRY_PK_RSA
-#define PUBKEY_ALGO_RSA_E        /*  2 */ GCRY_PK_RSA_E /* RSA encrypt only. */
-#define PUBKEY_ALGO_RSA_S        /*  3 */ GCRY_PK_RSA_S /* RSA sign only.    */
-#define PUBKEY_ALGO_ELGAMAL_E    /* 16 */ GCRY_PK_ELG_E /* Elgamal encr only */
-#define PUBKEY_ALGO_DSA          /* 17 */ GCRY_PK_DSA
-#define PUBKEY_ALGO_ECDH            18
-#define PUBKEY_ALGO_ECDSA           19
-#define PUBKEY_ALGO_ELGAMAL      /* 20 */ GCRY_PK_ELG   /* Elgamal encr+sign */
-#define PUBKEY_ALGO_EDDSA          105    /* Experimental! */
-
-#define PUBKEY_USAGE_SIG     GCRY_PK_USAGE_SIGN  /* Good for signatures. */
-#define PUBKEY_USAGE_ENC     GCRY_PK_USAGE_ENCR  /* Good for encryption. */
-#define PUBKEY_USAGE_CERT    GCRY_PK_USAGE_CERT  /* Also good to certify keys.*/
-#define PUBKEY_USAGE_AUTH    GCRY_PK_USAGE_AUTH  /* Good for authentication. */
-#define PUBKEY_USAGE_UNKNOWN GCRY_PK_USAGE_UNKN  /* Unknown usage flag. */
-#define PUBKEY_USAGE_NONE    256                 /* No usage given. */
-#if  (GCRY_PK_USAGE_SIGN | GCRY_PK_USAGE_ENCR | GCRY_PK_USAGE_CERT \
-      | GCRY_PK_USAGE_AUTH | GCRY_PK_USAGE_UNKN) >= 256
-# error Please choose another value for PUBKEY_USAGE_NONE
-#endif
-
-#define DIGEST_ALGO_MD5       /*  1 */ GCRY_MD_MD5
-#define DIGEST_ALGO_SHA1      /*  2 */ GCRY_MD_SHA1
-#define DIGEST_ALGO_RMD160    /*  3 */ GCRY_MD_RMD160
-/* 4, 5, 6, and 7 are reserved */
-#define DIGEST_ALGO_SHA256    /*  8 */ GCRY_MD_SHA256
-#define DIGEST_ALGO_SHA384    /*  9 */ GCRY_MD_SHA384
-#define DIGEST_ALGO_SHA512    /* 10 */ GCRY_MD_SHA512
-/* SHA224 is only available in libgcrypt 1.4.0; thus we
-   can't use the GCRY macro here.  */
-#define DIGEST_ALGO_SHA224    /* 11 */ 11 /* GCRY_MD_SHA224 */
-
-#define COMPRESS_ALGO_NONE 0
-#define COMPRESS_ALGO_ZIP  1
-#define COMPRESS_ALGO_ZLIB 2
-#define COMPRESS_ALGO_BZIP2  3
-
-#define is_RSA(a)     ((a)==PUBKEY_ALGO_RSA || (a)==PUBKEY_ALGO_RSA_E \
-                      || (a)==PUBKEY_ALGO_RSA_S )
-#define is_ELGAMAL(a) ((a)==PUBKEY_ALGO_ELGAMAL_E)
-#define is_DSA(a)     ((a)==PUBKEY_ALGO_DSA)
-
-/* The data encryption key object. */
-typedef struct
-{
-  int algo;
-  int keylen;
-  int algo_info_printed;
-  int use_mdc;
-  int symmetric;
-  byte key[32]; /* This is the largest used keylen (256 bit). */
-  char s2k_cacheid[1+16+1];
-} DEK;
-
-
-
-/* Constants to allocate static MPI arrays. */
-#define PUBKEY_MAX_NPKEY  5
-#define PUBKEY_MAX_NSKEY  7
-#define PUBKEY_MAX_NSIG   2
-#define PUBKEY_MAX_NENC   2
-
-#endif /*G10_CIPHER_H*/
index 988d211..8d2262e 100644 (file)
--- a/g10/cpr.c
+++ b/g10/cpr.c
@@ -35,7 +35,6 @@
 #include "options.h"
 #include "main.h"
 #include "i18n.h"
-#include "cipher.h" /* for progress functions */
 
 #define CONTROL_D ('D' - 'A' + 1)
 
index 4ad47cb..22a6aef 100644 (file)
@@ -27,7 +27,6 @@
 #include "gpg.h"
 #include "util.h"
 #include "packet.h"
-#include "cipher.h"
 #include "options.h"
 #include "i18n.h"
 #include "status.h"
diff --git a/g10/dek.h b/g10/dek.h
new file mode 100644 (file)
index 0000000..31ebbb6
--- /dev/null
+++ b/g10/dek.h
@@ -0,0 +1,35 @@
+/* dek.h - The data encryption key structure.
+ * Copyright (C) 2014 Werner Koch
+ *
+ * This file is part of GnuPG.
+ *
+ * GnuPG 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; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GnuPG 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, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef G10_DEK_H
+#define G10_DEK_H
+
+
+typedef struct
+{
+  int algo;
+  int keylen;
+  int algo_info_printed;
+  int use_mdc;
+  int symmetric;
+  byte key[32]; /* This is the largest used keylen (256 bit). */
+  char s2k_cacheid[1+16+1];
+} DEK;
+
+
+#endif /*G10_DEK_H*/
index 18a9170..40c5134 100644 (file)
@@ -21,7 +21,7 @@
 #define G10_FILTER_H
 
 #include "types.h"
-#include "cipher.h"
+#include "dek.h"
 
 typedef struct {
     gcry_md_hd_t md;      /* catch all */
index 5963221..99e7404 100644 (file)
@@ -28,7 +28,6 @@
 #include "util.h"
 #include "packet.h"
 #include "../common/iobuf.h"
-#include "cipher.h"
 #include "options.h"
 
 
index 085f2e0..a770d74 100644 (file)
--- a/g10/gpg.c
+++ b/g10/gpg.c
@@ -45,7 +45,6 @@
 #include "options.h"
 #include "keydb.h"
 #include "trustdb.h"
-#include "cipher.h"
 #include "filter.h"
 #include "ttyio.h"
 #include "i18n.h"
index 693f2cc..3251dd0 100644 (file)
--- a/g10/gpg.h
+++ b/g10/gpg.h
 #define MAX_FINGERPRINT_LEN 20
 
 
+
+/*
+    Macros formerly in cipher.h
+ */
+
+
+
+
+
 /*
    Forward declarations.
  */
index c11d9d3..debde9d 100644 (file)
@@ -42,7 +42,6 @@
 #include "options.h"
 #include "keydb.h"
 #include "trustdb.h"
-#include "cipher.h"
 #include "filter.h"
 #include "ttyio.h"
 #include "i18n.h"
index 39e7826..449d22e 100644 (file)
@@ -26,7 +26,6 @@
 #include "types.h"
 #include "util.h"
 #include "packet.h"
-#include "cipher.h"
 
 /* What qualifies as a certification (rather than a signature?) */
 #define IS_CERT(s)       (IS_KEY_SIG(s) || IS_UID_SIG(s) || IS_SUBKEY_SIG(s) \
index 7582b0b..bbd02c5 100644 (file)
@@ -33,7 +33,6 @@
 #include "util.h"
 #include "main.h"
 #include "packet.h"
-#include "cipher.h"
 #include "ttyio.h"
 #include "options.h"
 #include "keydb.h"
index 1b619e0..4d3ab1b 100644 (file)
@@ -22,7 +22,6 @@
 
 #include "types.h"
 #include "iobuf.h"
-#include "cipher.h"
 #include "keydb.h"
 #include "util.h"
 
@@ -43,6 +42,9 @@
 
 #define S2K_DIGEST_ALGO (opt.s2k_digest_algo?opt.s2k_digest_algo:DEFAULT_S2K_DIGEST_ALGO)
 
+
+/* Various data objects.  */
+
 typedef struct
 {
   int header_okay;
@@ -52,6 +54,7 @@ typedef struct
   cipher_filter_context_t cfx;
 } encrypt_filter_context_t;
 
+
 struct groupitem
 {
   char *name;
@@ -59,6 +62,7 @@ struct groupitem
   struct groupitem *next;
 };
 
+
 /*-- gpg.c --*/
 extern int g10_errors_seen;
 
index 18fe7e7..d8606cd 100644 (file)
@@ -31,7 +31,6 @@
 #include "packet.h"
 #include "iobuf.h"
 #include "options.h"
-#include "cipher.h"
 #include "keydb.h"
 #include "filter.h"
 #include "main.h"
index f9878bd..4a7eca2 100644 (file)
@@ -302,7 +302,7 @@ EXTERN_UNLESS_MAIN_MODULE int memory_debug_mode;
 EXTERN_UNLESS_MAIN_MODULE int memory_stat_debug_mode;
 
 
-
+/* Compatibility flags.  */
 #define GNUPG   (opt.compliance==CO_GNUPG)
 #define RFC1991 (opt.compliance==CO_RFC1991 || opt.compliance==CO_PGP2)
 #define RFC2440 (opt.compliance==CO_RFC2440)
@@ -364,4 +364,5 @@ EXTERN_UNLESS_MAIN_MODULE int memory_stat_debug_mode;
 #define KEYSERVER_HONOR_KEYSERVER_URL    (1<<4)
 #define KEYSERVER_HONOR_PKA_RECORD       (1<<5)
 
+
 #endif /*G10_OPTIONS_H*/
index b3956ef..b1b82d7 100644 (file)
@@ -24,7 +24,7 @@
 #include "types.h"
 #include "../common/iobuf.h"
 #include "../common/strlist.h"
-#include "cipher.h"
+#include "dek.h"
 #include "filter.h"
 #include "../common/openpgpdefs.h"
 #include "../common/userids.h"
 #define DEBUG_PARSE_PACKET 1
 
 
+/* Constants to allocate static MPI arrays. */
+#define PUBKEY_MAX_NPKEY  5
+#define PUBKEY_MAX_NSKEY  7
+#define PUBKEY_MAX_NSIG   2
+#define PUBKEY_MAX_NENC   2
+
+/* Usage flags */
+#define PUBKEY_USAGE_SIG     GCRY_PK_USAGE_SIGN  /* Good for signatures. */
+#define PUBKEY_USAGE_ENC     GCRY_PK_USAGE_ENCR  /* Good for encryption. */
+#define PUBKEY_USAGE_CERT    GCRY_PK_USAGE_CERT  /* Also good to certify keys.*/
+#define PUBKEY_USAGE_AUTH    GCRY_PK_USAGE_AUTH  /* Good for authentication. */
+#define PUBKEY_USAGE_UNKNOWN GCRY_PK_USAGE_UNKN  /* Unknown usage flag. */
+#define PUBKEY_USAGE_NONE    256                 /* No usage given. */
+#if  (GCRY_PK_USAGE_SIGN | GCRY_PK_USAGE_ENCR | GCRY_PK_USAGE_CERT \
+      | GCRY_PK_USAGE_AUTH | GCRY_PK_USAGE_UNKN) >= 256
+# error Please choose another value for PUBKEY_USAGE_NONE
+#endif
+
+/* Helper macros.  */
+#define is_RSA(a)     ((a)==PUBKEY_ALGO_RSA || (a)==PUBKEY_ALGO_RSA_E \
+                      || (a)==PUBKEY_ALGO_RSA_S )
+#define is_ELGAMAL(a) ((a)==PUBKEY_ALGO_ELGAMAL_E)
+#define is_DSA(a)     ((a)==PUBKEY_ALGO_DSA)
+
+/* A pointer to the packet object.  */
 typedef struct packet_struct PACKET;
 
 /* PKT_GPG_CONTROL types */
index f4390c3..32fbbd6 100644 (file)
@@ -28,7 +28,6 @@
 #include "util.h"
 #include "packet.h"
 #include "iobuf.h"
-#include "cipher.h"
 #include "filter.h"
 #include "photoid.h"
 #include "options.h"
index f83e668..bd0f0ff 100644 (file)
@@ -37,7 +37,6 @@
 #include "util.h"
 #include "options.h"
 #include "ttyio.h"
-#include "cipher.h"
 #include "keydb.h"
 #include "main.h"
 #include "i18n.h"
index 1e72557..ab18ed7 100644 (file)
@@ -29,7 +29,6 @@
 #include "packet.h"
 #include "keydb.h"
 #include "trustdb.h"
-#include "cipher.h"
 #include "status.h"
 #include "options.h"
 #include "main.h"
index e7f4997..7d04292 100644 (file)
@@ -26,7 +26,6 @@
 
 #include "gpg.h"
 #include "util.h"
-#include "cipher.h"
 #include "options.h"
 #include "main.h"
 #include "i18n.h"
index 134bcfa..a307533 100644 (file)
@@ -28,7 +28,6 @@
 #include "util.h"
 #include "packet.h"
 #include "keydb.h"
-#include "cipher.h"
 #include "main.h"
 #include "status.h"
 #include "i18n.h"
index 5a3ea95..53d6f77 100644 (file)
@@ -32,7 +32,6 @@
 #include "keydb.h"
 #include "util.h"
 #include "i18n.h"
-#include "cipher.h"
 
 
 /* Return true if Libgcrypt's RNG is in faked mode.  */