40 #include <sys/types.h> 41 #include <openssl/evp.h> 42 #include "cipher-chachapoly.h" 43 #include "cipher-aesctr.h" 49 #define SSH_CIPHER_SSH2 -3 50 #define SSH_CIPHER_INVALID -2 51 #define SSH_CIPHER_NOT_SET -1 52 #define SSH_CIPHER_NONE 0 53 #define SSH_CIPHER_IDEA 1 54 #define SSH_CIPHER_DES 2 55 #define SSH_CIPHER_3DES 3 56 #define SSH_CIPHER_BROKEN_TSS 4 57 #define SSH_CIPHER_BROKEN_RC4 5 58 #define SSH_CIPHER_BLOWFISH 6 59 #define SSH_CIPHER_RESERVED 7 60 #define SSH_CIPHER_MAX 31 62 #define CIPHER_ENCRYPT 1 63 #define CIPHER_DECRYPT 0 68 void ssh_aes_ctr_thread_destroy(EVP_CIPHER_CTX *ctx);
69 void ssh_aes_ctr_thread_reconstruction(EVP_CIPHER_CTX *ctx);
71 u_int cipher_mask_ssh1(
int);
72 struct sshcipher *cipher_by_name(
const char *);
73 const struct sshcipher *cipher_by_number(
int);
74 int cipher_number(
const char *);
75 char *cipher_name(
int);
76 const char *cipher_warning_message(
const struct sshcipher_ctx *);
77 int ciphers_valid(
const char *);
78 char *cipher_alg_list(
char,
int);
79 int cipher_init(
struct sshcipher_ctx **,
const struct sshcipher *,
80 const u_char *, u_int,
const u_char *, u_int,
int);
81 int cipher_crypt(
struct sshcipher_ctx *, u_int, u_char *,
const u_char *,
83 int cipher_get_length(
struct sshcipher_ctx *, u_int *, u_int,
84 const u_char *, u_int);
85 void cipher_free(
struct sshcipher_ctx *);
86 int cipher_set_key_string(
struct sshcipher_ctx **,
87 const struct sshcipher *,
const char *,
int);
88 u_int cipher_blocksize(
const struct sshcipher *);
89 u_int cipher_keylen(
const struct sshcipher *);
90 u_int cipher_seclen(
const struct sshcipher *);
91 u_int cipher_authlen(
const struct sshcipher *);
92 u_int cipher_ivlen(
const struct sshcipher *);
93 u_int cipher_is_cbc(
const struct sshcipher *);
94 void cipher_reset_multithreaded(
void);
96 const char *cipher_ctx_name(
const struct sshcipher_ctx *);
97 u_int cipher_ctx_is_plaintext(
struct sshcipher_ctx *);
98 u_int cipher_ctx_get_number(
struct sshcipher_ctx *);
100 u_int cipher_get_number(
const struct sshcipher *);
101 int cipher_get_keyiv(
struct sshcipher_ctx *, u_char *, u_int);
102 int cipher_set_keyiv(
struct sshcipher_ctx *,
const u_char *);
103 int cipher_get_keyiv_len(
const struct sshcipher_ctx *);
104 int cipher_get_keycontext(
const struct sshcipher_ctx *, u_char *);
105 void cipher_set_keycontext(
struct sshcipher_ctx *,
const u_char *);