1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-05-31 22:18:03 +02:00

build: Require latest released libraries

* agent/protect.c (OCB_MODE_SUPPORTED): Remove macro.
(do_encryption): Always support OCB.
(do_decryption): Ditto.
(agent_unprotect): Ditto.
* dirmngr/server.c (is_tor_running): Unconditionally build this.
--

Although not technically required, it is easier to require them to
avoid bug reports due to too old library versions.

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2016-07-14 10:40:15 +02:00
parent 66b634f27f
commit c98995efef
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
4 changed files with 12 additions and 40 deletions

View File

@ -42,12 +42,6 @@
#include "sexp-parse.h" #include "sexp-parse.h"
#if GCRYPT_VERSION_NUMBER < 0x010700
# define OCB_MODE_SUPPORTED 0
#else
# define OCB_MODE_SUPPORTED 1
#endif
/* To use the openpgp-s2k3-ocb-aes scheme by default set the value of /* To use the openpgp-s2k3-ocb-aes scheme by default set the value of
* this macro to 1. Note that the caller of agent_protect may * this macro to 1. Note that the caller of agent_protect may
* override this default. */ * override this default. */
@ -353,16 +347,11 @@ do_encryption (const unsigned char *hashbegin, size_t hashlen,
*resultlen = 0; *resultlen = 0;
*result = NULL; *result = NULL;
if (use_ocb && !OCB_MODE_SUPPORTED)
return gpg_error (GPG_ERR_UNSUPPORTED_PROTECTION);
modestr = (use_ocb? "openpgp-s2k3-ocb-aes" modestr = (use_ocb? "openpgp-s2k3-ocb-aes"
/* */: "openpgp-s2k3-sha1-" PROT_CIPHER_STRING "-cbc"); /* */: "openpgp-s2k3-sha1-" PROT_CIPHER_STRING "-cbc");
rc = gcry_cipher_open (&hd, PROT_CIPHER, rc = gcry_cipher_open (&hd, PROT_CIPHER,
#if OCB_MODE_SUPPORTED
use_ocb? GCRY_CIPHER_MODE_OCB : use_ocb? GCRY_CIPHER_MODE_OCB :
#endif
GCRY_CIPHER_MODE_CBC, GCRY_CIPHER_MODE_CBC,
GCRY_CIPHER_SECURE); GCRY_CIPHER_SECURE);
if (rc) if (rc)
@ -500,7 +489,6 @@ do_encryption (const unsigned char *hashbegin, size_t hashlen,
p += blklen; p += blklen;
} }
assert ( p - outbuf == outlen); assert ( p - outbuf == outlen);
#if OCB_MODE_SUPPORTED
if (use_ocb) if (use_ocb)
{ {
gcry_cipher_final (hd); gcry_cipher_final (hd);
@ -512,7 +500,6 @@ do_encryption (const unsigned char *hashbegin, size_t hashlen,
} }
} }
else else
#endif /*OCB_MODE_SUPPORTED*/
{ {
rc = gcry_cipher_encrypt (hd, outbuf, enclen, NULL, 0); rc = gcry_cipher_encrypt (hd, outbuf, enclen, NULL, 0);
} }
@ -755,9 +742,6 @@ do_decryption (const unsigned char *aad_begin, size_t aad_len,
unsigned char *outbuf; unsigned char *outbuf;
size_t reallen; size_t reallen;
if (is_ocb && !OCB_MODE_SUPPORTED)
return gpg_error (GPG_ERR_UNSUPPORTED_PROTECTION);
blklen = gcry_cipher_get_algo_blklen (prot_cipher); blklen = gcry_cipher_get_algo_blklen (prot_cipher);
if (is_ocb) if (is_ocb)
{ {
@ -774,9 +758,7 @@ do_decryption (const unsigned char *aad_begin, size_t aad_len,
} }
rc = gcry_cipher_open (&hd, prot_cipher, rc = gcry_cipher_open (&hd, prot_cipher,
#if OCB_MODE_SUPPORTED
is_ocb? GCRY_CIPHER_MODE_OCB : is_ocb? GCRY_CIPHER_MODE_OCB :
#endif
GCRY_CIPHER_MODE_CBC, GCRY_CIPHER_MODE_CBC,
GCRY_CIPHER_SECURE); GCRY_CIPHER_SECURE);
if (rc) if (rc)
@ -813,7 +795,6 @@ do_decryption (const unsigned char *aad_begin, size_t aad_len,
/* Decrypt. */ /* Decrypt. */
if (!rc) if (!rc)
{ {
#if OCB_MODE_SUPPORTED
if (is_ocb) if (is_ocb)
{ {
rc = gcry_cipher_authenticate (hd, aad_begin, rc = gcry_cipher_authenticate (hd, aad_begin,
@ -833,7 +814,6 @@ do_decryption (const unsigned char *aad_begin, size_t aad_len,
rc = gcry_cipher_checktag (hd, protected + protectedlen - 16, 16); rc = gcry_cipher_checktag (hd, protected + protectedlen - 16, 16);
} }
else else
#endif /*OCB_MODE_SUPPORTED*/
{ {
rc = gcry_cipher_decrypt (hd, outbuf, protectedlen, rc = gcry_cipher_decrypt (hd, outbuf, protectedlen,
protected, protectedlen); protected, protectedlen);
@ -1177,8 +1157,7 @@ agent_unprotect (ctrl_t ctrl,
is_ocb = algotable[i].is_ocb; is_ocb = algotable[i].is_ocb;
break; break;
} }
if (i == DIM (algotable) if (i == DIM (algotable))
|| (is_ocb && !OCB_MODE_SUPPORTED))
return gpg_error (GPG_ERR_UNSUPPORTED_PROTECTION); return gpg_error (GPG_ERR_UNSUPPORTED_PROTECTION);
if (!prot_cipher) /* This is "openpgp-native". */ if (!prot_cipher) /* This is "openpgp-native". */

View File

@ -36,11 +36,10 @@
#include <gpg-error.h> /* We need gpg_error_t and estream. */ #include <gpg-error.h> /* We need gpg_error_t and estream. */
/* These error codes are used but not defined in the required /* These error codes are used but not defined in the required
libgpg-error version. Define them here. */ * libgpg-error version. Define them here.
/* Example: (#if GPG_ERROR_VERSION_NUMBER < 0x011500 // 1.21) */ * Example: (#if GPG_ERROR_VERSION_NUMBER < 0x011500 // 1.21)
#if GPG_ERROR_VERSION_NUMBER < 0x011600 /* 1.22 */ */
# define GPG_ERR_DB_CORRUPTED 218
#endif /* gpg_error < 1.22 */
/* Hash function used with libksba. */ /* Hash function used with libksba. */
#define HASH_FNC ((void (*)(void *, const void*,size_t))gcry_md_write) #define HASH_FNC ((void (*)(void *, const void*,size_t))gcry_md_write)

View File

@ -49,23 +49,22 @@ m4_define([mym4_revision_dec], m4_argn(8, mym4_verslist))
m4_esyscmd([echo ]mym4_version[>VERSION]) m4_esyscmd([echo ]mym4_version[>VERSION])
AC_INIT([mym4_package],[mym4_version], [https://bugs.gnupg.org]) AC_INIT([mym4_package],[mym4_version], [https://bugs.gnupg.org])
# Note that for Windows we require version 1.22 NEED_GPG_ERROR_VERSION=1.24
NEED_GPG_ERROR_VERSION=1.21
NEED_LIBGCRYPT_API=1 NEED_LIBGCRYPT_API=1
NEED_LIBGCRYPT_VERSION=1.6.0 NEED_LIBGCRYPT_VERSION=1.7.0
NEED_LIBASSUAN_API=2 NEED_LIBASSUAN_API=2
NEED_LIBASSUAN_VERSION=2.4.1 NEED_LIBASSUAN_VERSION=2.4.3
NEED_KSBA_API=1 NEED_KSBA_API=1
NEED_KSBA_VERSION=1.2.0 NEED_KSBA_VERSION=1.3.4
NEED_NTBTLS_API=1 NEED_NTBTLS_API=1
NEED_NTBTLS_VERSION=0.1.0 NEED_NTBTLS_VERSION=0.1.0
NEED_NPTH_API=1 NEED_NPTH_API=1
NEED_NPTH_VERSION=0.91 NEED_NPTH_VERSION=1.2
NEED_GNUTLS_VERSION=3.0 NEED_GNUTLS_VERSION=3.0

View File

@ -274,14 +274,12 @@ strcpy_escaped_plus (char *d, const unsigned char *s)
} }
/* This fucntion returns true if a Tor server is running. The sattus /* This function returns true if a Tor server is running. The sattus
is cached for the current conenction. */ is cached for the current conenction. */
static int static int
is_tor_running (ctrl_t ctrl) is_tor_running (ctrl_t ctrl)
{ {
#if ASSUAN_VERSION_NUMBER >= 0x020402 /* Check whether we can connect to the proxy. */
/* Check whether we can connect to the proxy. We use a
special feature introduced with libassuan 2.4.2. */
if (!ctrl || !ctrl->server_local) if (!ctrl || !ctrl->server_local)
return 0; /* Ooops. */ return 0; /* Ooops. */
@ -300,9 +298,6 @@ is_tor_running (ctrl_t ctrl)
} }
} }
return (ctrl->server_local->tor_state > 0); return (ctrl->server_local->tor_state > 0);
#else /* Libassuan < 2.4.2 */
return 0; /* We don't know. */
#endif
} }