keystate
struct keystate *ks;
struct keystate *ks;
des3_decrypt(struct keystate *ks, u_int8_t *data, u_int16_t len)
blf_init(struct keystate *ks, u_int8_t *key, u_int16_t len)
blf_encrypt(struct keystate *ks, u_int8_t *data, u_int16_t len)
blf_decrypt(struct keystate *ks, u_int8_t *data, u_int16_t len)
cast_init(struct keystate *ks, u_int8_t *key, u_int16_t len)
cast1_encrypt(struct keystate *ks, u_int8_t *data, u_int16_t len)
cast1_decrypt(struct keystate *ks, u_int8_t *data, u_int16_t len)
aes_init(struct keystate *ks, u_int8_t *key, u_int16_t len)
aes_encrypt(struct keystate *ks, u_int8_t *data, u_int16_t len)
aes_decrypt(struct keystate *ks, u_int8_t *data, u_int16_t len)
struct keystate *
struct keystate *ks;
crypto_update_iv(struct keystate *ks)
crypto_init_iv(struct keystate *ks, u_int8_t *buf, size_t len)
crypto_encrypt(struct keystate *ks, u_int8_t *buf, u_int16_t len)
crypto_decrypt(struct keystate *ks, u_int8_t *buf, u_int16_t len)
struct keystate *
crypto_clone_keystate(struct keystate *oks)
struct keystate *ks;
enum cryptoerr des3_init(struct keystate *, u_int8_t *, u_int16_t);
enum cryptoerr blf_init(struct keystate *, u_int8_t *, u_int16_t);
enum cryptoerr cast_init(struct keystate *, u_int8_t *, u_int16_t);
enum cryptoerr aes_init(struct keystate *, u_int8_t *, u_int16_t);
void des3_encrypt(struct keystate *, u_int8_t *, u_int16_t);
void des3_decrypt(struct keystate *, u_int8_t *, u_int16_t);
void blf_encrypt(struct keystate *, u_int8_t *, u_int16_t);
void blf_decrypt(struct keystate *, u_int8_t *, u_int16_t);
void cast1_encrypt(struct keystate *, u_int8_t *, u_int16_t);
void cast1_decrypt(struct keystate *, u_int8_t *, u_int16_t);
void aes_encrypt(struct keystate *, u_int8_t *, u_int16_t);
void aes_decrypt(struct keystate *, u_int8_t *, u_int16_t);
des3_init(struct keystate *ks, u_int8_t *key, u_int16_t len)
des3_encrypt(struct keystate *ks, u_int8_t *data, u_int16_t len)
struct keystate *state; /* Key information, can also be passed sep. */
enum cryptoerr (*init)(struct keystate *, u_int8_t *, u_int16_t);
void (*encrypt)(struct keystate *, u_int8_t *, u_int16_t);
void (*decrypt)(struct keystate *, u_int8_t *, u_int16_t);
extern struct keystate *crypto_clone_keystate(struct keystate *);
extern void crypto_decrypt(struct keystate *, u_int8_t *, u_int16_t);
extern void crypto_encrypt(struct keystate *, u_int8_t *, u_int16_t);
extern struct keystate *crypto_init(struct crypto_xf *, u_int8_t *, u_int16_t,
extern void crypto_init_iv(struct keystate *, u_int8_t *, size_t);
extern void crypto_update_iv(struct keystate *);
struct keystate;
struct keystate *(*get_keystate)(struct message *);
free(exchange->keystate);
msg->isakmp_sa->keystate = exchange->keystate;
exchange->keystate = 0;
crypto_update_iv(exchange->keystate);
struct keystate *keystate;
struct keystate;
exchange->keystate = crypto_init(exchange->crypto, key,
exchange->keystate = crypto_init(exchange->crypto,
if (!exchange->keystate && err == EWEAKKEY &&
exchange->keystate = crypto_init(exchange->crypto,
if (!exchange->keystate) {
crypto_init_iv(exchange->keystate, hash->digest,
static struct keystate *ipsec_get_keystate(struct message *);
static struct keystate *
struct keystate *ks;
if (msg->exchange && msg->exchange->keystate) {
memcpy(ks, msg->exchange->keystate, sizeof *ks);
if (!msg->isakmp_sa->keystate) {
ks = crypto_clone_keystate(msg->isakmp_sa->keystate);
static struct keystate *
static struct keystate *isakmp_get_keystate(struct message *);
struct keystate *ks = 0;
if (!msg->exchange->keystate) {
msg->exchange->keystate = ks;
(msg->exchange->keystate &&
if (!exchange->keystate) {
exchange->keystate = exchange->doi->get_keystate(msg);
if (!exchange->keystate)
exchange->crypto = exchange->keystate->xf;
crypto_encrypt(exchange->keystate, buf, msg->iov[1].iov_len);
crypto_update_iv(exchange->keystate);
free(sa->keystate);
struct keystate *keystate;
struct keystate;