Changeset View
Changeset View
Standalone View
Standalone View
head/sys/opencrypto/cryptodev.c
Show First 20 Lines • Show All 97 Lines • ▼ Show 20 Lines | struct crypt_op32 { | ||||
u_int16_t op; | u_int16_t op; | ||||
u_int16_t flags; | u_int16_t flags; | ||||
u_int len; | u_int len; | ||||
u_int32_t src, dst; | u_int32_t src, dst; | ||||
u_int32_t mac; | u_int32_t mac; | ||||
u_int32_t iv; | u_int32_t iv; | ||||
}; | }; | ||||
struct crypt_aead32 { | |||||
u_int32_t ses; | |||||
u_int16_t op; | |||||
u_int16_t flags; | |||||
u_int len; | |||||
u_int aadlen; | |||||
u_int ivlen; | |||||
u_int32_t src; | |||||
u_int32_t dst; | |||||
u_int32_t aad; | |||||
u_int32_t tag; | |||||
u_int32_t iv; | |||||
}; | |||||
struct crparam32 { | struct crparam32 { | ||||
u_int32_t crp_p; | u_int32_t crp_p; | ||||
u_int crp_nbits; | u_int crp_nbits; | ||||
}; | }; | ||||
struct crypt_kop32 { | struct crypt_kop32 { | ||||
u_int crk_op; | u_int crk_op; | ||||
u_int crk_status; | u_int crk_status; | ||||
u_short crk_iparams; | u_short crk_iparams; | ||||
u_short crk_oparams; | u_short crk_oparams; | ||||
u_int crk_crid; | u_int crk_crid; | ||||
struct crparam32 crk_param[CRK_MAXPARAM]; | struct crparam32 crk_param[CRK_MAXPARAM]; | ||||
}; | }; | ||||
#define CIOCGSESSION32 _IOWR('c', 101, struct session_op32) | #define CIOCGSESSION32 _IOWR('c', 101, struct session_op32) | ||||
#define CIOCCRYPT32 _IOWR('c', 103, struct crypt_op32) | #define CIOCCRYPT32 _IOWR('c', 103, struct crypt_op32) | ||||
#define CIOCKEY32 _IOWR('c', 104, struct crypt_kop32) | #define CIOCKEY32 _IOWR('c', 104, struct crypt_kop32) | ||||
#define CIOCGSESSION232 _IOWR('c', 106, struct session2_op32) | #define CIOCGSESSION232 _IOWR('c', 106, struct session2_op32) | ||||
#define CIOCKEY232 _IOWR('c', 107, struct crypt_kop32) | #define CIOCKEY232 _IOWR('c', 107, struct crypt_kop32) | ||||
#define CIOCCRYPTAEAD32 _IOWR('c', 109, struct crypt_aead32) | |||||
static void | static void | ||||
session_op_from_32(const struct session_op32 *from, struct session2_op *to) | session_op_from_32(const struct session_op32 *from, struct session2_op *to) | ||||
{ | { | ||||
memset(to, 0, sizeof(*to)); | memset(to, 0, sizeof(*to)); | ||||
CP(*from, *to, cipher); | CP(*from, *to, cipher); | ||||
CP(*from, *to, mac); | CP(*from, *to, mac); | ||||
▲ Show 20 Lines • Show All 58 Lines • ▼ Show 20 Lines | crypt_op_to_32(const struct crypt_op *from, struct crypt_op32 *to) | ||||
CP(*from, *to, len); | CP(*from, *to, len); | ||||
PTROUT_CP(*from, *to, src); | PTROUT_CP(*from, *to, src); | ||||
PTROUT_CP(*from, *to, dst); | PTROUT_CP(*from, *to, dst); | ||||
PTROUT_CP(*from, *to, mac); | PTROUT_CP(*from, *to, mac); | ||||
PTROUT_CP(*from, *to, iv); | PTROUT_CP(*from, *to, iv); | ||||
} | } | ||||
static void | static void | ||||
crypt_aead_from_32(const struct crypt_aead32 *from, struct crypt_aead *to) | |||||
{ | |||||
CP(*from, *to, ses); | |||||
CP(*from, *to, op); | |||||
CP(*from, *to, flags); | |||||
CP(*from, *to, len); | |||||
CP(*from, *to, aadlen); | |||||
CP(*from, *to, ivlen); | |||||
PTRIN_CP(*from, *to, src); | |||||
PTRIN_CP(*from, *to, dst); | |||||
PTRIN_CP(*from, *to, aad); | |||||
PTRIN_CP(*from, *to, tag); | |||||
PTRIN_CP(*from, *to, iv); | |||||
} | |||||
static void | |||||
crypt_aead_to_32(const struct crypt_aead *from, struct crypt_aead32 *to) | |||||
{ | |||||
CP(*from, *to, ses); | |||||
CP(*from, *to, op); | |||||
CP(*from, *to, flags); | |||||
CP(*from, *to, len); | |||||
CP(*from, *to, aadlen); | |||||
CP(*from, *to, ivlen); | |||||
PTROUT_CP(*from, *to, src); | |||||
PTROUT_CP(*from, *to, dst); | |||||
PTROUT_CP(*from, *to, aad); | |||||
PTROUT_CP(*from, *to, tag); | |||||
PTROUT_CP(*from, *to, iv); | |||||
} | |||||
static void | |||||
crparam_from_32(const struct crparam32 *from, struct crparam *to) | crparam_from_32(const struct crparam32 *from, struct crparam *to) | ||||
{ | { | ||||
PTRIN_CP(*from, *to, crp_p); | PTRIN_CP(*from, *to, crp_p); | ||||
CP(*from, *to, crp_nbits); | CP(*from, *to, crp_nbits); | ||||
} | } | ||||
static void | static void | ||||
▲ Show 20 Lines • Show All 176 Lines • ▼ Show 20 Lines | cryptof_ioctl( | ||||
struct crypt_kop *kop; | struct crypt_kop *kop; | ||||
crypto_session_t cses; | crypto_session_t cses; | ||||
u_int32_t ses; | u_int32_t ses; | ||||
int error = 0, crid; | int error = 0, crid; | ||||
union { | union { | ||||
struct session2_op sopc; | struct session2_op sopc; | ||||
#ifdef COMPAT_FREEBSD32 | #ifdef COMPAT_FREEBSD32 | ||||
struct crypt_op copc; | struct crypt_op copc; | ||||
struct crypt_aead aeadc; | |||||
struct crypt_kop kopc; | struct crypt_kop kopc; | ||||
#endif | #endif | ||||
}; | }; | ||||
#ifdef COMPAT_FREEBSD32 | #ifdef COMPAT_FREEBSD32 | ||||
u_long cmd32; | u_long cmd32; | ||||
void *data32; | void *data32; | ||||
cmd32 = 0; | cmd32 = 0; | ||||
Show All 15 Lines | case CIOCGSESSION232: | ||||
break; | break; | ||||
case CIOCCRYPT32: | case CIOCCRYPT32: | ||||
cmd32 = cmd; | cmd32 = cmd; | ||||
data32 = data; | data32 = data; | ||||
cmd = CIOCCRYPT; | cmd = CIOCCRYPT; | ||||
data = &copc; | data = &copc; | ||||
crypt_op_from_32((struct crypt_op32 *)data32, &copc); | crypt_op_from_32((struct crypt_op32 *)data32, &copc); | ||||
break; | break; | ||||
case CIOCCRYPTAEAD32: | |||||
cmd32 = cmd; | |||||
data32 = data; | |||||
cmd = CIOCCRYPTAEAD; | |||||
data = &aeadc; | |||||
crypt_aead_from_32((struct crypt_aead32 *)data32, &aeadc); | |||||
break; | |||||
case CIOCKEY32: | case CIOCKEY32: | ||||
case CIOCKEY232: | case CIOCKEY232: | ||||
cmd32 = cmd; | cmd32 = cmd; | ||||
data32 = data; | data32 = data; | ||||
if (cmd == CIOCKEY32) | if (cmd == CIOCKEY32) | ||||
cmd = CIOCKEY; | cmd = CIOCKEY; | ||||
else | else | ||||
cmd = CIOCKEY2; | cmd = CIOCKEY2; | ||||
▲ Show 20 Lines • Show All 387 Lines • ▼ Show 20 Lines | case CIOCGSESSION32: | ||||
break; | break; | ||||
case CIOCGSESSION232: | case CIOCGSESSION232: | ||||
if (error == 0) | if (error == 0) | ||||
session2_op_to_32(data, data32); | session2_op_to_32(data, data32); | ||||
break; | break; | ||||
case CIOCCRYPT32: | case CIOCCRYPT32: | ||||
if (error == 0) | if (error == 0) | ||||
crypt_op_to_32(data, data32); | crypt_op_to_32(data, data32); | ||||
break; | |||||
case CIOCCRYPTAEAD32: | |||||
if (error == 0) | |||||
crypt_aead_to_32(data, data32); | |||||
break; | break; | ||||
case CIOCKEY32: | case CIOCKEY32: | ||||
case CIOCKEY232: | case CIOCKEY232: | ||||
crypt_kop_to_32(data, data32); | crypt_kop_to_32(data, data32); | ||||
break; | break; | ||||
} | } | ||||
#endif | #endif | ||||
return (error); | return (error); | ||||
▲ Show 20 Lines • Show All 800 Lines • Show Last 20 Lines |