sa_record
eip93_set_sa_record(sa_record, keys.enckeylen, ctx->flags);
sa_record->sa_cmd0_word &= ~EIP93_SA_CMD_OPCODE;
sa_record->sa_cmd0_word |= FIELD_PREP(EIP93_SA_CMD_OPCODE,
sa_record->sa_cmd0_word &= ~EIP93_SA_CMD_DIGEST_LENGTH;
sa_record->sa_cmd0_word |= FIELD_PREP(EIP93_SA_CMD_DIGEST_LENGTH,
memcpy(sa_record->sa_key, keys.enckey, keys.enckeylen);
sa_record->sa_nonce = nonce;
ctx->authsize, sa_record->sa_i_digest,
sa_record->sa_o_digest, false);
ctx->sa_record->sa_cmd0_word &= ~EIP93_SA_CMD_DIGEST_LENGTH;
ctx->sa_record->sa_cmd0_word |= FIELD_PREP(EIP93_SA_CMD_DIGEST_LENGTH,
struct sa_record *sa_record = ctx->sa_record;
sa_record->sa_cmd1_word &= ~EIP93_SA_CMD_HASH_CRYPT_OFFSET;
sa_record->sa_cmd1_word |= FIELD_PREP(EIP93_SA_CMD_HASH_CRYPT_OFFSET,
ctx->sa_record_base = dma_map_single(ctx->eip93->dev, ctx->sa_record,
sizeof(*ctx->sa_record), DMA_TO_DEVICE);
ctx->sa_record->sa_cmd0_word |= EIP93_SA_CMD_DIRECTION_IN;
ctx->sa_record->sa_cmd1_word &= ~(EIP93_SA_CMD_COPY_PAD |
ctx->sa_record = kzalloc_obj(*ctx->sa_record);
if (!ctx->sa_record)
sizeof(*ctx->sa_record), DMA_TO_DEVICE);
kfree(ctx->sa_record);
struct sa_record *sa_record = ctx->sa_record;
eip93_set_sa_record(sa_record, keylen, flags);
memcpy(sa_record->sa_key, key, keylen);
sa_record->sa_nonce = nonce;
ctx->sa_record_base = dma_map_single(ctx->eip93->dev, ctx->sa_record,
sizeof(*ctx->sa_record), DMA_TO_DEVICE);
ctx->sa_record->sa_cmd0_word |= EIP93_SA_CMD_DIRECTION_IN;
ctx->sa_record = kzalloc_obj(*ctx->sa_record);
if (!ctx->sa_record)
sizeof(*ctx->sa_record), DMA_TO_DEVICE);
kfree(ctx->sa_record);
struct sa_record *sa_record = ctx->sa_record;
struct sa_record *sa_record;
void eip93_set_sa_record(struct sa_record *sa_record, const unsigned int keylen,
sa_record->sa_cmd0_word = 0;
sa_record->sa_cmd1_word = 0;
sa_record->sa_cmd0_word |= EIP93_SA_CMD_IV_FROM_STATE;
sa_record->sa_cmd0_word |= EIP93_SA_CMD_SAVE_IV;
sa_record->sa_cmd0_word |= EIP93_SA_CMD_OP_BASIC;
sa_record->sa_cmd0_word |= EIP93_SA_CMD_CIPHER_AES;
sa_record->sa_cmd1_word |= FIELD_PREP(EIP93_SA_CMD_AES_KEY_LENGTH,
sa_record->sa_cmd0_word |= EIP93_SA_CMD_CIPHER_3DES;
sa_record->sa_cmd0_word |= EIP93_SA_CMD_CIPHER_DES;
sa_record->sa_cmd0_word |= EIP93_SA_CMD_CIPHER_NULL;
sa_record->sa_cmd0_word |= EIP93_SA_CMD_HASH_SHA256;
sa_record->sa_cmd0_word |= EIP93_SA_CMD_HASH_SHA224;
sa_record->sa_cmd0_word |= EIP93_SA_CMD_HASH_SHA1;
sa_record->sa_cmd0_word |= EIP93_SA_CMD_HASH_MD5;
sa_record->sa_cmd0_word |= EIP93_SA_CMD_HASH_NULL;
sa_record->sa_cmd0_word |= EIP93_SA_CMD_PAD_ZERO;
sa_record->sa_cmd1_word |= EIP93_SA_CMD_CHIPER_MODE_CBC;
sa_record->sa_cmd1_word |= EIP93_SA_CMD_CHIPER_MODE_CTR;
sa_record->sa_cmd1_word |= EIP93_SA_CMD_CHIPER_MODE_ECB;
sa_record->sa_cmd0_word |= EIP93_SA_CMD_DIGEST_3WORD;
sa_record->sa_cmd1_word |= EIP93_SA_CMD_COPY_PAD;
sa_record->sa_cmd1_word |= EIP93_SA_CMD_COPY_DIGEST;
sa_record->sa_cmd1_word |= EIP93_SA_CMD_HMAC;
sa_record->sa_cmd1_word |= EIP93_SA_CMD_COPY_HEADER;
sa_record->sa_spi = 0x0;
sa_record->sa_seqmum_mask[0] = 0xFFFFFFFF;
sa_record->sa_seqmum_mask[1] = 0x0;
void eip93_set_sa_record(struct sa_record *sa_record, const unsigned int keylen,
struct sa_record *sa_record = &rctx->sa_record;
eip93_set_sa_record(sa_record, 0, ctx->flags);
sa_record->sa_cmd0_word |= EIP93_SA_CMD_HASH_FROM_STATE;
sa_record->sa_cmd0_word |= EIP93_SA_CMD_SAVE_HASH;
sa_record->sa_cmd0_word &= ~EIP93_SA_CMD_OPCODE;
sa_record->sa_cmd0_word |= FIELD_PREP(EIP93_SA_CMD_OPCODE,
sa_record->sa_cmd0_word &= ~EIP93_SA_CMD_DIGEST_LENGTH;
sa_record->sa_cmd0_word |= FIELD_PREP(EIP93_SA_CMD_DIGEST_LENGTH,
struct sa_record *sa_record_hmac = &rctx->sa_record_hmac;
memcpy(sa_record_hmac, sa_record, sizeof(*sa_record));
sa_record->sa_cmd1_word &= ~EIP93_SA_CMD_HMAC;
struct sa_record *sa_record_hmac = &rctx->sa_record_hmac;
struct sa_record *sa_record = &rctx->sa_record;
rctx->sa_record_base = dma_map_single(eip93->dev, sa_record,
sizeof(*sa_record),
sizeof(*sa_record), DMA_TO_DEVICE);
struct sa_record *sa_record = &rctx->sa_record;
rctx->sa_record_base = dma_map_single(eip93->dev, sa_record,
sizeof(*sa_record),
sizeof(*sa_record), DMA_TO_DEVICE);
struct sa_record *sa_record = &rctx->sa_record;
rctx->sa_record_base = dma_map_single(eip93->dev, sa_record,
sizeof(*sa_record),
sizeof(rctx->sa_record), DMA_TO_DEVICE);
sizeof(*sa_record), DMA_TO_DEVICE);
struct sa_record sa_record;
struct sa_record sa_record_hmac;
struct aq_mss_ingress_sa_record sa_record;
memset(&sa_record, 0, sizeof(sa_record));
sa_record.valid = rx_sa->active;
sa_record.fresh = 1;
sa_record.next_pn = next_pn;
ret = aq_mss_set_ingress_sa_record(hw, &sa_record, sa_idx);
struct aq_mss_ingress_sa_record sa_record;
memset(&sa_record, 0, sizeof(sa_record));
sa_record.fresh = 1;
ret = aq_mss_set_ingress_sa_record(hw, &sa_record, sa_idx);