Change type of various DES function arguments from des_cblock
(meaning pointer to char) to des_cblock * (meaning pointer to array with 8 char elements), which allows the compiler to do more typechecking. (The changed argument types were of type des_cblock * back in SSLeay, and a lot of ugly casts were used then to turn them into pointers to elements; but it can be done without those casts.) Introduce new type const_des_cblock -- before, the pointers rather than the elements pointed to were declared const, and for some reason gcc did not complain about this (but some other compilers did).
This commit is contained in:
@@ -62,13 +62,13 @@
|
||||
static int seed=0;
|
||||
static des_cblock init;
|
||||
|
||||
void des_random_seed(des_cblock key)
|
||||
void des_random_seed(des_cblock *key)
|
||||
{
|
||||
memcpy(init,key,sizeof(des_cblock));
|
||||
memcpy(&init,key,sizeof(des_cblock));
|
||||
seed=1;
|
||||
}
|
||||
|
||||
void des_random_key(unsigned char *ret)
|
||||
void des_random_key(des_cblock *ret)
|
||||
{
|
||||
des_key_schedule ks;
|
||||
static DES_LONG c=0;
|
||||
@@ -99,13 +99,13 @@ void des_random_key(unsigned char *ret)
|
||||
t=(DES_LONG)((pid)|((c++)<<16));
|
||||
l2c(t,p);
|
||||
|
||||
des_set_odd_parity(data);
|
||||
des_set_key(data,ks);
|
||||
des_cbc_cksum(key,key,sizeof(key),ks,data);
|
||||
des_set_odd_parity(&data);
|
||||
des_set_key(&data,ks);
|
||||
des_cbc_cksum(key,&key,sizeof(key),ks,&data);
|
||||
|
||||
des_set_odd_parity(key);
|
||||
des_set_key(key,ks);
|
||||
des_cbc_cksum(key,data,sizeof(key),ks,key);
|
||||
des_set_odd_parity(&key);
|
||||
des_set_key(&key,ks);
|
||||
des_cbc_cksum(key,&data,sizeof(key),ks,&key);
|
||||
|
||||
memcpy(ret,data,sizeof(key));
|
||||
memset(key,0,sizeof(key));
|
||||
|
||||
Reference in New Issue
Block a user