X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=ssh.h;h=7857f15294ed10e364769682c6d50d3bec503c7f;hb=17af65c78c2e754647f37cf0599b6bced213d7c6;hp=c05c78c8f013ab436b01254f1dd3722aa37ba97f;hpb=6608016fc28d97e9fd5f53cfc671f9e7ccafd8ce;p=PuTTY.git diff --git a/ssh.h b/ssh.h index c05c78c8..7857f152 100644 --- a/ssh.h +++ b/ssh.h @@ -64,12 +64,18 @@ int rsastr_len(struct RSAKey *key); void rsastr_fmt(char *str, struct RSAKey *key); void rsa_fingerprint(char *str, int len, struct RSAKey *key); int rsa_verify(struct RSAKey *key); +unsigned char *rsa_public_blob(struct RSAKey *key, int *len); +int rsa_public_blob_len(void *data); void freersakey(struct RSAKey *key); typedef unsigned int word32; typedef unsigned int uint32; unsigned long crc32(const void *s, size_t len); +unsigned long crc32_update(unsigned long crc_input, const void *s, size_t len); + +/* SSH CRC compensation attack detector */ +int detect_attack(unsigned char *buf, uint32 len, unsigned char *IV); typedef struct { uint32 h[4]; @@ -274,6 +280,7 @@ Bignum dh_find_K(Bignum f); int loadrsakey(char *filename, struct RSAKey *key, char *passphrase); int rsakey_encrypted(char *filename, char **comment); +int rsakey_pubblob(char *filename, void **blob, int *bloblen); int saversakey(char *filename, struct RSAKey *key, char *passphrase);