version 1.10, 2006/08/03 03:34:42 |
version 1.11, 2010/10/01 23:05:32 |
|
|
#include "log.h" |
#include "log.h" |
|
|
const EVP_CIPHER *evp_aes_128_ctr(void); |
const EVP_CIPHER *evp_aes_128_ctr(void); |
void ssh_aes_ctr_iv(EVP_CIPHER_CTX *, int, u_char *, u_int); |
void ssh_aes_ctr_iv(EVP_CIPHER_CTX *, int, u_char *, size_t); |
|
|
struct ssh_aes_ctr_ctx |
struct ssh_aes_ctr_ctx |
{ |
{ |
|
|
* (LSB at ctr[len-1], MSB at ctr[0]) |
* (LSB at ctr[len-1], MSB at ctr[0]) |
*/ |
*/ |
static void |
static void |
ssh_ctr_inc(u_char *ctr, u_int len) |
ssh_ctr_inc(u_char *ctr, size_t len) |
{ |
{ |
int i; |
int i; |
|
|
|
|
|
|
static int |
static int |
ssh_aes_ctr(EVP_CIPHER_CTX *ctx, u_char *dest, const u_char *src, |
ssh_aes_ctr(EVP_CIPHER_CTX *ctx, u_char *dest, const u_char *src, |
u_int len) |
size_t len) |
{ |
{ |
struct ssh_aes_ctr_ctx *c; |
struct ssh_aes_ctr_ctx *c; |
u_int n = 0; |
size_t n = 0; |
u_char buf[AES_BLOCK_SIZE]; |
u_char buf[AES_BLOCK_SIZE]; |
|
|
if (len == 0) |
if (len == 0) |
|
|
} |
} |
|
|
void |
void |
ssh_aes_ctr_iv(EVP_CIPHER_CTX *evp, int doset, u_char * iv, u_int len) |
ssh_aes_ctr_iv(EVP_CIPHER_CTX *evp, int doset, u_char * iv, size_t len) |
{ |
{ |
struct ssh_aes_ctr_ctx *c; |
struct ssh_aes_ctr_ctx *c; |
|
|