From af436bc1580949f49c25370f8ad1042303f92259 Mon Sep 17 00:00:00 2001 From: Geoff Thorpe Date: Wed, 11 Jul 2001 18:59:25 +0000 Subject: [PATCH] openssl speed is quite useful for testing hardware support (among other 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 | 6 +++++ apps/speed.c | 2 +- apps/testdsa.h | 72 +++++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 76 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index 3581aa7ad6..330954dc6f 100644 --- a/CHANGES +++ b/CHANGES @@ -12,6 +12,12 @@ *) 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) diff --git a/apps/speed.c b/apps/speed.c index fc33b3c786..6bfe345f81 100644 --- a/apps/speed.c +++ b/apps/speed.c @@ -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]); diff --git a/apps/testdsa.h b/apps/testdsa.h index f0bfbb1ffa..9e84e31c93 100644 --- a/apps/testdsa.h +++ b/apps/testdsa.h @@ -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); } -- GitLab