X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=ssh.h;h=09ee167a1a11197c3dcf896c91b9804078feb5ba;hb=a59356aa741fe92d73a4574027fae11927e72fdd;hp=36924b83ee12d35d779b4b64ec2400c6b656eb9a;hpb=f2b0335c48ee9afe69420f9869cf205f018ace99;p=PuTTY.git diff --git a/ssh.h b/ssh.h index 36924b83..09ee167a 100644 --- a/ssh.h +++ b/ssh.h @@ -175,6 +175,13 @@ struct ssh_mac { char *text_name; }; +struct ssh_hash { + void *(*init)(void); /* also allocates context */ + void (*bytes)(void *, void *, int); + void (*final)(void *, unsigned char *); /* also frees context */ + int hlen; /* output length in bytes */ +}; + struct ssh_kex { /* * Plugging in another KEX algorithm requires structural chaos, @@ -186,6 +193,7 @@ struct ssh_kex { char *name, *groupname; const unsigned char *pdata, *gdata;/* NULL means use group exchange */ int plen, glen; + const struct ssh_hash *hash; }; struct ssh_signkey { @@ -236,14 +244,16 @@ extern const struct ssh2_ciphers ssh2_des; extern const struct ssh2_ciphers ssh2_aes; extern const struct ssh2_ciphers ssh2_blowfish; extern const struct ssh2_ciphers ssh2_arcfour; +extern const struct ssh_hash ssh_sha1; extern const struct ssh_kex ssh_diffiehellman_group1; extern const struct ssh_kex ssh_diffiehellman_group14; extern const struct ssh_kex ssh_diffiehellman_gex; extern const struct ssh_signkey ssh_dss; extern const struct ssh_signkey ssh_rsa; -extern const struct ssh_mac ssh_md5; -extern const struct ssh_mac ssh_sha1; -extern const struct ssh_mac ssh_sha1_buggy; +extern const struct ssh_mac ssh_hmac_md5; +extern const struct ssh_mac ssh_hmac_sha1; +extern const struct ssh_mac ssh_hmac_sha1_buggy; + /* * PuTTY version number formatted as an SSH version string.