openssl speed is quite useful for testing hardware support (among other
authorGeoff Thorpe <geoff@openssl.org>
Wed, 11 Jul 2001 18:59:25 +0000 (18:59 +0000)
committerGeoff Thorpe <geoff@openssl.org>
Wed, 11 Jul 2001 18:59:25 +0000 (18:59 +0000)
things), especially as the RSA keys are fixed. However, DSA only fixes the
DSA parameters and then generates the public and private components on the
fly each time - this commit hard-codes some sampled key values so that this
is no longer the case.

CHANGES
apps/speed.c
apps/testdsa.h

diff --git a/CHANGES b/CHANGES
index 3581aa7ad68812ba3be11b4b32ccbbfc8db619ca..330954dc6fcc1961fe7703e6cad6fabe3637d4b7 100644 (file)
--- a/CHANGES
+++ b/CHANGES
          *) applies to 0.9.6a/0.9.6b and 0.9.7
          +) applies to 0.9.7 only
 
+  +) Cause 'openssl speed' to use fully hard-coded DSA keys as it
+     already does with RSA. testdsa.h now has 'priv_key/pub_key'
+     values for each of the key sizes rather than having just
+     parameters (and 'speed' generating keys each time).
+     [Geoff Thorpe]
+
   -) OpenSSL 0.9.6b released [9 July 2001]
 
   *) Change ssleay_rand_bytes (crypto/rand/md_rand.c)
index fc33b3c7868120564cb93c09a4d7237c463ee934..6bfe345f81d35690e758bf236f0e96fc237154b5 100644 (file)
@@ -1316,7 +1316,7 @@ int MAIN(int argc, char **argv)
                int ret;
 
                if (!dsa_doit[j]) continue;
-               DSA_generate_key(dsa_key[j]);
+/*             DSA_generate_key(dsa_key[j]); */
 /*             DSA_sign_setup(dsa_key[j],NULL); */
                ret=DSA_sign(EVP_PKEY_DSA,buf,20,buf2,
                        &kk,dsa_key[j]);
index f0bfbb1ffa2f3193abdee62934f099dcee232523..9e84e31c939448d6a1c37941f3e8913819e14927 100644 (file)
@@ -3,6 +3,18 @@
 DSA *get_dsa512(void );
 DSA *get_dsa1024(void );
 DSA *get_dsa2048(void );
+static unsigned char dsa512_priv[] = {
+       0x65,0xe5,0xc7,0x38,0x60,0x24,0xb5,0x89,0xd4,0x9c,0xeb,0x4c,
+       0x9c,0x1d,0x7a,0x22,0xbd,0xd1,0xc2,0xd2,
+       };
+static unsigned char dsa512_pub[] = {
+       0x00,0x95,0xa7,0x0d,0xec,0x93,0x68,0xba,0x5f,0xf7,0x5f,0x07,
+       0xf2,0x3b,0xad,0x6b,0x01,0xdc,0xbe,0xec,0xde,0x04,0x7a,0x3a,
+       0x27,0xb3,0xec,0x49,0xfd,0x08,0x43,0x3d,0x7e,0xa8,0x2c,0x5e,
+       0x7b,0xbb,0xfc,0xf4,0x6e,0xeb,0x6c,0xb0,0x6e,0xf8,0x02,0x12,
+       0x8c,0x38,0x5d,0x83,0x56,0x7d,0xee,0x53,0x05,0x3e,0x24,0x84,
+       0xbe,0xba,0x0a,0x6b,0xc8,
+       };
 static unsigned char dsa512_p[]={
        0x9D,0x1B,0x69,0x8E,0x26,0xDB,0xF2,0x2B,0x11,0x70,0x19,0x86,
        0xF6,0x19,0xC8,0xF8,0x19,0xF2,0x18,0x53,0x94,0x46,0x06,0xD0,
@@ -29,14 +41,34 @@ DSA *get_dsa512()
        DSA *dsa;
 
        if ((dsa=DSA_new()) == NULL) return(NULL);
+       dsa->priv_key=BN_bin2bn(dsa512_priv,sizeof(dsa512_priv),NULL);
+       dsa->pub_key=BN_bin2bn(dsa512_pub,sizeof(dsa512_pub),NULL);
        dsa->p=BN_bin2bn(dsa512_p,sizeof(dsa512_p),NULL);
        dsa->q=BN_bin2bn(dsa512_q,sizeof(dsa512_q),NULL);
        dsa->g=BN_bin2bn(dsa512_g,sizeof(dsa512_g),NULL);
-       if ((dsa->p == NULL) || (dsa->q == NULL) || (dsa->g == NULL))
+       if ((dsa->priv_key == NULL) || (dsa->pub_key == NULL) || (dsa->p == NULL) ||
+                               (dsa->q == NULL) || (dsa->g == NULL))
                return(NULL);
        return(dsa);
        }
 
+static unsigned char dsa1024_priv[]={
+       0x7d,0x21,0xda,0xbb,0x62,0x15,0x47,0x36,0x07,0x67,0x12,0xe8,
+       0x8c,0xaa,0x1c,0xcd,0x38,0x12,0x61,0x18,
+       };
+static unsigned char dsa1024_pub[]={
+       0x3c,0x4e,0x9c,0x2a,0x7f,0x16,0xc1,0x25,0xeb,0xac,0x78,0x63,
+       0x90,0x14,0x8c,0x8b,0xf4,0x68,0x43,0x3c,0x2d,0xee,0x65,0x50,
+       0x7d,0x9c,0x8f,0x8c,0x8a,0x51,0xd6,0x11,0x2b,0x99,0xaf,0x1e,
+       0x90,0x97,0xb5,0xd3,0xa6,0x20,0x25,0xd6,0xfe,0x43,0x02,0xd5,
+       0x91,0x7d,0xa7,0x8c,0xdb,0xc9,0x85,0xa3,0x36,0x48,0xf7,0x68,
+       0xaa,0x60,0xb1,0xf7,0x05,0x68,0x3a,0xa3,0x3f,0xd3,0x19,0x82,
+       0xd8,0x82,0x7a,0x77,0xfb,0xef,0xf4,0x15,0x0a,0xeb,0x06,0x04,
+       0x7f,0x53,0x07,0x0c,0xbc,0xcb,0x2d,0x83,0xdb,0x3e,0xd1,0x28,
+       0xa5,0xa1,0x31,0xe0,0x67,0xfa,0x50,0xde,0x9b,0x07,0x83,0x7e,
+       0x2c,0x0b,0xc3,0x13,0x50,0x61,0xe5,0xad,0xbd,0x36,0xb8,0x97,
+       0x4e,0x40,0x7d,0xe8,0x83,0x0d,0xbc,0x4b
+       };
 static unsigned char dsa1024_p[]={
        0xA7,0x3F,0x6E,0x85,0xBF,0x41,0x6A,0x29,0x7D,0xF0,0x9F,0x47,
        0x19,0x30,0x90,0x9A,0x09,0x1D,0xDA,0x6A,0x33,0x1E,0xC5,0x3D,
@@ -73,14 +105,45 @@ DSA *get_dsa1024()
        DSA *dsa;
 
        if ((dsa=DSA_new()) == NULL) return(NULL);
+       dsa->priv_key=BN_bin2bn(dsa1024_priv,sizeof(dsa1024_priv),NULL);
+       dsa->pub_key=BN_bin2bn(dsa1024_pub,sizeof(dsa1024_pub),NULL);
        dsa->p=BN_bin2bn(dsa1024_p,sizeof(dsa1024_p),NULL);
        dsa->q=BN_bin2bn(dsa1024_q,sizeof(dsa1024_q),NULL);
        dsa->g=BN_bin2bn(dsa1024_g,sizeof(dsa1024_g),NULL);
-       if ((dsa->p == NULL) || (dsa->q == NULL) || (dsa->g == NULL))
+       if ((dsa->priv_key == NULL) || (dsa->pub_key == NULL) || (dsa->p == NULL) ||
+                               (dsa->q == NULL) || (dsa->g == NULL))
                return(NULL);
        return(dsa);
        }
 
+static unsigned char dsa2048_priv[]={
+       0x32,0x67,0x92,0xf6,0xc4,0xe2,0xe2,0xe8,0xa0,0x8b,0x6b,0x45,
+       0x0c,0x8a,0x76,0xb0,0xee,0xcf,0x91,0xa7,
+       };
+static unsigned char dsa2048_pub[]={
+       0x17,0x8f,0xa8,0x11,0x84,0x92,0xec,0x83,0x47,0xc7,0x6a,0xb0,
+       0x92,0xaf,0x5a,0x20,0x37,0xa3,0x64,0x79,0xd2,0xd0,0x3d,0xcd,
+       0xe0,0x61,0x88,0x88,0x21,0xcc,0x74,0x5d,0xce,0x4c,0x51,0x47,
+       0xf0,0xc5,0x5c,0x4c,0x82,0x7a,0xaf,0x72,0xad,0xb9,0xe0,0x53,
+       0xf2,0x78,0xb7,0xf0,0xb5,0x48,0x7f,0x8a,0x3a,0x18,0xd1,0x9f,
+       0x8b,0x7d,0xa5,0x47,0xb7,0x95,0xab,0x98,0xf8,0x7b,0x74,0x50,
+       0x56,0x8e,0x57,0xf0,0xee,0xf5,0xb7,0xba,0xab,0x85,0x86,0xf9,
+       0x2b,0xef,0x41,0x56,0xa0,0xa4,0x9f,0xb7,0x38,0x00,0x46,0x0a,
+       0xa6,0xf1,0xfc,0x1f,0xd8,0x4e,0x85,0x44,0x92,0x43,0x21,0x5d,
+       0x6e,0xcc,0xc2,0xcb,0x26,0x31,0x0d,0x21,0xc4,0xbd,0x8d,0x24,
+       0xbc,0xd9,0x18,0x19,0xd7,0xdc,0xf1,0xe7,0x93,0x50,0x48,0x03,
+       0x2c,0xae,0x2e,0xe7,0x49,0x88,0x5f,0x93,0x57,0x27,0x99,0x36,
+       0xb4,0x20,0xab,0xfc,0xa7,0x2b,0xf2,0xd9,0x98,0xd7,0xd4,0x34,
+       0x9d,0x96,0x50,0x58,0x9a,0xea,0x54,0xf3,0xee,0xf5,0x63,0x14,
+       0xee,0x85,0x83,0x74,0x76,0xe1,0x52,0x95,0xc3,0xf7,0xeb,0x04,
+       0x04,0x7b,0xa7,0x28,0x1b,0xcc,0xea,0x4a,0x4e,0x84,0xda,0xd8,
+       0x9c,0x79,0xd8,0x9b,0x66,0x89,0x2f,0xcf,0xac,0xd7,0x79,0xf9,
+       0xa9,0xd8,0x45,0x13,0x78,0xb9,0x00,0x14,0xc9,0x7e,0x22,0x51,
+       0x86,0x67,0xb0,0x9f,0x26,0x11,0x23,0xc8,0x38,0xd7,0x70,0x1d,
+       0x15,0x8e,0x4d,0x4f,0x95,0x97,0x40,0xa1,0xc2,0x7e,0x01,0x18,
+       0x72,0xf4,0x10,0xe6,0x8d,0x52,0x16,0x7f,0xf2,0xc9,0xf8,0x33,
+       0x8b,0x33,0xb7,0xce,
+       };
 static unsigned char dsa2048_p[]={
        0xA0,0x25,0xFA,0xAD,0xF4,0x8E,0xB9,0xE5,0x99,0xF3,0x5D,0x6F,
        0x4F,0x83,0x34,0xE2,0x7E,0xCF,0x6F,0xBF,0x30,0xAF,0x6F,0x81,
@@ -139,10 +202,13 @@ DSA *get_dsa2048()
        DSA *dsa;
  
        if ((dsa=DSA_new()) == NULL) return(NULL);
+       dsa->priv_key=BN_bin2bn(dsa2048_priv,sizeof(dsa2048_priv),NULL);
+       dsa->pub_key=BN_bin2bn(dsa2048_pub,sizeof(dsa2048_pub),NULL);
        dsa->p=BN_bin2bn(dsa2048_p,sizeof(dsa2048_p),NULL);
        dsa->q=BN_bin2bn(dsa2048_q,sizeof(dsa2048_q),NULL);
        dsa->g=BN_bin2bn(dsa2048_g,sizeof(dsa2048_g),NULL);
-       if ((dsa->p == NULL) || (dsa->q == NULL) || (dsa->g == NULL))
+       if ((dsa->priv_key == NULL) || (dsa->pub_key == NULL) || (dsa->p == NULL) ||
+                               (dsa->q == NULL) || (dsa->g == NULL))
                return(NULL);
        return(dsa);
        }