test release
authorWerner Koch <wk@gnupg.org>
Wed, 8 Apr 1998 19:49:00 +0000 (19:49 +0000)
committerWerner Koch <wk@gnupg.org>
Wed, 8 Apr 1998 19:49:00 +0000 (19:49 +0000)
THANKS
cipher/ChangeLog
cipher/blowfish.c
cipher/cipher.c
cipher/misc.c
mpi/ChangeLog
mpi/config.links

diff --git a/THANKS b/THANKS
index 6a78452..cbbf7a3 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -20,6 +20,7 @@ Peter Gutmann         pgut001@cs.auckland.ac.nz
 Ralph Gillen           gillen@theochem.uni-duesseldorf.de
 Thomas Roessler        roessler@guug.de
 Tomas Fasth            tomas.fasth@twinspot.net
 Ralph Gillen           gillen@theochem.uni-duesseldorf.de
 Thomas Roessler        roessler@guug.de
 Tomas Fasth            tomas.fasth@twinspot.net
+Ulf Möller             3umoelle@informatik.uni-hamburg.de
 Walter Koch            walterk@ddorf.rhein-ruhr.de
 Werner Koch            werner.koch@guug.de
 Wim Vandeputte         bunbun@reptile.rug.ac.be
 Walter Koch            walterk@ddorf.rhein-ruhr.de
 Werner Koch            werner.koch@guug.de
 Wim Vandeputte         bunbun@reptile.rug.ac.be
index e1bc0b8..bc9261b 100644 (file)
@@ -1,3 +1,7 @@
+Wed Apr  8 14:57:11 1998  Werner Koch  (wk@isil.d.shuttle.de)
+
+       * misc.c (check_pubkey_algo2): New.
+
 Tue Apr  7 18:46:49 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
        * cipher.c: New
 Tue Apr  7 18:46:49 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
        * cipher.c: New
index 9e3c2bd..466e8da 100644 (file)
@@ -396,35 +396,17 @@ blowfish_encrypt_block( BLOWFISH_context *bc, byte *outbuf, byte *inbuf )
 {
     u32 d1, d2;
 
 {
     u32 d1, d2;
 
-  #ifdef BIG_ENDIAN_HOST
-    d1 = ((u32*)inbuf)[0]; /* fixme: this may not be aligned */
-    d2 = ((u32*)inbuf)[1];
-  #else
-    ((byte*)&d1)[3] = inbuf[0];
-    ((byte*)&d1)[2] = inbuf[1];
-    ((byte*)&d1)[1] = inbuf[2];
-    ((byte*)&d1)[0] = inbuf[3];
-    ((byte*)&d2)[3] = inbuf[4];
-    ((byte*)&d2)[2] = inbuf[5];
-    ((byte*)&d2)[1] = inbuf[6];
-    ((byte*)&d2)[0] = inbuf[7];
-  #endif
-
+    d1 = inbuf[0] << 24 | inbuf[1] << 16 | inbuf[2] << 8 | inbuf[3];
+    d2 = inbuf[4] << 24 | inbuf[5] << 16 | inbuf[6] << 8 | inbuf[7];
     encrypt( bc, &d1, &d2 );
     encrypt( bc, &d1, &d2 );
-
-  #ifdef BIG_ENDIAN_HOST
-    ((u32*)outbuf)[0] = d1;
-    ((u32*)outbuf)[1] = d2;
-  #else
-    outbuf[0] = ((byte*)&d1)[3];
-    outbuf[1] = ((byte*)&d1)[2];
-    outbuf[2] = ((byte*)&d1)[1];
-    outbuf[3] = ((byte*)&d1)[0];
-    outbuf[4] = ((byte*)&d2)[3];
-    outbuf[5] = ((byte*)&d2)[2];
-    outbuf[6] = ((byte*)&d2)[1];
-    outbuf[7] = ((byte*)&d2)[0];
-  #endif
+    outbuf[0] = (d1 >> 24) & 0xff;
+    outbuf[1] = (d1 >> 16) & 0xff;
+    outbuf[2] = (d1 >> 8) & 0xff;
+    outbuf[3] =  d1       & 0xff;
+    outbuf[4] = (d2 >> 24) & 0xff;
+    outbuf[5] = (d2 >> 16) & 0xff;
+    outbuf[6] = (d2 >> 8) & 0xff;
+    outbuf[7] =  d2       & 0xff;
 }
 
 
 }
 
 
@@ -433,35 +415,17 @@ blowfish_decrypt_block( BLOWFISH_context *bc, byte *outbuf, byte *inbuf )
 {
     u32 d1, d2;
 
 {
     u32 d1, d2;
 
-  #ifdef BIG_ENDIAN_HOST
-    d1 = ((u32*)inbuf)[0]; /* fixme: this may not be aligned */
-    d2 = ((u32*)inbuf)[1];
-  #else
-    ((byte*)&d1)[3] = inbuf[0];
-    ((byte*)&d1)[2] = inbuf[1];
-    ((byte*)&d1)[1] = inbuf[2];
-    ((byte*)&d1)[0] = inbuf[3];
-    ((byte*)&d2)[3] = inbuf[4];
-    ((byte*)&d2)[2] = inbuf[5];
-    ((byte*)&d2)[1] = inbuf[6];
-    ((byte*)&d2)[0] = inbuf[7];
-  #endif
-
+    d1 = inbuf[0] << 24 | inbuf[1] << 16 | inbuf[2] << 8 | inbuf[3];
+    d2 = inbuf[4] << 24 | inbuf[5] << 16 | inbuf[6] << 8 | inbuf[7];
     decrypt( bc, &d1, &d2 );
     decrypt( bc, &d1, &d2 );
-
-  #ifdef BIG_ENDIAN_HOST
-    ((u32*)outbuf)[0] = d1;
-    ((u32*)outbuf)[1] = d2;
-  #else
-    outbuf[0] = ((byte*)&d1)[3];
-    outbuf[1] = ((byte*)&d1)[2];
-    outbuf[2] = ((byte*)&d1)[1];
-    outbuf[3] = ((byte*)&d1)[0];
-    outbuf[4] = ((byte*)&d2)[3];
-    outbuf[5] = ((byte*)&d2)[2];
-    outbuf[6] = ((byte*)&d2)[1];
-    outbuf[7] = ((byte*)&d2)[0];
-  #endif
+    outbuf[0] = (d1 >> 24) & 0xff;
+    outbuf[1] = (d1 >> 16) & 0xff;
+    outbuf[2] = (d1 >> 8) & 0xff;
+    outbuf[3] =  d1       & 0xff;
+    outbuf[4] = (d2 >> 24) & 0xff;
+    outbuf[5] = (d2 >> 16) & 0xff;
+    outbuf[6] = (d2 >> 8) & 0xff;
+    outbuf[7] =  d2       & 0xff;
 }
 
 
 }
 
 
index 6e2bcce..1f24c6b 100644 (file)
@@ -225,8 +225,7 @@ do_cfb_encrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nbytes )
     if( nbytes <= c->unused ) {
        /* short enough to be encoded by the remaining XOR mask */
        /* XOR the input with the IV and store input into IV */
     if( nbytes <= c->unused ) {
        /* short enough to be encoded by the remaining XOR mask */
        /* XOR the input with the IV and store input into IV */
-       c->unused -= nbytes;
-       for(ivp=c->iv+STD_BLOCKSIZE - c->unused; nbytes; nbytes-- )
+       for(ivp=c->iv+STD_BLOCKSIZE - c->unused; nbytes; nbytes--, c->unused-- )
            *outbuf++ = (*ivp++ ^= *inbuf++);
        return;
     }
            *outbuf++ = (*ivp++ ^= *inbuf++);
        return;
     }
@@ -271,8 +270,7 @@ do_cfb_decrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nbytes )
     if( nbytes <= c->unused ) {
        /* short enough to be encoded by the remaining XOR mask */
        /* XOR the input with the IV and store input into IV */
     if( nbytes <= c->unused ) {
        /* short enough to be encoded by the remaining XOR mask */
        /* XOR the input with the IV and store input into IV */
-       c->unused -= nbytes;
-       for(ivp=c->iv+STD_BLOCKSIZE - c->unused; nbytes; nbytes-- ) {
+       for(ivp=c->iv+STD_BLOCKSIZE - c->unused; nbytes; nbytes--,c->unused--){
            temp = *inbuf++;
            *outbuf++ = *ivp ^ temp;
            *ivp++ = temp;
            temp = *inbuf++;
            *outbuf++ = *ivp ^ temp;
            *ivp++ = temp;
index 35761e4..3016b8e 100644 (file)
@@ -114,18 +114,31 @@ digest_algo_to_string( int algo )
 
 
 
 
 
 
-
-
 int
 check_pubkey_algo( int algo )
 {
 int
 check_pubkey_algo( int algo )
 {
+    return check_pubkey_algo2( algo, 0 );
+}
+
+/****************
+ * a usage of 0 means: don't care
+ */
+int
+check_pubkey_algo2( int algo, unsigned usage )
+{
     switch( algo ) {
     switch( algo ) {
-      case PUBKEY_ALGO_ELGAMAL:
       case PUBKEY_ALGO_DSA:
       case PUBKEY_ALGO_DSA:
+       if( usage & 2 )
+           return G10ERR_WR_PUBKEY_ALGO;
+       return 0;
+
+      case PUBKEY_ALGO_ELGAMAL:
+       return 0;
+
     #ifdef HAVE_RSA_CIPHER
       case PUBKEY_ALGO_RSA:
     #ifdef HAVE_RSA_CIPHER
       case PUBKEY_ALGO_RSA:
-    #endif
        return 0;
        return 0;
+    #endif
       default:
        return G10ERR_PUBKEY_ALGO;
     }
       default:
        return G10ERR_PUBKEY_ALGO;
     }
index ca01cb4..0a967df 100644 (file)
@@ -1,3 +1,7 @@
+Wed Apr  8 09:44:33 1998  Werner Koch  (wk@isil.d.shuttle.de)
+
+       * config.links: Applied small fix from Ulf Möller.
+
 Mon Apr  6 12:38:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
        * mpicoder.c (mpi_get_buffer): Removed returned leading zeroes
 Mon Apr  6 12:38:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
        * mpicoder.c (mpi_get_buffer): Removed returned leading zeroes
index 6533177..fe9bda1 100644 (file)
@@ -111,7 +111,7 @@ esac
 
 
 case "${target}" in
 
 
 case "${target}" in
-    *-*-linuxaout* | *-*-linuxoldld*)
+    *-*-linuxaout* | *-*-linuxoldld* | *-*-linux-gnuoldld*)
        needs_underscore="y"
        ;;
     *-*-linux* | *-sysv* | *-solaris* | *-gnu*)
        needs_underscore="y"
        ;;
     *-*-linux* | *-sysv* | *-solaris* | *-gnu*)