Changeset View
Changeset View
Standalone View
Standalone View
head/sys/opencrypto/xform_des1.c
Show First 20 Lines • Show All 47 Lines • ▼ Show 20 Lines | |||||
*/ | */ | ||||
#include <sys/cdefs.h> | #include <sys/cdefs.h> | ||||
__FBSDID("$FreeBSD$"); | __FBSDID("$FreeBSD$"); | ||||
#include <crypto/des/des.h> | #include <crypto/des/des.h> | ||||
#include <opencrypto/xform_enc.h> | #include <opencrypto/xform_enc.h> | ||||
static int des1_setkey(u_int8_t **, u_int8_t *, int); | static int des1_setkey(u_int8_t **, const u_int8_t *, int); | ||||
static void des1_encrypt(caddr_t, u_int8_t *); | static void des1_encrypt(caddr_t, u_int8_t *); | ||||
static void des1_decrypt(caddr_t, u_int8_t *); | static void des1_decrypt(caddr_t, u_int8_t *); | ||||
static void des1_zerokey(u_int8_t **); | static void des1_zerokey(u_int8_t **); | ||||
/* Encryption instances */ | /* Encryption instances */ | ||||
struct enc_xform enc_xform_des = { | struct enc_xform enc_xform_des = { | ||||
CRYPTO_DES_CBC, "DES", | CRYPTO_DES_CBC, "DES", | ||||
DES_BLOCK_LEN, DES_BLOCK_LEN, DES_MIN_KEY, DES_MAX_KEY, | DES_BLOCK_LEN, DES_BLOCK_LEN, DES_MIN_KEY, DES_MAX_KEY, | ||||
Show All 21 Lines | |||||
{ | { | ||||
des_cblock *cb = (des_cblock *) blk; | des_cblock *cb = (des_cblock *) blk; | ||||
des_key_schedule *p = (des_key_schedule *) key; | des_key_schedule *p = (des_key_schedule *) key; | ||||
des_ecb_encrypt(cb, cb, p[0], DES_DECRYPT); | des_ecb_encrypt(cb, cb, p[0], DES_DECRYPT); | ||||
} | } | ||||
static int | static int | ||||
des1_setkey(u_int8_t **sched, u_int8_t *key, int len) | des1_setkey(u_int8_t **sched, const u_int8_t *key, int len) | ||||
{ | { | ||||
des_key_schedule *p; | des_key_schedule *p; | ||||
int err; | int err; | ||||
p = KMALLOC(sizeof (des_key_schedule), | p = KMALLOC(sizeof (des_key_schedule), | ||||
M_CRYPTO_DATA, M_NOWAIT|M_ZERO); | M_CRYPTO_DATA, M_NOWAIT|M_ZERO); | ||||
if (p != NULL) { | if (p != NULL) { | ||||
des_set_key((des_cblock *) key, p[0]); | des_set_key((const des_cblock *) key, p[0]); | ||||
err = 0; | err = 0; | ||||
} else | } else | ||||
err = ENOMEM; | err = ENOMEM; | ||||
*sched = (u_int8_t *) p; | *sched = (u_int8_t *) p; | ||||
return err; | return err; | ||||
} | } | ||||
static void | static void | ||||
des1_zerokey(u_int8_t **sched) | des1_zerokey(u_int8_t **sched) | ||||
{ | { | ||||
bzero(*sched, sizeof (des_key_schedule)); | bzero(*sched, sizeof (des_key_schedule)); | ||||
KFREE(*sched, M_CRYPTO_DATA); | KFREE(*sched, M_CRYPTO_DATA); | ||||
*sched = NULL; | *sched = NULL; | ||||
} | } |