mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-01-27 10:24:22 +03:00
module: icp: remove set-but-unused cd_miscdata
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Closes #12901
This commit is contained in:
parent
739afd9475
commit
64e82cea13
@ -214,19 +214,6 @@ typedef uint32_t crypto_keysize_unit_t;
|
|||||||
#define SUN_CKM_ECDSA_SHA1 "CKM_ECDSA_SHA1"
|
#define SUN_CKM_ECDSA_SHA1 "CKM_ECDSA_SHA1"
|
||||||
#define SUN_CKM_ECDSA "CKM_ECDSA"
|
#define SUN_CKM_ECDSA "CKM_ECDSA"
|
||||||
|
|
||||||
/* Shared operation context format for CKM_RC4 */
|
|
||||||
typedef struct {
|
|
||||||
#if defined(__amd64)
|
|
||||||
uint32_t i, j;
|
|
||||||
uint32_t arr[256];
|
|
||||||
uint32_t flag;
|
|
||||||
#else
|
|
||||||
uchar_t arr[256];
|
|
||||||
uchar_t i, j;
|
|
||||||
#endif /* __amd64 */
|
|
||||||
uint64_t pad; /* For 64-bit alignment */
|
|
||||||
} arcfour_state_t;
|
|
||||||
|
|
||||||
/* Data arguments of cryptographic operations */
|
/* Data arguments of cryptographic operations */
|
||||||
|
|
||||||
typedef enum crypto_data_format {
|
typedef enum crypto_data_format {
|
||||||
@ -238,21 +225,15 @@ typedef struct crypto_data {
|
|||||||
crypto_data_format_t cd_format; /* Format identifier */
|
crypto_data_format_t cd_format; /* Format identifier */
|
||||||
off_t cd_offset; /* Offset from the beginning */
|
off_t cd_offset; /* Offset from the beginning */
|
||||||
size_t cd_length; /* # of bytes in use */
|
size_t cd_length; /* # of bytes in use */
|
||||||
caddr_t cd_miscdata; /* ancillary data */
|
|
||||||
union {
|
union {
|
||||||
/* Raw format */
|
/* Raw format */
|
||||||
iovec_t cdu_raw; /* Pointer and length */
|
iovec_t cd_raw; /* Pointer and length */
|
||||||
|
|
||||||
/* uio scatter-gather format */
|
/* uio scatter-gather format */
|
||||||
zfs_uio_t *cdu_uio;
|
zfs_uio_t *cd_uio;
|
||||||
|
}; /* Crypto Data Union */
|
||||||
} cdu; /* Crypto Data Union */
|
|
||||||
} crypto_data_t;
|
} crypto_data_t;
|
||||||
|
|
||||||
#define cd_raw cdu.cdu_raw
|
|
||||||
#define cd_uio cdu.cdu_uio
|
|
||||||
#define cd_mp cdu.cdu_mp
|
|
||||||
|
|
||||||
/* The keys, and their contents */
|
/* The keys, and their contents */
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -242,19 +242,12 @@ int
|
|||||||
cbc_init_ctx(cbc_ctx_t *cbc_ctx, char *param, size_t param_len,
|
cbc_init_ctx(cbc_ctx_t *cbc_ctx, char *param, size_t param_len,
|
||||||
size_t block_size, void (*copy_block)(uint8_t *, uint64_t *))
|
size_t block_size, void (*copy_block)(uint8_t *, uint64_t *))
|
||||||
{
|
{
|
||||||
/*
|
/* Copy IV into context. */
|
||||||
* Copy IV into context.
|
ASSERT3P(param, !=, NULL);
|
||||||
*
|
ASSERT3U(param_len, ==, block_size);
|
||||||
* If cm_param == NULL then the IV comes from the
|
|
||||||
* cd_miscdata field in the crypto_data structure.
|
copy_block((uchar_t *)param, cbc_ctx->cbc_iv);
|
||||||
*/
|
|
||||||
if (param != NULL) {
|
|
||||||
ASSERT(param_len == block_size);
|
|
||||||
copy_block((uchar_t *)param, cbc_ctx->cbc_iv);
|
|
||||||
}
|
|
||||||
|
|
||||||
cbc_ctx->cbc_lastp = (uint8_t *)&cbc_ctx->cbc_iv[0];
|
|
||||||
cbc_ctx->cbc_flags |= CBC_MODE;
|
|
||||||
return (CRYPTO_SUCCESS);
|
return (CRYPTO_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,33 +114,21 @@ crypto_put_output_data(uchar_t *buf, crypto_data_t *output, int len)
|
|||||||
|
|
||||||
int
|
int
|
||||||
crypto_update_iov(void *ctx, crypto_data_t *input, crypto_data_t *output,
|
crypto_update_iov(void *ctx, crypto_data_t *input, crypto_data_t *output,
|
||||||
int (*cipher)(void *, caddr_t, size_t, crypto_data_t *),
|
int (*cipher)(void *, caddr_t, size_t, crypto_data_t *))
|
||||||
void (*copy_block)(uint8_t *, uint64_t *))
|
|
||||||
{
|
{
|
||||||
common_ctx_t *common_ctx = ctx;
|
|
||||||
int rv;
|
|
||||||
|
|
||||||
ASSERT(input != output);
|
ASSERT(input != output);
|
||||||
if (input->cd_miscdata != NULL) {
|
|
||||||
copy_block((uint8_t *)input->cd_miscdata,
|
|
||||||
&common_ctx->cc_iv[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (input->cd_raw.iov_len < input->cd_length)
|
if (input->cd_raw.iov_len < input->cd_length)
|
||||||
return (CRYPTO_ARGUMENTS_BAD);
|
return (CRYPTO_ARGUMENTS_BAD);
|
||||||
|
|
||||||
rv = (cipher)(ctx, input->cd_raw.iov_base + input->cd_offset,
|
return ((cipher)(ctx, input->cd_raw.iov_base + input->cd_offset,
|
||||||
input->cd_length, output);
|
input->cd_length, output));
|
||||||
|
|
||||||
return (rv);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
crypto_update_uio(void *ctx, crypto_data_t *input, crypto_data_t *output,
|
crypto_update_uio(void *ctx, crypto_data_t *input, crypto_data_t *output,
|
||||||
int (*cipher)(void *, caddr_t, size_t, crypto_data_t *),
|
int (*cipher)(void *, caddr_t, size_t, crypto_data_t *))
|
||||||
void (*copy_block)(uint8_t *, uint64_t *))
|
|
||||||
{
|
{
|
||||||
common_ctx_t *common_ctx = ctx;
|
|
||||||
zfs_uio_t *uiop = input->cd_uio;
|
zfs_uio_t *uiop = input->cd_uio;
|
||||||
off_t offset = input->cd_offset;
|
off_t offset = input->cd_offset;
|
||||||
size_t length = input->cd_length;
|
size_t length = input->cd_length;
|
||||||
@ -148,10 +136,6 @@ crypto_update_uio(void *ctx, crypto_data_t *input, crypto_data_t *output,
|
|||||||
size_t cur_len;
|
size_t cur_len;
|
||||||
|
|
||||||
ASSERT(input != output);
|
ASSERT(input != output);
|
||||||
if (input->cd_miscdata != NULL) {
|
|
||||||
copy_block((uint8_t *)input->cd_miscdata,
|
|
||||||
&common_ctx->cc_iv[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (zfs_uio_segflg(input->cd_uio) != UIO_SYSSPACE) {
|
if (zfs_uio_segflg(input->cd_uio) != UIO_SYSSPACE) {
|
||||||
return (CRYPTO_ARGUMENTS_BAD);
|
return (CRYPTO_ARGUMENTS_BAD);
|
||||||
|
@ -481,11 +481,9 @@ extern void kcf_free_provider_desc(kcf_provider_desc_t *);
|
|||||||
extern void undo_register_provider(kcf_provider_desc_t *, boolean_t);
|
extern void undo_register_provider(kcf_provider_desc_t *, boolean_t);
|
||||||
extern int crypto_put_output_data(uchar_t *, crypto_data_t *, int);
|
extern int crypto_put_output_data(uchar_t *, crypto_data_t *, int);
|
||||||
extern int crypto_update_iov(void *, crypto_data_t *, crypto_data_t *,
|
extern int crypto_update_iov(void *, crypto_data_t *, crypto_data_t *,
|
||||||
int (*cipher)(void *, caddr_t, size_t, crypto_data_t *),
|
int (*cipher)(void *, caddr_t, size_t, crypto_data_t *));
|
||||||
void (*copy_block)(uint8_t *, uint64_t *));
|
|
||||||
extern int crypto_update_uio(void *, crypto_data_t *, crypto_data_t *,
|
extern int crypto_update_uio(void *, crypto_data_t *, crypto_data_t *,
|
||||||
int (*cipher)(void *, caddr_t, size_t, crypto_data_t *),
|
int (*cipher)(void *, caddr_t, size_t, crypto_data_t *));
|
||||||
void (*copy_block)(uint8_t *, uint64_t *));
|
|
||||||
|
|
||||||
/* Access to the provider's table */
|
/* Access to the provider's table */
|
||||||
extern void kcf_prov_tab_destroy(void);
|
extern void kcf_prov_tab_destroy(void);
|
||||||
|
@ -582,13 +582,11 @@ aes_encrypt_update(crypto_ctx_t *ctx, crypto_data_t *plaintext,
|
|||||||
switch (plaintext->cd_format) {
|
switch (plaintext->cd_format) {
|
||||||
case CRYPTO_DATA_RAW:
|
case CRYPTO_DATA_RAW:
|
||||||
ret = crypto_update_iov(ctx->cc_provider_private,
|
ret = crypto_update_iov(ctx->cc_provider_private,
|
||||||
plaintext, ciphertext, aes_encrypt_contiguous_blocks,
|
plaintext, ciphertext, aes_encrypt_contiguous_blocks);
|
||||||
aes_copy_block64);
|
|
||||||
break;
|
break;
|
||||||
case CRYPTO_DATA_UIO:
|
case CRYPTO_DATA_UIO:
|
||||||
ret = crypto_update_uio(ctx->cc_provider_private,
|
ret = crypto_update_uio(ctx->cc_provider_private,
|
||||||
plaintext, ciphertext, aes_encrypt_contiguous_blocks,
|
plaintext, ciphertext, aes_encrypt_contiguous_blocks);
|
||||||
aes_copy_block64);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ret = CRYPTO_ARGUMENTS_BAD;
|
ret = CRYPTO_ARGUMENTS_BAD;
|
||||||
@ -661,13 +659,11 @@ aes_decrypt_update(crypto_ctx_t *ctx, crypto_data_t *ciphertext,
|
|||||||
switch (ciphertext->cd_format) {
|
switch (ciphertext->cd_format) {
|
||||||
case CRYPTO_DATA_RAW:
|
case CRYPTO_DATA_RAW:
|
||||||
ret = crypto_update_iov(ctx->cc_provider_private,
|
ret = crypto_update_iov(ctx->cc_provider_private,
|
||||||
ciphertext, plaintext, aes_decrypt_contiguous_blocks,
|
ciphertext, plaintext, aes_decrypt_contiguous_blocks);
|
||||||
aes_copy_block64);
|
|
||||||
break;
|
break;
|
||||||
case CRYPTO_DATA_UIO:
|
case CRYPTO_DATA_UIO:
|
||||||
ret = crypto_update_uio(ctx->cc_provider_private,
|
ret = crypto_update_uio(ctx->cc_provider_private,
|
||||||
ciphertext, plaintext, aes_decrypt_contiguous_blocks,
|
ciphertext, plaintext, aes_decrypt_contiguous_blocks);
|
||||||
aes_copy_block64);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ret = CRYPTO_ARGUMENTS_BAD;
|
ret = CRYPTO_ARGUMENTS_BAD;
|
||||||
@ -930,11 +926,11 @@ aes_encrypt_atomic(crypto_provider_handle_t provider,
|
|||||||
switch (plaintext->cd_format) {
|
switch (plaintext->cd_format) {
|
||||||
case CRYPTO_DATA_RAW:
|
case CRYPTO_DATA_RAW:
|
||||||
ret = crypto_update_iov(&aes_ctx, plaintext, ciphertext,
|
ret = crypto_update_iov(&aes_ctx, plaintext, ciphertext,
|
||||||
aes_encrypt_contiguous_blocks, aes_copy_block64);
|
aes_encrypt_contiguous_blocks);
|
||||||
break;
|
break;
|
||||||
case CRYPTO_DATA_UIO:
|
case CRYPTO_DATA_UIO:
|
||||||
ret = crypto_update_uio(&aes_ctx, plaintext, ciphertext,
|
ret = crypto_update_uio(&aes_ctx, plaintext, ciphertext,
|
||||||
aes_encrypt_contiguous_blocks, aes_copy_block64);
|
aes_encrypt_contiguous_blocks);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ret = CRYPTO_ARGUMENTS_BAD;
|
ret = CRYPTO_ARGUMENTS_BAD;
|
||||||
@ -1071,11 +1067,11 @@ aes_decrypt_atomic(crypto_provider_handle_t provider,
|
|||||||
switch (ciphertext->cd_format) {
|
switch (ciphertext->cd_format) {
|
||||||
case CRYPTO_DATA_RAW:
|
case CRYPTO_DATA_RAW:
|
||||||
ret = crypto_update_iov(&aes_ctx, ciphertext, plaintext,
|
ret = crypto_update_iov(&aes_ctx, ciphertext, plaintext,
|
||||||
aes_decrypt_contiguous_blocks, aes_copy_block64);
|
aes_decrypt_contiguous_blocks);
|
||||||
break;
|
break;
|
||||||
case CRYPTO_DATA_UIO:
|
case CRYPTO_DATA_UIO:
|
||||||
ret = crypto_update_uio(&aes_ctx, ciphertext, plaintext,
|
ret = crypto_update_uio(&aes_ctx, ciphertext, plaintext,
|
||||||
aes_decrypt_contiguous_blocks, aes_copy_block64);
|
aes_decrypt_contiguous_blocks);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ret = CRYPTO_ARGUMENTS_BAD;
|
ret = CRYPTO_ARGUMENTS_BAD;
|
||||||
|
@ -438,13 +438,11 @@ zio_do_crypt_uio(boolean_t encrypt, uint64_t crypt, crypto_key_t *key,
|
|||||||
plaindata.cd_format = CRYPTO_DATA_UIO;
|
plaindata.cd_format = CRYPTO_DATA_UIO;
|
||||||
plaindata.cd_offset = 0;
|
plaindata.cd_offset = 0;
|
||||||
plaindata.cd_uio = puio;
|
plaindata.cd_uio = puio;
|
||||||
plaindata.cd_miscdata = NULL;
|
|
||||||
plaindata.cd_length = plain_full_len;
|
plaindata.cd_length = plain_full_len;
|
||||||
|
|
||||||
cipherdata.cd_format = CRYPTO_DATA_UIO;
|
cipherdata.cd_format = CRYPTO_DATA_UIO;
|
||||||
cipherdata.cd_offset = 0;
|
cipherdata.cd_offset = 0;
|
||||||
cipherdata.cd_uio = cuio;
|
cipherdata.cd_uio = cuio;
|
||||||
cipherdata.cd_miscdata = NULL;
|
|
||||||
cipherdata.cd_length = datalen + maclen;
|
cipherdata.cd_length = datalen + maclen;
|
||||||
|
|
||||||
/* perform the actual encryption */
|
/* perform the actual encryption */
|
||||||
|
Loading…
Reference in New Issue
Block a user