diff --git a/ChangeLog b/ChangeLog index 2a830143a..f998dd1b0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2003-11-17 Werner Koch + + Release 1.9.2. + + * configure.ac: Requires now libassuan 0.6.1. + 2003-10-31 Werner Koch * configure.ac (NEED_KSBA_VERSION): Set to 0.9.0 due the changed diff --git a/NEWS b/NEWS index b708d44cf..1f8ee3387 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -Noteworthy changes in version 1.9.2 (unreleased) +Noteworthy changes in version 1.9.2 (2003-11-17) ------------------------------------------------ * On card key generation is no longer done using the --gen-key @@ -7,6 +7,8 @@ Noteworthy changes in version 1.9.2 (unreleased) * PINs are now properly cached and there are only 2 PINs visible. The 3rd PIN (CHV2) is internally syncronized with the regular PIN. + * All kind of other internal stuff. + Noteworthy changes in version 1.9.1 (2003-09-06) ------------------------------------------------ diff --git a/TODO b/TODO index e8aa872a1..eb8e2da66 100644 --- a/TODO +++ b/TODO @@ -70,4 +70,11 @@ might want to have an agent context for each service request * scd/sc-investigate ** Enhance with card compatibility check +* scd/app-openpgp + Do a pre-check to make sure that the minimum length condition of the + PINs are satisied - this avoid useless retry counter decrements in + case the PIN dialog is accidently hit. + Must check that the fingerprint used is not the one of the + authentication key. Old GnuPG versions seem to encode the wrong + keyID. \ No newline at end of file diff --git a/common/ChangeLog b/common/ChangeLog index da80507f2..2344868a7 100644 --- a/common/ChangeLog +++ b/common/ChangeLog @@ -1,5 +1,7 @@ 2003-11-14 Werner Koch + * mkdtemp.c (mkdtemp): Use gcry_create_nonce. + * cryptmiss.c: Removed. 2003-11-13 Werner Koch diff --git a/common/mkdtemp.c b/common/mkdtemp.c index 5347b9cb4..abe731e0a 100644 --- a/common/mkdtemp.c +++ b/common/mkdtemp.c @@ -66,11 +66,8 @@ char *mkdtemp(char *template) idx=0; - /* Using really random bits is probably overkill here. The - worst thing that can happen with a directory name collision - is that the function will return an error. */ - - randombits = gcry_random_bytes (4*remaining, GCRY_WEAK_RANDOM); + randombits = gcry_xmalloc (4*remaining); + gcry_create_nonce (randombits, 4*remaining); while(remaining>1) { diff --git a/configure.ac b/configure.ac index 1c6269f49..8886d5075 100644 --- a/configure.ac +++ b/configure.ac @@ -22,14 +22,14 @@ AC_PREREQ(2.52) # Version number: Remember to change it immediately *after* a release. # Add a "-cvs" prefix for non-released code. -AC_INIT(gnupg, 1.9.2-cvs, gnupg-devel@gnupg.org) +AC_INIT(gnupg, 1.9.2, gnupg-devel@gnupg.org) # Set development_version to yes if the minor number is odd or you # feel that the default check for a development version is not # sufficient. development_version=yes -NEED_GPG_ERROR_VERSION=0.4 -NEED_LIBGCRYPT_VERSION=1.1.43 -NEED_LIBASSUAN_VERSION=0.6.0 +NEED_GPG_ERROR_VERSION=0.6 +NEED_LIBGCRYPT_VERSION=1.1.90 +NEED_LIBASSUAN_VERSION=0.6.1 NEED_KSBA_VERSION=0.9.0 NEED_OPENSC_VERSION=0.8.0 @@ -948,7 +948,7 @@ if test "$have_ksba" = "no"; then *** *** You need libksba to build this program. *** This library is for example available at -*** ftp://ftp.gnupg.org/pub/gcrypt/alpha/aegypten/ +*** ftp://ftp.gnupg.org/pub/gcrypt/alpha/libksba/ *** (at least version $NEED_KSBA_VERSION is required). ***]]) fi diff --git a/jnlib/ChangeLog b/jnlib/ChangeLog index 7888ff18d..e12dd8e00 100644 --- a/jnlib/ChangeLog +++ b/jnlib/ChangeLog @@ -1,3 +1,9 @@ +2003-11-13 Werner Koch + + * strlist.c (strlist_copy): New. + + * dotlock.c: Define DIRSEP_C et al. if not defined. + 2003-11-06 Werner Koch * strlist.h (strlist_t): New. STRLIST is now deprecated. diff --git a/jnlib/dotlock.c b/jnlib/dotlock.c index 7240fafeb..a50a0ee99 100644 --- a/jnlib/dotlock.c +++ b/jnlib/dotlock.c @@ -37,6 +37,22 @@ #include "libjnlib-config.h" #include "dotlock.h" +#if !defined(DIRSEP_C) && !defined(EXTSEP_C) \ + && !defined(DIRSEP_S) && !defined(EXTSEP_S) +#ifdef HAVE_DOSISH_SYSTEM +#define DIRSEP_C '\\' +#define EXTSEP_C '.' +#define DIRSEP_S "\\" +#define EXTSEP_S "." +#else +#define DIRSEP_C '/' +#define EXTSEP_C '.' +#define DIRSEP_S "/" +#define EXTSEP_S "." +#endif +#endif + + struct dotlock_handle { struct dotlock_handle *next; char *tname; /* name of lockfile template */ diff --git a/jnlib/strlist.c b/jnlib/strlist.c index 063c89c7e..49b510666 100644 --- a/jnlib/strlist.c +++ b/jnlib/strlist.c @@ -29,9 +29,9 @@ void -free_strlist( STRLIST sl ) +free_strlist( strlist_t sl ) { - STRLIST sl2; + strlist_t sl2; for(; sl; sl = sl2 ) { sl2 = sl->next; @@ -40,10 +40,10 @@ free_strlist( STRLIST sl ) } -STRLIST -add_to_strlist( STRLIST *list, const char *string ) +strlist_t +add_to_strlist( strlist_t *list, const char *string ) { - STRLIST sl; + strlist_t sl; sl = jnlib_xmalloc( sizeof *sl + strlen(string)); sl->flags = 0; @@ -58,10 +58,10 @@ add_to_strlist( STRLIST *list, const char *string ) * same as add_to_strlist() but if is_utf8 is *not* set a conversion * to UTF8 is done */ -STRLIST -add_to_strlist2( STRLIST *list, const char *string, int is_utf8 ) +strlist_t +add_to_strlist2( strlist_t *list, const char *string, int is_utf8 ) { - STRLIST sl; + strlist_t sl; if( is_utf8 ) sl = add_to_strlist( list, string ); @@ -74,10 +74,10 @@ add_to_strlist2( STRLIST *list, const char *string, int is_utf8 ) } #endif -STRLIST -append_to_strlist( STRLIST *list, const char *string ) +strlist_t +append_to_strlist( strlist_t *list, const char *string ) { - STRLIST r, sl; + strlist_t r, sl; sl = jnlib_xmalloc( sizeof *sl + strlen(string)); sl->flags = 0; @@ -94,10 +94,10 @@ append_to_strlist( STRLIST *list, const char *string ) } #if 0 -STRLIST -append_to_strlist2( STRLIST *list, const char *string, int is_utf8 ) +strlist_t +append_to_strlist2( strlist_t *list, const char *string, int is_utf8 ) { - STRLIST sl; + strlist_t sl; if( is_utf8 ) sl = append_to_strlist( list, string ); @@ -110,18 +110,40 @@ append_to_strlist2( STRLIST *list, const char *string, int is_utf8 ) } #endif -STRLIST -strlist_prev( STRLIST head, STRLIST node ) + +/* Return a copy of LIST. */ +strlist_t +strlist_copy (strlist_t list) { - STRLIST n; + strlist_t newlist = NULL, sl, *last; + + last = &newlist; + for (; list; list = list->next) + { + sl = jnlib_xmalloc (sizeof *sl + strlen (list->d)); + sl->flags = list->flags; + strcpy(sl->d, list->d); + sl->next = NULL; + *last = sl; + last = &sl; + } + return newlist; +} + + + +strlist_t +strlist_prev( strlist_t head, strlist_t node ) +{ + strlist_t n; for(n=NULL; head && head != node; head = head->next ) n = head; return n; } -STRLIST -strlist_last( STRLIST node ) +strlist_t +strlist_last( strlist_t node ) { if( node ) for( ; node->next ; node = node->next ) @@ -131,10 +153,10 @@ strlist_last( STRLIST node ) char * -strlist_pop (STRLIST *list) +strlist_pop (strlist_t *list) { char *str=NULL; - STRLIST sl=*list; + strlist_t sl=*list; if(sl) { @@ -148,4 +170,3 @@ strlist_pop (STRLIST *list) return str; } - diff --git a/jnlib/strlist.h b/jnlib/strlist.h index ea459d006..72da241bc 100644 --- a/jnlib/strlist.h +++ b/jnlib/strlist.h @@ -37,6 +37,8 @@ strlist_t add_to_strlist (strlist_t *list, const char *string); strlist_t append_to_strlist (strlist_t *list, const char *string); +strlist_t strlist_copy (strlist_t list); + /*strlist_t append_to_strlist2( strlist_t *list, const char *string, int is_utf8);*/ strlist_t strlist_prev (strlist_t head, strlist_t node);