setkey
int setkey(const char *);
return session->cipher->setkey(session->context, keydata,
int (*setkey)(void *ctx, const uint8_t *keydata, int keylen_in_bytes);
.setkey = cipher_null_setkey,
.setkey = aes_cbc_setkey,
.setkey = aes_xts_setkey,
.setkey = cipher_aesni_cbc_setkey,
.setkey = cipher_aesni_xts_setkey,
.setkey = twofish_cbc_setkey,
.setkey = twofish_xts_setkey,
.setkey = serpent_cbc_setkey,
.setkey = serpent_xts_setkey,
HAL_DIAG_KEYVAL setkey;
memset(&setkey, 0, sizeof(setkey));
setkey.dk_keyix = keyix;
setkey.dk_xor = xor;
setkey.dk_keyval.kv_type = getcipher(argv[1]);
setkey.dk_keyval.kv_len = getdata(argv[2],
setkey.dk_keyval.kv_val, sizeof(setkey.dk_keyval.kv_val));
(void) getdata(argv[3], setkey.dk_mac,
atd.ad_in_data = (caddr_t) &setkey;
atd.ad_in_size = sizeof(setkey);