summaryrefslogtreecommitdiffstats
path: root/crypto/des/set_key.c
diff options
context:
space:
mode:
authorBen Laurie <ben@openssl.org>2001-07-30 17:46:22 +0000
committerBen Laurie <ben@openssl.org>2001-07-30 17:46:22 +0000
commit3ba5d1cf2eb6ef28ac5f6d9f3d28020d00c5be50 (patch)
tree73d3b6e7e2ee0ce832943a1e080501b8a96c40d6 /crypto/des/set_key.c
parentbe2e2c32972e421ecc78bb79b502cb9d76d0c391 (diff)
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.c14
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));
}