X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=ssh.h;h=0cbdd47b7d3f8971f63945e6e08357058687636f;hb=3b20d71a7ee9b8efa00bba86ea16dc52be4dd3ff;hp=3981066c5fbb8c526a856a529fe3ffd1f3aaf288;hpb=cf356a9a5f4b4ecc0aca907fdfc76f3d193485b2;p=PuTTY.git diff --git a/ssh.h b/ssh.h index 3981066c..0cbdd47b 100644 --- a/ssh.h +++ b/ssh.h @@ -72,6 +72,10 @@ 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]; @@ -293,10 +297,27 @@ char *ssh2_userkey_loadpub(char *filename, char **algorithm, int ssh2_save_userkey(char *filename, struct ssh2_userkey *key, char *passphrase); -int keyfile_version(char *filename); +enum { + SSH_KEYTYPE_UNOPENABLE, + SSH_KEYTYPE_UNKNOWN, + SSH_KEYTYPE_SSH1, SSH_KEYTYPE_SSH2, + SSH_KEYTYPE_OPENSSH, SSH_KEYTYPE_SSHCOM +}; +int key_type(char *filename); +char *key_type_to_str(int type); + +int import_possible(int type); +int import_target_type(int type); +int import_encrypted(char *filename, int type, char **comment); +int import_ssh1(char *filename, int type, struct RSAKey *key,char *passphrase); +struct ssh2_userkey *import_ssh2(char *filename, int type, char *passphrase); void des3_decrypt_pubkey(unsigned char *key, unsigned char *blk, int len); void des3_encrypt_pubkey(unsigned char *key, unsigned char *blk, int len); +void des3_decrypt_pubkey_ossh(unsigned char *key, unsigned char *iv, + unsigned char *blk, int len); +void des3_encrypt_pubkey_ossh(unsigned char *key, unsigned char *iv, + unsigned char *blk, int len); void aes256_encrypt_pubkey(unsigned char *key, unsigned char *blk, int len); void aes256_decrypt_pubkey(unsigned char *key, unsigned char *blk,