X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/6e522441172d5b1c2a2fa4d0f6bbe905ce6b647a..783415f807e7a983887b84b3515dadcd3558d60d:/ssh.h diff --git a/ssh.h b/ssh.h index 5fe33c3b..725569cf 100644 --- a/ssh.h +++ b/ssh.h @@ -1,5 +1,7 @@ #include +#include "puttymem.h" + /* * Useful thing. */ @@ -126,17 +128,27 @@ struct ssh_kex { char *name; }; -struct ssh_hostkey { - void (*setkey)(char *data, int len); - char *(*fmtkey)(void); - char *(*fingerprint)(void); - int (*verifysig)(char *sig, int siglen, char *data, int datalen); +struct ssh_signkey { + void *(*newkey)(char *data, int len); + void (*freekey)(void *key); + char *(*fmtkey)(void *key); + char *(*fingerprint)(void *key); + int (*verifysig)(void *key, char *sig, int siglen, + char *data, int datalen); + int (*sign)(void *key, char *sig, int siglen, + char *data, int datalen); char *name; char *keytype; /* for host key cache */ }; struct ssh_compress { char *name; + void (*compress_init)(void); + int (*compress)(unsigned char *block, int len, + unsigned char **outblock, int *outlen); + void (*decompress_init)(void); + int (*decompress)(unsigned char *block, int len, + unsigned char **outblock, int *outlen); }; #ifndef MSCRYPTOAPI @@ -153,8 +165,8 @@ Bignum newbn(int length); Bignum copybn(Bignum b); Bignum bignum_from_short(unsigned short n); void freebn(Bignum b); -void modpow(Bignum base, Bignum exp, Bignum mod, Bignum result); -void modmul(Bignum a, Bignum b, Bignum mod, Bignum result); +Bignum modpow(Bignum base, Bignum exp, Bignum mod); +Bignum modmul(Bignum a, Bignum b, Bignum mod); void decbn(Bignum n); extern Bignum Zero, One; int ssh1_read_bignum(unsigned char *data, Bignum *result); @@ -197,3 +209,13 @@ int rsa_generate(struct RSAKey *key, struct RSAAux *aux, int bits, progfn_t pfn, void *pfnparam); Bignum primegen(int bits, int modulus, int residue, int phase, progfn_t pfn, void *pfnparam); + +/* + * zlib compression. + */ +void zlib_compress_init(void); +void zlib_decompress_init(void); +int zlib_compress_block(unsigned char *block, int len, + unsigned char **outblock, int *outlen); +int zlib_decompress_block(unsigned char *block, int len, + unsigned char **outblock, int *outlen);