diff options
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | lib/x509_b64.c | 17 | ||||
-rw-r--r-- | libextra/gnutls_openpgp.c | 4 |
4 files changed, 17 insertions, 10 deletions
@@ -1,3 +1,7 @@ +Version 0.8.12 (25/10/2003) +- Some fixes in the opencdk code. Patch by Ivo Timmermans <ivo@o2w.nl> +- CR is now allowed in the base64 decoder. + Version 0.8.11 (04/10/2003) - Updated to use opencdk 0.5.1 (patch by Mikhail Teterin <mi+mx@aldan.algebra.com>) diff --git a/configure.in b/configure.in index 71f6cb8ab5..7033b5076b 100644 --- a/configure.in +++ b/configure.in @@ -12,7 +12,7 @@ AC_DEFINE_UNQUOTED(T_OS, "$target_os", [OS name]) dnl Gnutls Version GNUTLS_MAJOR_VERSION=0 GNUTLS_MINOR_VERSION=8 -GNUTLS_MICRO_VERSION=11 +GNUTLS_MICRO_VERSION=12 GNUTLS_VERSION=$GNUTLS_MAJOR_VERSION.$GNUTLS_MINOR_VERSION.$GNUTLS_MICRO_VERSION AC_DEFINE_UNQUOTED(GNUTLS_VERSION, "$GNUTLS_VERSION", [version of gnutls]) diff --git a/lib/x509_b64.c b/lib/x509_b64.c index 5f3c5dc766..0444ad4480 100644 --- a/lib/x509_b64.c +++ b/lib/x509_b64.c @@ -376,6 +376,7 @@ inline static int cpydata(const uint8 * data, int data_size, uint8 ** result) * The result_size is the return value */ #define ENDSTR "-----\n" +#define ENDSTR2 "-----\r" int _gnutls_fbase64_decode( const opaque* header, const opaque * data, size_t data_size, uint8 ** result) { @@ -391,7 +392,7 @@ int _gnutls_fbase64_decode( const opaque* header, const opaque * data, size_t da if (header != NULL) { if (strlen(header) > sizeof(pem_header) - sizeof(top) - 1) { gnutls_assert(); - return GNUTLS_E_BASE64_DECODING_ERROR; + return GNUTLS_E_MEMORY_ERROR; } strcpy( pem_header, top); strcpy( pem_header, header); @@ -402,20 +403,22 @@ int _gnutls_fbase64_decode( const opaque* header, const opaque * data, size_t da if (rdata==NULL) { gnutls_assert(); - return GNUTLS_E_BASE64_DECODING_ERROR; + return GNUTLS_E_MEMORY_ERROR; } data_size -= (unsigned long int)rdata-(unsigned long int)data; if (data_size < 4 + strlen(bottom)) { gnutls_assert(); - return GNUTLS_E_BASE64_DECODING_ERROR; + return GNUTLS_E_MEMORY_ERROR; } kdata = strstr( rdata, ENDSTR); + if (kdata==NULL) kdata = strstr( rdata, ENDSTR2); + if (kdata==NULL) { gnutls_assert(); - return GNUTLS_E_BASE64_DECODING_ERROR; + return GNUTLS_E_MEMORY_ERROR; } data_size -= strlen(ENDSTR); data_size -= (unsigned long int)kdata-(unsigned long int)rdata; @@ -427,7 +430,7 @@ int _gnutls_fbase64_decode( const opaque* header, const opaque * data, size_t da kdata = strstr( rdata, bottom); if (kdata==NULL) { gnutls_assert(); - return GNUTLS_E_BASE64_DECODING_ERROR; + return GNUTLS_E_MEMORY_ERROR; } /* position of kdata is before the ----END--- footer @@ -436,14 +439,14 @@ int _gnutls_fbase64_decode( const opaque* header, const opaque * data, size_t da if (rdata_size < 4) { gnutls_assert(); - return GNUTLS_E_BASE64_DECODING_ERROR; + return GNUTLS_E_MEMORY_ERROR; } kdata_size = cpydata(rdata, rdata_size, &kdata); if (kdata_size < 4) { gnutls_assert(); - return GNUTLS_E_BASE64_DECODING_ERROR; + return GNUTLS_E_MEMORY_ERROR; } if ((ret = _gnutls_base64_decode( kdata, kdata_size, result)) < 0) { diff --git a/libextra/gnutls_openpgp.c b/libextra/gnutls_openpgp.c index 6417b6c2ee..c816cc00e6 100644 --- a/libextra/gnutls_openpgp.c +++ b/libextra/gnutls_openpgp.c @@ -510,7 +510,7 @@ gnutls_openpgp_get_key( gnutls_datum *key, const gnutls_datum *keyring, key_attr_t by, opaque *pattern ) { keybox_blob *blob = NULL; - CDK_KEYDB_HD hd = NULL; + cdk_keydb_hd_t hd = NULL; cdk_kbnode_t knode = NULL; unsigned long keyid[2]; unsigned char *buf; @@ -1185,7 +1185,7 @@ gnutls_openpgp_verify_key( const char *trustdb, int cert_list_length ) { cdk_kbnode_t knode = NULL; - CDK_KEYDB_HD hd = NULL; + cdk_keydb_hd_t hd = NULL; keybox_blob *blob = NULL; int rc = 0; int status = 0; |