X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=sshdes.c;h=83d4d26a198310f52fc6418c7e3cb36636efbea7;hb=5176e1e9bbdc6620a115da0f92ca2282a6714721;hp=3be5274940003a22e967076107f598729e663f20;hpb=1e312c26581b151869e94d84b33691f0ce378841;p=PuTTY.git diff --git a/sshdes.c b/sshdes.c index 3be52749..83d4d26a 100644 --- a/sshdes.c +++ b/sshdes.c @@ -657,6 +657,7 @@ static void des3_sesskey(unsigned char *key) { memset(div1, 0, sizeof(div1)); memset(div2, 0, sizeof(div2)); memset(div3, 0, sizeof(div3)); + logevent("Initialised triple-DES encryption"); } static void des3_encrypt_blk(unsigned char *blk, int len) { @@ -673,6 +674,28 @@ struct ssh_cipher ssh_3des = { des3_decrypt_blk }; +static void des_sesskey(unsigned char *key) { + des_set_key(key, &ekey1); + memset(eiv1, 0, sizeof(eiv1)); + des_set_key(key, &dkey1); + memset(div1, 0, sizeof(div1)); + logevent("Initialised single-DES encryption"); +} + +static void des_encrypt_blk(unsigned char *blk, int len) { + des_cbc_encrypt(&ekey1, eiv1, blk, blk, len); +} + +static void des_decrypt_blk(unsigned char *blk, int len) { + des_cbc_decrypt(&dkey1, div1, blk, blk, len); +} + +struct ssh_cipher ssh_des = { + des_sesskey, + des_encrypt_blk, + des_decrypt_blk +}; + #ifdef DES_TEST void des_encrypt_buf(DESContext *ks, unsigned char *out,