X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/033b4cef1e52d65786b00df47f57361b96ca4321..bace54316e12bf47756c5c53cd97baf533d95db5:/sshdes.c diff --git a/sshdes.c b/sshdes.c index 1c82193c..1be340c4 100644 --- a/sshdes.c +++ b/sshdes.c @@ -1,7 +1,4 @@ #include -#include /* FIXME */ -#include /* FIXME */ -#include "putty.h" /* FIXME */ #include "ssh.h" @@ -769,6 +766,30 @@ static void des3_ssh2_decrypt_blk(unsigned char *blk, int len) { des_cbc3_decrypt(blk, blk, len, sckeys); } +void des3_decrypt_pubkey(unsigned char *key, + unsigned char *blk, int len) { + DESContext ourkeys[3]; + des_key_setup(GET_32BIT_MSB_FIRST(key), + GET_32BIT_MSB_FIRST(key+4), &ourkeys[0]); + des_key_setup(GET_32BIT_MSB_FIRST(key+8), + GET_32BIT_MSB_FIRST(key+12), &ourkeys[1]); + des_key_setup(GET_32BIT_MSB_FIRST(key), + GET_32BIT_MSB_FIRST(key+4), &ourkeys[2]); + des_3cbc_decrypt(blk, blk, len, ourkeys); +} + +void des3_encrypt_pubkey(unsigned char *key, + unsigned char *blk, int len) { + DESContext ourkeys[3]; + des_key_setup(GET_32BIT_MSB_FIRST(key), + GET_32BIT_MSB_FIRST(key+4), &ourkeys[0]); + des_key_setup(GET_32BIT_MSB_FIRST(key+8), + GET_32BIT_MSB_FIRST(key+12), &ourkeys[1]); + des_key_setup(GET_32BIT_MSB_FIRST(key), + GET_32BIT_MSB_FIRST(key+4), &ourkeys[2]); + des_3cbc_encrypt(blk, blk, len, ourkeys); +} + struct ssh_cipher ssh_3des_ssh2 = { NULL, des3_csiv, des3_cskey,