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:
наб 2021-12-25 03:33:19 +01:00 committed by Brian Behlendorf
parent 739afd9475
commit 64e82cea13
6 changed files with 22 additions and 72 deletions

View File

@ -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 {

View File

@ -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);
} }

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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 */