diff options
author | Ben Laurie <ben@openssl.org> | 2001-07-30 17:46:22 +0000 |
---|---|---|
committer | Ben Laurie <ben@openssl.org> | 2001-07-30 17:46:22 +0000 |
commit | 3ba5d1cf2eb6ef28ac5f6d9f3d28020d00c5be50 (patch) | |
tree | 73d3b6e7e2ee0ce832943a1e080501b8a96c40d6 /crypto/des/set_key.c | |
parent | be2e2c32972e421ecc78bb79b502cb9d76d0c391 (diff) | |
download | openssl-3ba5d1cf2eb6ef28ac5f6d9f3d28020d00c5be50.tar.gz |
Make EVPs allocate context memory, thus making them extensible. Rationalise
DES's keyschedules.
I know these two should be separate, and I'll back out the DES changes if they
are deemed to be an error.
Note that there is a memory leak lurking in SSL somewhere in this version.
Diffstat (limited to 'crypto/des/set_key.c')
-rw-r--r-- | crypto/des/set_key.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/crypto/des/set_key.c b/crypto/des/set_key.c index 0dc79c9461..245b720a59 100644 --- a/crypto/des/set_key.c +++ b/crypto/des/set_key.c @@ -307,7 +307,7 @@ static const DES_LONG des_skb[8][64]={ 0x00002822L,0x04002822L,0x00042822L,0x04042822L, }}; -int des_set_key(const_des_cblock *key, des_key_schedule schedule) +int des_set_key(const_des_cblock *key, des_key_schedule *schedule) { if (des_check_key) { @@ -324,7 +324,7 @@ int des_set_key(const_des_cblock *key, des_key_schedule schedule) * return -1 if key parity error, * return -2 if illegal weak key. */ -int des_set_key_checked(const_des_cblock *key, des_key_schedule schedule) +int des_set_key_checked(const_des_cblock *key, des_key_schedule *schedule) { if (!des_check_key_parity(key)) return(-1); @@ -334,7 +334,7 @@ int des_set_key_checked(const_des_cblock *key, des_key_schedule schedule) return 0; } -void des_set_key_unchecked(const_des_cblock *key, des_key_schedule schedule) +void des_set_key_unchecked(const_des_cblock *key, des_key_schedule *schedule) { static int shifts2[16]={0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0}; register DES_LONG c,d,t,s,t2; @@ -342,7 +342,11 @@ void des_set_key_unchecked(const_des_cblock *key, des_key_schedule schedule) register DES_LONG *k; register int i; - k = &schedule->ks.deslong[0]; +#if OPENBSD_DEV_CRYPTO + memcpy(schedule->key,key,sizeof schedule->key); + schedule->session=NULL; +#endif + k = &schedule->ks->deslong[0]; in = &(*key)[0]; c2l(in,c); @@ -390,7 +394,7 @@ void des_set_key_unchecked(const_des_cblock *key, des_key_schedule schedule) } } -int des_key_sched(const_des_cblock *key, des_key_schedule schedule) +int des_key_sched(const_des_cblock *key, des_key_schedule *schedule) { return(des_set_key(key,schedule)); } |