X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/5c72ca6161da0e7976245222c412d62ebae2e386..9a3a93a5c6a879994d61da8a146142a6555fd5d0:/ssh.h diff --git a/ssh.h b/ssh.h index 0d9613b0..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]; @@ -200,6 +206,7 @@ extern const struct ssh_cipher ssh_3des; extern const struct ssh_cipher ssh_des; extern const struct ssh_cipher ssh_blowfish_ssh1; extern const struct ssh2_ciphers ssh2_3des; +extern const struct ssh2_ciphers ssh2_des; extern const struct ssh2_ciphers ssh2_aes; extern const struct ssh2_ciphers ssh2_blowfish; extern const struct ssh_kex ssh_diffiehellman; @@ -273,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); @@ -301,11 +309,12 @@ void aes256_decrypt_pubkey(unsigned char *key, unsigned char *blk, /* * For progress updates in the key generation utility. */ -#define PROGFN_LIN_PHASE 1 -#define PROGFN_EXP_PHASE 2 -#define PROGFN_PHASE_EXTENT 3 -#define PROGFN_READY 4 -#define PROGFN_PROGRESS 5 +#define PROGFN_INITIALISE 1 +#define PROGFN_LIN_PHASE 2 +#define PROGFN_EXP_PHASE 3 +#define PROGFN_PHASE_EXTENT 4 +#define PROGFN_READY 5 +#define PROGFN_PROGRESS 6 typedef void (*progfn_t) (void *param, int action, int phase, int progress); int rsa_generate(struct RSAKey *key, int bits, progfn_t pfn, @@ -353,3 +362,9 @@ int zlib_decompress_block(unsigned char *block, int len, #define SSH2_AGENTC_ADD_IDENTITY 17 #define SSH2_AGENTC_REMOVE_IDENTITY 18 #define SSH2_AGENTC_REMOVE_ALL_IDENTITIES 19 + +/* + * Need this to warn about support for the original SSH2 keyfile + * format. + */ +void old_keyfile_warning(void);