Browse Subversion Repository
Diff of /branches/ssh_chacha20poly1305/ttssh2/ttxssh/ssh.h
Parent Directory
| Revision Log
| Patch
| 40 |
|
|
| 41 |
#include "buffer.h" |
#include "buffer.h" |
| 42 |
#include "config.h" |
#include "config.h" |
| 43 |
|
#include "cipher.h" |
| 44 |
|
#include "hostkey.h" |
| 45 |
|
#include "mac.h" |
| 46 |
|
#include "comp.h" |
| 47 |
#include <sys/types.h> |
#include <sys/types.h> |
| 48 |
#include <sys/stat.h> |
#include <sys/stat.h> |
| 49 |
|
|
| 86 |
} SSHMessage; |
} SSHMessage; |
| 87 |
|
|
| 88 |
typedef enum { |
typedef enum { |
|
// SSH1 |
|
|
SSH_CIPHER_NONE, SSH_CIPHER_IDEA, SSH_CIPHER_DES, SSH_CIPHER_3DES, |
|
|
SSH_CIPHER_TSS, SSH_CIPHER_RC4, SSH_CIPHER_BLOWFISH, |
|
|
// SSH2 |
|
|
SSH2_CIPHER_3DES_CBC, SSH2_CIPHER_AES128_CBC, |
|
|
SSH2_CIPHER_AES192_CBC, SSH2_CIPHER_AES256_CBC, |
|
|
SSH2_CIPHER_BLOWFISH_CBC, SSH2_CIPHER_AES128_CTR, |
|
|
SSH2_CIPHER_AES192_CTR, SSH2_CIPHER_AES256_CTR, |
|
|
SSH2_CIPHER_ARCFOUR, SSH2_CIPHER_ARCFOUR128, SSH2_CIPHER_ARCFOUR256, |
|
|
SSH2_CIPHER_CAST128_CBC, |
|
|
SSH2_CIPHER_3DES_CTR, SSH2_CIPHER_BLOWFISH_CTR, SSH2_CIPHER_CAST128_CTR, |
|
|
SSH2_CIPHER_CAMELLIA128_CBC, SSH2_CIPHER_CAMELLIA192_CBC, SSH2_CIPHER_CAMELLIA256_CBC, |
|
|
SSH2_CIPHER_CAMELLIA128_CTR, SSH2_CIPHER_CAMELLIA192_CTR, SSH2_CIPHER_CAMELLIA256_CTR, |
|
|
SSH2_CIPHER_AES128_GCM, SSH2_CIPHER_AES256_GCM, |
|
|
SSH_CIPHER_MAX = SSH2_CIPHER_AES256_GCM, |
|
|
} SSHCipherId; |
|
|
|
|
|
typedef enum { |
|
| 89 |
SSH_AUTH_NONE, SSH_AUTH_RHOSTS, SSH_AUTH_RSA, SSH_AUTH_PASSWORD, |
SSH_AUTH_NONE, SSH_AUTH_RHOSTS, SSH_AUTH_RSA, SSH_AUTH_PASSWORD, |
| 90 |
SSH_AUTH_RHOSTS_RSA, SSH_AUTH_TIS, SSH_AUTH_KERBEROS, |
SSH_AUTH_RHOSTS_RSA, SSH_AUTH_TIS, SSH_AUTH_KERBEROS, |
| 91 |
SSH_AUTH_PAGEANT = 16, |
SSH_AUTH_PAGEANT = 16, |
| 284 |
} SSH2TTYMode; |
} SSH2TTYMode; |
| 285 |
|
|
| 286 |
|
|
|
// クライアントからサーバへの提案事項 |
|
|
enum kex_init_proposals { |
|
|
PROPOSAL_KEX_ALGS, |
|
|
PROPOSAL_SERVER_HOST_KEY_ALGS, |
|
|
PROPOSAL_ENC_ALGS_CTOS, |
|
|
PROPOSAL_ENC_ALGS_STOC, |
|
|
PROPOSAL_MAC_ALGS_CTOS, |
|
|
PROPOSAL_MAC_ALGS_STOC, |
|
|
PROPOSAL_COMP_ALGS_CTOS, |
|
|
PROPOSAL_COMP_ALGS_STOC, |
|
|
PROPOSAL_LANG_CTOS, |
|
|
PROPOSAL_LANG_STOC, |
|
|
PROPOSAL_MAX |
|
|
}; |
|
|
|
|
|
#define KEX_DEFAULT_KEX "" |
|
|
#define KEX_DEFAULT_PK_ALG "" |
|
|
#define KEX_DEFAULT_ENCRYPT "" |
|
|
#define KEX_DEFAULT_MAC "" |
|
|
#define KEX_DEFAULT_COMP "" |
|
|
#define KEX_DEFAULT_LANG "" |
|
|
|
|
|
static char *myproposal[PROPOSAL_MAX] = { |
|
|
KEX_DEFAULT_KEX, |
|
|
KEX_DEFAULT_PK_ALG, |
|
|
KEX_DEFAULT_ENCRYPT, |
|
|
KEX_DEFAULT_ENCRYPT, |
|
|
KEX_DEFAULT_MAC, |
|
|
KEX_DEFAULT_MAC, |
|
|
KEX_DEFAULT_COMP, |
|
|
KEX_DEFAULT_COMP, |
|
|
KEX_DEFAULT_LANG, |
|
|
KEX_DEFAULT_LANG, |
|
|
}; |
|
|
|
|
|
|
|
|
typedef enum { |
|
|
KEY_NONE, |
|
|
KEY_RSA1, |
|
|
KEY_RSA, |
|
|
KEY_DSA, |
|
|
KEY_ECDSA256, |
|
|
KEY_ECDSA384, |
|
|
KEY_ECDSA521, |
|
|
KEY_ED25519, |
|
|
KEY_UNSPEC, |
|
|
KEY_MAX = KEY_UNSPEC, |
|
|
} ssh_keytype; |
|
| 287 |
#define isFixedLengthKey(type) ((type) >= KEY_DSA && (type) <= KEY_ED25519) |
#define isFixedLengthKey(type) ((type) >= KEY_DSA && (type) <= KEY_ED25519) |
| 288 |
|
|
|
typedef struct ssh2_host_key { |
|
|
ssh_keytype type; |
|
|
char *name; |
|
|
} ssh2_host_key_t; |
|
|
|
|
|
static ssh2_host_key_t ssh2_host_key[] = { |
|
|
{KEY_RSA1, "ssh-rsa1"}, // for SSH1 only |
|
|
{KEY_RSA, "ssh-rsa"}, // RFC4253 |
|
|
{KEY_DSA, "ssh-dss"}, // RFC4253 |
|
|
{KEY_ECDSA256, "ecdsa-sha2-nistp256"}, // RFC5656 |
|
|
{KEY_ECDSA384, "ecdsa-sha2-nistp384"}, // RFC5656 |
|
|
{KEY_ECDSA521, "ecdsa-sha2-nistp521"}, // RFC5656 |
|
|
{KEY_ED25519, "ssh-ed25519"}, // draft-bjh21-ssh-ed25519-02 |
|
|
{KEY_UNSPEC, "ssh-unknown"}, |
|
|
{KEY_NONE, NULL}, |
|
|
}; |
|
|
|
|
| 289 |
/* Minimum modulus size (n) for RSA keys. */ |
/* Minimum modulus size (n) for RSA keys. */ |
| 290 |
#define SSH_RSA_MINIMUM_MODULUS_SIZE 768 |
#define SSH_RSA_MINIMUM_MODULUS_SIZE 768 |
| 291 |
|
|
| 297 |
#define SSH_KEYGEN_MAXIMUM_ROUNDS INT_MAX |
#define SSH_KEYGEN_MAXIMUM_ROUNDS INT_MAX |
| 298 |
|
|
| 299 |
|
|
|
typedef struct ssh2_cipher { |
|
|
SSHCipherId id; |
|
|
char *name; |
|
|
int block_size; |
|
|
int key_len; |
|
|
int discard_len; |
|
|
int iv_len; |
|
|
int auth_len; |
|
|
const EVP_CIPHER *(*func)(void); |
|
|
} SSH2Cipher; |
|
|
|
|
|
static SSH2Cipher ssh2_ciphers[] = { |
|
|
{SSH2_CIPHER_3DES_CBC, "3des-cbc", 8, 24, 0, 0, 0, EVP_des_ede3_cbc}, // RFC4253 |
|
|
{SSH2_CIPHER_AES128_CBC, "aes128-cbc", 16, 16, 0, 0, 0, EVP_aes_128_cbc}, // RFC4253 |
|
|
{SSH2_CIPHER_AES192_CBC, "aes192-cbc", 16, 24, 0, 0, 0, EVP_aes_192_cbc}, // RFC4253 |
|
|
{SSH2_CIPHER_AES256_CBC, "aes256-cbc", 16, 32, 0, 0, 0, EVP_aes_256_cbc}, // RFC4253 |
|
|
{SSH2_CIPHER_BLOWFISH_CBC, "blowfish-cbc", 8, 16, 0, 0, 0, EVP_bf_cbc}, // RFC4253 |
|
|
{SSH2_CIPHER_AES128_CTR, "aes128-ctr", 16, 16, 0, 0, 0, evp_aes_128_ctr}, // RFC4344 |
|
|
{SSH2_CIPHER_AES192_CTR, "aes192-ctr", 16, 24, 0, 0, 0, evp_aes_128_ctr}, // RFC4344 |
|
|
{SSH2_CIPHER_AES256_CTR, "aes256-ctr", 16, 32, 0, 0, 0, evp_aes_128_ctr}, // RFC4344 |
|
|
{SSH2_CIPHER_ARCFOUR, "arcfour", 8, 16, 0, 0, 0, EVP_rc4}, // RFC4253 |
|
|
{SSH2_CIPHER_ARCFOUR128, "arcfour128", 8, 16, 1536, 0, 0, EVP_rc4}, // RFC4345 |
|
|
{SSH2_CIPHER_ARCFOUR256, "arcfour256", 8, 32, 1536, 0, 0, EVP_rc4}, // RFC4345 |
|
|
{SSH2_CIPHER_CAST128_CBC, "cast128-cbc", 8, 16, 0, 0, 0, EVP_cast5_cbc}, // RFC4253 |
|
|
{SSH2_CIPHER_3DES_CTR, "3des-ctr", 8, 24, 0, 0, 0, evp_des3_ctr}, // RFC4344 |
|
|
{SSH2_CIPHER_BLOWFISH_CTR, "blowfish-ctr", 8, 32, 0, 0, 0, evp_bf_ctr}, // RFC4344 |
|
|
{SSH2_CIPHER_CAST128_CTR, "cast128-ctr", 8, 16, 0, 0, 0, evp_cast5_ctr}, // RFC4344 |
|
|
{SSH2_CIPHER_CAMELLIA128_CBC, "camellia128-cbc", 16, 16, 0, 0, 0, EVP_camellia_128_cbc}, // draft-kanno-secsh-camellia-02 |
|
|
{SSH2_CIPHER_CAMELLIA192_CBC, "camellia192-cbc", 16, 24, 0, 0, 0, EVP_camellia_192_cbc}, // draft-kanno-secsh-camellia-02 |
|
|
{SSH2_CIPHER_CAMELLIA256_CBC, "camellia256-cbc", 16, 32, 0, 0, 0, EVP_camellia_256_cbc}, // draft-kanno-secsh-camellia-02 |
|
|
{SSH2_CIPHER_CAMELLIA128_CTR, "camellia128-ctr", 16, 16, 0, 0, 0, evp_camellia_128_ctr}, // draft-kanno-secsh-camellia-02 |
|
|
{SSH2_CIPHER_CAMELLIA192_CTR, "camellia192-ctr", 16, 24, 0, 0, 0, evp_camellia_128_ctr}, // draft-kanno-secsh-camellia-02 |
|
|
{SSH2_CIPHER_CAMELLIA256_CTR, "camellia256-ctr", 16, 32, 0, 0, 0, evp_camellia_128_ctr}, // draft-kanno-secsh-camellia-02 |
|
|
#ifdef WITH_CAMELLIA_PRIVATE |
|
|
{SSH2_CIPHER_CAMELLIA128_CBC, "camellia128-cbc@openssh.org", 16, 16, 0, 0, 0, EVP_camellia_128_cbc}, |
|
|
{SSH2_CIPHER_CAMELLIA192_CBC, "camellia192-cbc@openssh.org", 16, 24, 0, 0, 0, EVP_camellia_192_cbc}, |
|
|
{SSH2_CIPHER_CAMELLIA256_CBC, "camellia256-cbc@openssh.org", 16, 32, 0, 0, 0, EVP_camellia_256_cbc}, |
|
|
{SSH2_CIPHER_CAMELLIA128_CTR, "camellia128-ctr@openssh.org", 16, 16, 0, 0, 0, evp_camellia_128_ctr}, |
|
|
{SSH2_CIPHER_CAMELLIA192_CTR, "camellia192-ctr@openssh.org", 16, 24, 0, 0, 0, evp_camellia_128_ctr}, |
|
|
{SSH2_CIPHER_CAMELLIA256_CTR, "camellia256-ctr@openssh.org", 16, 32, 0, 0, 0, evp_camellia_128_ctr}, |
|
|
#endif // WITH_CAMELLIA_PRIVATE |
|
|
{SSH2_CIPHER_AES128_GCM, "aes128-gcm@openssh.com", 16, 16, 0, 12, 16, EVP_aes_128_gcm}, // not RFC5647, PROTOCOL of OpenSSH |
|
|
{SSH2_CIPHER_AES256_GCM, "aes256-gcm@openssh.com", 16, 32, 0, 12, 16, EVP_aes_256_gcm}, // not RFC5647, PROTOCOL of OpenSSH |
|
|
{SSH_CIPHER_NONE, NULL, 0, 0, 0, 0, 0, NULL}, |
|
|
}; |
|
|
|
|
|
|
|
|
typedef enum { |
|
|
KEX_DH_NONE, /* disabled line */ |
|
|
KEX_DH_GRP1_SHA1, |
|
|
KEX_DH_GRP14_SHA1, |
|
|
KEX_DH_GEX_SHA1, |
|
|
KEX_DH_GEX_SHA256, |
|
|
KEX_ECDH_SHA2_256, |
|
|
KEX_ECDH_SHA2_384, |
|
|
KEX_ECDH_SHA2_521, |
|
|
KEX_DH_GRP14_SHA256, |
|
|
KEX_DH_GRP16_SHA512, |
|
|
KEX_DH_GRP18_SHA512, |
|
|
KEX_DH_UNKNOWN, |
|
|
KEX_DH_MAX = KEX_DH_UNKNOWN, |
|
|
} kex_algorithm; |
|
|
|
|
|
typedef struct ssh2_kex_algorithm { |
|
|
kex_algorithm kextype; |
|
|
char *name; |
|
|
const EVP_MD *(*evp_md)(void); |
|
|
} ssh2_kex_algorithm_t; |
|
|
|
|
|
static ssh2_kex_algorithm_t ssh2_kex_algorithms[] = { |
|
|
{KEX_DH_GRP1_SHA1, "diffie-hellman-group1-sha1", EVP_sha1}, // RFC4253 |
|
|
{KEX_DH_GRP14_SHA1, "diffie-hellman-group14-sha1", EVP_sha1}, // RFC4253 |
|
|
{KEX_DH_GEX_SHA1, "diffie-hellman-group-exchange-sha1", EVP_sha1}, // RFC4419 |
|
|
{KEX_DH_GEX_SHA256, "diffie-hellman-group-exchange-sha256", EVP_sha256}, // RFC4419 |
|
|
{KEX_ECDH_SHA2_256, "ecdh-sha2-nistp256", EVP_sha256}, // RFC5656 |
|
|
{KEX_ECDH_SHA2_384, "ecdh-sha2-nistp384", EVP_sha384}, // RFC5656 |
|
|
{KEX_ECDH_SHA2_521, "ecdh-sha2-nistp521", EVP_sha512}, // RFC5656 |
|
|
{KEX_DH_GRP14_SHA256, "diffie-hellman-group14-sha256", EVP_sha256}, // RFC8268 |
|
|
{KEX_DH_GRP16_SHA512, "diffie-hellman-group16-sha512", EVP_sha512}, // RFC8268 |
|
|
{KEX_DH_GRP18_SHA512, "diffie-hellman-group18-sha512", EVP_sha512}, // RFC8268 |
|
|
{KEX_DH_NONE , NULL, NULL}, |
|
|
}; |
|
|
|
|
|
|
|
|
typedef enum { |
|
|
HMAC_NONE, /* disabled line */ |
|
|
HMAC_SHA1, |
|
|
HMAC_MD5, |
|
|
HMAC_SHA1_96, |
|
|
HMAC_MD5_96, |
|
|
HMAC_RIPEMD160, |
|
|
HMAC_SHA2_256, |
|
|
HMAC_SHA2_256_96, |
|
|
HMAC_SHA2_512, |
|
|
HMAC_SHA2_512_96, |
|
|
HMAC_SHA1_EtM, |
|
|
HMAC_MD5_EtM, |
|
|
HMAC_SHA1_96_EtM, |
|
|
HMAC_MD5_96_EtM, |
|
|
HMAC_RIPEMD160_EtM, |
|
|
HMAC_SHA2_256_EtM, |
|
|
HMAC_SHA2_512_EtM, |
|
|
HMAC_IMPLICIT, |
|
|
HMAC_UNKNOWN, |
|
|
HMAC_MAX = HMAC_UNKNOWN, |
|
|
} SSH2MacId; |
|
|
|
|
|
typedef struct ssh2_mac { |
|
|
SSH2MacId id; |
|
|
char *name; |
|
|
const EVP_MD *(*evp_md)(void); |
|
|
int truncatebits; |
|
|
int etm; |
|
|
} SSH2Mac; |
|
|
|
|
|
static SSH2Mac ssh2_macs[] = { |
|
|
{HMAC_SHA1, "hmac-sha1", EVP_sha1, 0, 0}, // RFC4253 |
|
|
{HMAC_MD5, "hmac-md5", EVP_md5, 0, 0}, // RFC4253 |
|
|
{HMAC_SHA1_96, "hmac-sha1-96", EVP_sha1, 96, 0}, // RFC4253 |
|
|
{HMAC_MD5_96, "hmac-md5-96", EVP_md5, 96, 0}, // RFC4253 |
|
|
{HMAC_RIPEMD160, "hmac-ripemd160@openssh.com", EVP_ripemd160, 0, 0}, |
|
|
{HMAC_SHA2_256, "hmac-sha2-256", EVP_sha256, 0, 0}, // RFC6668 |
|
|
// {HMAC_SHA2_256_96, "hmac-sha2-256-96", EVP_sha256, 96, 0}, // draft-dbider-sha2-mac-for-ssh-05, deleted at 06 |
|
|
{HMAC_SHA2_512, "hmac-sha2-512", EVP_sha512, 0, 0}, // RFC6668 |
|
|
// {HMAC_SHA2_512_96, "hmac-sha2-512-96", EVP_sha512, 96, 0}, // draft-dbider-sha2-mac-for-ssh-05, deleted at 06 |
|
|
{HMAC_SHA1_EtM, "hmac-sha1-etm@openssh.com", EVP_sha1, 0, 1}, |
|
|
{HMAC_MD5_EtM, "hmac-md5-etm@openssh.com", EVP_md5, 0, 1}, |
|
|
{HMAC_SHA1_96_EtM, "hmac-sha1-96-etm@openssh.com", EVP_sha1, 96, 1}, |
|
|
{HMAC_MD5_96_EtM, "hmac-md5-96-etm@openssh.com", EVP_md5, 96, 1}, |
|
|
{HMAC_RIPEMD160_EtM,"hmac-ripemd160-etm@openssh.com",EVP_ripemd160, 0, 1}, |
|
|
{HMAC_SHA2_256_EtM, "hmac-sha2-256-etm@openssh.com", EVP_sha256, 0, 1}, |
|
|
{HMAC_SHA2_512_EtM, "hmac-sha2-512-etm@openssh.com", EVP_sha512, 0, 1}, |
|
|
{HMAC_IMPLICIT, "<implicit>", EVP_md_null, 0, 0}, // for AEAD cipher |
|
|
{HMAC_NONE, NULL, NULL, 0, 0}, |
|
|
}; |
|
|
|
|
|
|
|
|
typedef enum { |
|
|
COMP_NONE, /* disabled line */ |
|
|
COMP_NOCOMP, |
|
|
COMP_ZLIB, |
|
|
COMP_DELAYED, |
|
|
COMP_UNKNOWN, |
|
|
COMP_MAX = COMP_UNKNOWN, |
|
|
} compression_type; |
|
|
|
|
|
typedef struct ssh2_comp { |
|
|
compression_type type; |
|
|
char *name; |
|
|
} ssh2_comp_t; |
|
|
|
|
|
static ssh2_comp_t ssh2_comps[] = { |
|
|
{COMP_NOCOMP, "none"}, // RFC4253 |
|
|
{COMP_ZLIB, "zlib"}, // RFC4253 |
|
|
{COMP_DELAYED, "zlib@openssh.com"}, |
|
|
{COMP_NONE, NULL}, |
|
|
}; |
|
|
|
|
|
|
|
| 300 |
struct Enc { |
struct Enc { |
| 301 |
u_char *key; |
u_char *key; |
| 302 |
u_char *iv; |
u_char *iv; |
| 357 |
int bcrypt_kdf; |
int bcrypt_kdf; |
| 358 |
} Key; |
} Key; |
| 359 |
|
|
|
// fingerprintの種別 |
|
|
enum fp_rep { |
|
|
SSH_FP_DEFAULT = 0, |
|
|
SSH_FP_HEX, |
|
|
SSH_FP_BASE64, |
|
|
SSH_FP_BUBBLEBABBLE, |
|
|
SSH_FP_RANDOMART |
|
|
}; |
|
|
/* |
|
|
enum fp_type { |
|
|
SSH_FP_MD5, |
|
|
SSH_FP_SHA1, |
|
|
SSH_FP_SHA256 |
|
|
}; |
|
|
*/ |
|
|
typedef enum { |
|
|
SSH_DIGEST_MD5, |
|
|
SSH_DIGEST_RIPEMD160, |
|
|
SSH_DIGEST_SHA1, |
|
|
SSH_DIGEST_SHA256, |
|
|
SSH_DIGEST_SHA384, |
|
|
SSH_DIGEST_SHA512, |
|
|
SSH_DIGEST_MAX, |
|
|
} digest_algorithm; |
|
|
|
|
|
typedef struct ssh_digest { |
|
|
digest_algorithm id; |
|
|
char *name; |
|
|
} ssh_digest_t; |
|
|
|
|
|
/* NB. Indexed directly by algorithm number */ |
|
|
static ssh_digest_t ssh_digests[] = { |
|
|
{ SSH_DIGEST_MD5, "MD5" }, |
|
|
{ SSH_DIGEST_RIPEMD160, "RIPEMD160" }, |
|
|
{ SSH_DIGEST_SHA1, "SHA1" }, |
|
|
{ SSH_DIGEST_SHA256, "SHA256" }, |
|
|
{ SSH_DIGEST_SHA384, "SHA384" }, |
|
|
{ SSH_DIGEST_SHA512, "SHA512" }, |
|
|
{ SSH_DIGEST_MAX, NULL }, |
|
|
}; |
|
| 360 |
|
|
| 361 |
enum scp_dir { |
enum scp_dir { |
| 362 |
TOREMOTE, FROMREMOTE, |
TOREMOTE, FROMREMOTE, |
| 499 |
BOOL do_SSH2_userauth(PTInstVar pvar); |
BOOL do_SSH2_userauth(PTInstVar pvar); |
| 500 |
BOOL do_SSH2_authrequest(PTInstVar pvar); |
BOOL do_SSH2_authrequest(PTInstVar pvar); |
| 501 |
void debug_print(int no, char *msg, int len); |
void debug_print(int no, char *msg, int len); |
|
int get_cipher_block_size(SSH2Cipher *cipher); |
|
|
int get_cipher_key_len(SSH2Cipher *cipher); |
|
|
int get_cipher_iv_len(SSH2Cipher *cipher); |
|
|
int get_cipher_auth_len(SSH2Cipher *cipher); |
|
|
SSH2Cipher *get_cipher_by_name(char *name); |
|
|
char* get_kex_algorithm_name(kex_algorithm kextype); |
|
|
const EVP_CIPHER* get_cipher_EVP_CIPHER(SSH2Cipher *cipher); |
|
|
const EVP_MD* get_kex_algorithm_EVP_MD(kex_algorithm kextype); |
|
|
SSH2Mac *get_ssh2_mac(SSH2MacId id); |
|
|
char* get_ssh2_mac_name(SSH2Mac *mac); |
|
|
char* get_ssh2_mac_name_by_id(SSH2MacId id); |
|
|
const EVP_MD* get_ssh2_mac_EVP_MD(SSH2Mac *mac); |
|
|
int get_ssh2_mac_truncatebits(SSH2Mac *mac); |
|
|
char* get_ssh2_comp_name(compression_type type); |
|
|
char* get_ssh_keytype_name(ssh_keytype type); |
|
|
char* get_digest_algorithm_name(digest_algorithm id); |
|
|
int get_cipher_discard_len(SSH2Cipher *cipher); |
|
| 502 |
void ssh_heartbeat_lock_initialize(void); |
void ssh_heartbeat_lock_initialize(void); |
| 503 |
void ssh_heartbeat_lock_finalize(void); |
void ssh_heartbeat_lock_finalize(void); |
| 504 |
void ssh_heartbeat_lock(void); |
void ssh_heartbeat_lock(void); |
| 509 |
BOOL handle_SSH2_userauth_inforeq(PTInstVar pvar); |
BOOL handle_SSH2_userauth_inforeq(PTInstVar pvar); |
| 510 |
BOOL handle_SSH2_userauth_pkok(PTInstVar pvar); |
BOOL handle_SSH2_userauth_pkok(PTInstVar pvar); |
| 511 |
BOOL handle_SSH2_userauth_passwd_changereq(PTInstVar pvar); |
BOOL handle_SSH2_userauth_passwd_changereq(PTInstVar pvar); |
|
void SSH2_update_compression_myproposal(PTInstVar pvar); |
|
|
void SSH2_update_cipher_myproposal(PTInstVar pvar); |
|
|
void SSH2_update_kex_myproposal(PTInstVar pvar); |
|
|
void SSH2_update_host_key_myproposal(PTInstVar pvar); |
|
|
void SSH2_update_hmac_myproposal(PTInstVar pvar); |
|
| 512 |
int SSH_notify_break_signal(PTInstVar pvar); |
int SSH_notify_break_signal(PTInstVar pvar); |
| 513 |
|
|
| 514 |
/// |
/// |
| 596 |
void finish_send_packet_special(PTInstVar pvar, int skip_compress); |
void finish_send_packet_special(PTInstVar pvar, int skip_compress); |
| 597 |
void SSH2_send_channel_data(PTInstVar pvar, Channel_t *c, unsigned char *buf, unsigned int buflen, int retry); |
void SSH2_send_channel_data(PTInstVar pvar, Channel_t *c, unsigned char *buf, unsigned int buflen, int retry); |
| 598 |
Channel_t* ssh2_local_channel_lookup(int local_num); |
Channel_t* ssh2_local_channel_lookup(int local_num); |
| 599 |
|
void normalize_generic_order(char *buf, char default_strings[], int default_strings_len); |
| 600 |
|
void choose_SSH2_proposal(char* server_proposal, char* my_proposal,char* dest, int dest_len); |
| 601 |
|
|
| 602 |
#define finish_send_packet(pvar) finish_send_packet_special((pvar), 0) |
#define finish_send_packet(pvar) finish_send_packet_special((pvar), 0) |
| 603 |
#define get_payload_uint32(pvar, offset) get_uint32_MSBfirst((pvar)->ssh_state.payload + (offset)) |
#define get_payload_uint32(pvar, offset) get_uint32_MSBfirst((pvar)->ssh_state.payload + (offset)) |
| 646 |
BOOL handle_SSH2_dh_gex_reply_after_known_hosts(PTInstVar pvar); |
BOOL handle_SSH2_dh_gex_reply_after_known_hosts(PTInstVar pvar); |
| 647 |
BOOL handle_SSH2_ecdh_kex_reply_after_known_hosts(PTInstVar pvar); |
BOOL handle_SSH2_ecdh_kex_reply_after_known_hosts(PTInstVar pvar); |
| 648 |
|
|
| 649 |
#endif |
#endif /* __SSH_H */ |
|
|
Legend:
| Removed from v.9208 |
|
| changed lines |
| |
Added in v.9210 |
|
|
| |