Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/drivers/crypto/intel/qat/qat_common/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 11 kB image not shown  

Quelle  icp_qat_fw_la.h   Sprache: C

 
/* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0-only) */
/* Copyright(c) 2014 - 2020 Intel Corporation */
#ifndef _ICP_QAT_FW_LA_H_
#define _ICP_QAT_FW_LA_H_
#include "icp_qat_fw.h"

enum icp_qat_fw_la_cmd_id {
 ICP_QAT_FW_LA_CMD_CIPHER = 0,
 ICP_QAT_FW_LA_CMD_AUTH = 1,
 ICP_QAT_FW_LA_CMD_CIPHER_HASH = 2,
 ICP_QAT_FW_LA_CMD_HASH_CIPHER = 3,
 ICP_QAT_FW_LA_CMD_TRNG_GET_RANDOM = 4,
 ICP_QAT_FW_LA_CMD_TRNG_TEST = 5,
 ICP_QAT_FW_LA_CMD_SSL3_KEY_DERIVE = 6,
 ICP_QAT_FW_LA_CMD_TLS_V1_1_KEY_DERIVE = 7,
 ICP_QAT_FW_LA_CMD_TLS_V1_2_KEY_DERIVE = 8,
 ICP_QAT_FW_LA_CMD_MGF1 = 9,
 ICP_QAT_FW_LA_CMD_AUTH_PRE_COMP = 10,
 ICP_QAT_FW_LA_CMD_CIPHER_PRE_COMP = 11,
 ICP_QAT_FW_LA_CMD_DELIMITER = 12
};

#define ICP_QAT_FW_LA_ICV_VER_STATUS_PASS ICP_QAT_FW_COMN_STATUS_FLAG_OK
#define ICP_QAT_FW_LA_ICV_VER_STATUS_FAIL ICP_QAT_FW_COMN_STATUS_FLAG_ERROR
#define ICP_QAT_FW_LA_TRNG_STATUS_PASS ICP_QAT_FW_COMN_STATUS_FLAG_OK
#define ICP_QAT_FW_LA_TRNG_STATUS_FAIL ICP_QAT_FW_COMN_STATUS_FLAG_ERROR

struct icp_qat_fw_la_bulk_req {
 struct icp_qat_fw_comn_req_hdr comn_hdr;
 struct icp_qat_fw_comn_req_hdr_cd_pars cd_pars;
 struct icp_qat_fw_comn_req_mid comn_mid;
 struct icp_qat_fw_comn_req_rqpars serv_specif_rqpars;
 struct icp_qat_fw_comn_req_cd_ctrl cd_ctrl;
};

#define ICP_QAT_FW_LA_USE_UCS_SLICE_TYPE 1
#define QAT_LA_SLICE_TYPE_BITPOS 14
#define QAT_LA_SLICE_TYPE_MASK 0x3
#define ICP_QAT_FW_LA_GCM_IV_LEN_12_OCTETS 1
#define ICP_QAT_FW_LA_GCM_IV_LEN_NOT_12_OCTETS 0
#define QAT_FW_LA_ZUC_3G_PROTO_FLAG_BITPOS 12
#define ICP_QAT_FW_LA_ZUC_3G_PROTO 1
#define QAT_FW_LA_ZUC_3G_PROTO_FLAG_MASK 0x1
#define QAT_LA_GCM_IV_LEN_FLAG_BITPOS 11
#define QAT_LA_GCM_IV_LEN_FLAG_MASK 0x1
#define ICP_QAT_FW_LA_DIGEST_IN_BUFFER 1
#define ICP_QAT_FW_LA_NO_DIGEST_IN_BUFFER 0
#define QAT_LA_DIGEST_IN_BUFFER_BITPOS 10
#define QAT_LA_DIGEST_IN_BUFFER_MASK 0x1
#define ICP_QAT_FW_LA_SNOW_3G_PROTO 4
#define ICP_QAT_FW_LA_GCM_PROTO 2
#define ICP_QAT_FW_LA_CCM_PROTO 1
#define ICP_QAT_FW_LA_NO_PROTO 0
#define QAT_LA_PROTO_BITPOS 7
#define QAT_LA_PROTO_MASK 0x7
#define ICP_QAT_FW_LA_CMP_AUTH_RES 1
#define ICP_QAT_FW_LA_NO_CMP_AUTH_RES 0
#define QAT_LA_CMP_AUTH_RES_BITPOS 6
#define QAT_LA_CMP_AUTH_RES_MASK 0x1
#define ICP_QAT_FW_LA_RET_AUTH_RES 1
#define ICP_QAT_FW_LA_NO_RET_AUTH_RES 0
#define QAT_LA_RET_AUTH_RES_BITPOS 5
#define QAT_LA_RET_AUTH_RES_MASK 0x1
#define ICP_QAT_FW_LA_UPDATE_STATE 1
#define ICP_QAT_FW_LA_NO_UPDATE_STATE 0
#define QAT_LA_UPDATE_STATE_BITPOS 4
#define QAT_LA_UPDATE_STATE_MASK 0x1
#define ICP_QAT_FW_CIPH_AUTH_CFG_OFFSET_IN_CD_SETUP 0
#define ICP_QAT_FW_CIPH_AUTH_CFG_OFFSET_IN_SHRAM_CP 1
#define QAT_LA_CIPH_AUTH_CFG_OFFSET_BITPOS 3
#define QAT_LA_CIPH_AUTH_CFG_OFFSET_MASK 0x1
#define ICP_QAT_FW_CIPH_IV_64BIT_PTR 0
#define ICP_QAT_FW_CIPH_IV_16BYTE_DATA 1
#define QAT_LA_CIPH_IV_FLD_BITPOS 2
#define QAT_LA_CIPH_IV_FLD_MASK   0x1
#define ICP_QAT_FW_LA_PARTIAL_NONE 0
#define ICP_QAT_FW_LA_PARTIAL_START 1
#define ICP_QAT_FW_LA_PARTIAL_MID 3
#define ICP_QAT_FW_LA_PARTIAL_END 2
#define QAT_LA_PARTIAL_BITPOS 0
#define QAT_LA_PARTIAL_MASK 0x3
#define ICP_QAT_FW_LA_FLAGS_BUILD(zuc_proto, gcm_iv_len, auth_rslt, proto, \
 cmp_auth, ret_auth, update_state, \
 ciph_iv, ciphcfg, partial) \
 (((zuc_proto & QAT_FW_LA_ZUC_3G_PROTO_FLAG_MASK) << \
 QAT_FW_LA_ZUC_3G_PROTO_FLAG_BITPOS) | \
 ((gcm_iv_len & QAT_LA_GCM_IV_LEN_FLAG_MASK) << \
 QAT_LA_GCM_IV_LEN_FLAG_BITPOS) | \
 ((auth_rslt & QAT_LA_DIGEST_IN_BUFFER_MASK) << \
 QAT_LA_DIGEST_IN_BUFFER_BITPOS) | \
 ((proto & QAT_LA_PROTO_MASK) << \
 QAT_LA_PROTO_BITPOS) | \
 ((cmp_auth & QAT_LA_CMP_AUTH_RES_MASK) << \
 QAT_LA_CMP_AUTH_RES_BITPOS) | \
 ((ret_auth & QAT_LA_RET_AUTH_RES_MASK) << \
 QAT_LA_RET_AUTH_RES_BITPOS) | \
 ((update_state & QAT_LA_UPDATE_STATE_MASK) << \
 QAT_LA_UPDATE_STATE_BITPOS) | \
 ((ciph_iv & QAT_LA_CIPH_IV_FLD_MASK) << \
 QAT_LA_CIPH_IV_FLD_BITPOS) | \
 ((ciphcfg & QAT_LA_CIPH_AUTH_CFG_OFFSET_MASK) << \
 QAT_LA_CIPH_AUTH_CFG_OFFSET_BITPOS) | \
 ((partial & QAT_LA_PARTIAL_MASK) << \
 QAT_LA_PARTIAL_BITPOS))

#define ICP_QAT_FW_LA_CIPH_IV_FLD_FLAG_GET(flags) \
 QAT_FIELD_GET(flags, QAT_LA_CIPH_IV_FLD_BITPOS, \
 QAT_LA_CIPH_IV_FLD_MASK)

#define ICP_QAT_FW_LA_CIPH_AUTH_CFG_OFFSET_FLAG_GET(flags) \
 QAT_FIELD_GET(flags, QAT_LA_CIPH_AUTH_CFG_OFFSET_BITPOS, \
 QAT_LA_CIPH_AUTH_CFG_OFFSET_MASK)

#define ICP_QAT_FW_LA_ZUC_3G_PROTO_FLAG_GET(flags) \
 QAT_FIELD_GET(flags, QAT_FW_LA_ZUC_3G_PROTO_FLAG_BITPOS, \
 QAT_FW_LA_ZUC_3G_PROTO_FLAG_MASK)

#define ICP_QAT_FW_LA_GCM_IV_LEN_FLAG_GET(flags) \
 QAT_FIELD_GET(flags, QAT_LA_GCM_IV_LEN_FLAG_BITPOS, \
 QAT_LA_GCM_IV_LEN_FLAG_MASK)

#define ICP_QAT_FW_LA_PROTO_GET(flags) \
 QAT_FIELD_GET(flags, QAT_LA_PROTO_BITPOS, QAT_LA_PROTO_MASK)

#define ICP_QAT_FW_LA_CMP_AUTH_GET(flags) \
 QAT_FIELD_GET(flags, QAT_LA_CMP_AUTH_RES_BITPOS, \
 QAT_LA_CMP_AUTH_RES_MASK)

#define ICP_QAT_FW_LA_RET_AUTH_GET(flags) \
 QAT_FIELD_GET(flags, QAT_LA_RET_AUTH_RES_BITPOS, \
 QAT_LA_RET_AUTH_RES_MASK)

#define ICP_QAT_FW_LA_DIGEST_IN_BUFFER_GET(flags) \
 QAT_FIELD_GET(flags, QAT_LA_DIGEST_IN_BUFFER_BITPOS, \
 QAT_LA_DIGEST_IN_BUFFER_MASK)

#define ICP_QAT_FW_LA_UPDATE_STATE_GET(flags) \
 QAT_FIELD_GET(flags, QAT_LA_UPDATE_STATE_BITPOS, \
 QAT_LA_UPDATE_STATE_MASK)

#define ICP_QAT_FW_LA_PARTIAL_GET(flags) \
 QAT_FIELD_GET(flags, QAT_LA_PARTIAL_BITPOS, \
 QAT_LA_PARTIAL_MASK)

#define ICP_QAT_FW_LA_CIPH_IV_FLD_FLAG_SET(flags, val) \
 QAT_FIELD_SET(flags, val, QAT_LA_CIPH_IV_FLD_BITPOS, \
 QAT_LA_CIPH_IV_FLD_MASK)

#define ICP_QAT_FW_LA_CIPH_AUTH_CFG_OFFSET_FLAG_SET(flags, val) \
 QAT_FIELD_SET(flags, val, QAT_LA_CIPH_AUTH_CFG_OFFSET_BITPOS, \
 QAT_LA_CIPH_AUTH_CFG_OFFSET_MASK)

#define ICP_QAT_FW_LA_ZUC_3G_PROTO_FLAG_SET(flags, val) \
 QAT_FIELD_SET(flags, val, QAT_FW_LA_ZUC_3G_PROTO_FLAG_BITPOS, \
 QAT_FW_LA_ZUC_3G_PROTO_FLAG_MASK)

#define ICP_QAT_FW_LA_GCM_IV_LEN_FLAG_SET(flags, val) \
 QAT_FIELD_SET(flags, val, QAT_LA_GCM_IV_LEN_FLAG_BITPOS, \
 QAT_LA_GCM_IV_LEN_FLAG_MASK)

#define ICP_QAT_FW_LA_PROTO_SET(flags, val) \
 QAT_FIELD_SET(flags, val, QAT_LA_PROTO_BITPOS, \
 QAT_LA_PROTO_MASK)

#define ICP_QAT_FW_LA_CMP_AUTH_SET(flags, val) \
 QAT_FIELD_SET(flags, val, QAT_LA_CMP_AUTH_RES_BITPOS, \
 QAT_LA_CMP_AUTH_RES_MASK)

#define ICP_QAT_FW_LA_RET_AUTH_SET(flags, val) \
 QAT_FIELD_SET(flags, val, QAT_LA_RET_AUTH_RES_BITPOS, \
 QAT_LA_RET_AUTH_RES_MASK)

#define ICP_QAT_FW_LA_DIGEST_IN_BUFFER_SET(flags, val) \
 QAT_FIELD_SET(flags, val, QAT_LA_DIGEST_IN_BUFFER_BITPOS, \
 QAT_LA_DIGEST_IN_BUFFER_MASK)

#define ICP_QAT_FW_LA_UPDATE_STATE_SET(flags, val) \
 QAT_FIELD_SET(flags, val, QAT_LA_UPDATE_STATE_BITPOS, \
 QAT_LA_UPDATE_STATE_MASK)

#define ICP_QAT_FW_LA_PARTIAL_SET(flags, val) \
 QAT_FIELD_SET(flags, val, QAT_LA_PARTIAL_BITPOS, \
 QAT_LA_PARTIAL_MASK)

#define ICP_QAT_FW_LA_SLICE_TYPE_SET(flags, val) \
 QAT_FIELD_SET(flags, val, QAT_LA_SLICE_TYPE_BITPOS, \
 QAT_LA_SLICE_TYPE_MASK)

struct icp_qat_fw_cipher_req_hdr_cd_pars {
 union {
  struct {
   __u64 content_desc_addr;
   __u16 content_desc_resrvd1;
   __u8 content_desc_params_sz;
   __u8 content_desc_hdr_resrvd2;
   __u32 content_desc_resrvd3;
  } s;
  struct {
   __u32 cipher_key_array[ICP_QAT_FW_NUM_LONGWORDS_4];
  } s1;
 } u;
};

struct icp_qat_fw_cipher_auth_req_hdr_cd_pars {
 union {
  struct {
   __u64 content_desc_addr;
   __u16 content_desc_resrvd1;
   __u8 content_desc_params_sz;
   __u8 content_desc_hdr_resrvd2;
   __u32 content_desc_resrvd3;
  } s;
  struct {
   __u32 cipher_key_array[ICP_QAT_FW_NUM_LONGWORDS_4];
  } sl;
 } u;
};

struct icp_qat_fw_cipher_cd_ctrl_hdr {
 __u8 cipher_state_sz;
 __u8 cipher_key_sz;
 __u8 cipher_cfg_offset;
 __u8 next_curr_id;
 __u8 cipher_padding_sz;
 __u8 resrvd1;
 __u16 resrvd2;
 __u32 resrvd3[ICP_QAT_FW_NUM_LONGWORDS_3];
};

struct icp_qat_fw_auth_cd_ctrl_hdr {
 __u32 resrvd1;
 __u8 resrvd2;
 __u8 hash_flags;
 __u8 hash_cfg_offset;
 __u8 next_curr_id;
 __u8 resrvd3;
 __u8 outer_prefix_sz;
 __u8 final_sz;
 __u8 inner_res_sz;
 __u8 resrvd4;
 __u8 inner_state1_sz;
 __u8 inner_state2_offset;
 __u8 inner_state2_sz;
 __u8 outer_config_offset;
 __u8 outer_state1_sz;
 __u8 outer_res_sz;
 __u8 outer_prefix_offset;
};

struct icp_qat_fw_cipher_auth_cd_ctrl_hdr {
 __u8 cipher_state_sz;
 __u8 cipher_key_sz;
 __u8 cipher_cfg_offset;
 __u8 next_curr_id_cipher;
 __u8 cipher_padding_sz;
 __u8 hash_flags;
 __u8 hash_cfg_offset;
 __u8 next_curr_id_auth;
 __u8 resrvd1;
 __u8 outer_prefix_sz;
 __u8 final_sz;
 __u8 inner_res_sz;
 __u8 resrvd2;
 __u8 inner_state1_sz;
 __u8 inner_state2_offset;
 __u8 inner_state2_sz;
 __u8 outer_config_offset;
 __u8 outer_state1_sz;
 __u8 outer_res_sz;
 __u8 outer_prefix_offset;
};

#define ICP_QAT_FW_AUTH_HDR_FLAG_DO_NESTED 1
#define ICP_QAT_FW_AUTH_HDR_FLAG_NO_NESTED 0
#define ICP_QAT_FW_CCM_GCM_AAD_SZ_MAX 240
#define ICP_QAT_FW_HASH_REQUEST_PARAMETERS_OFFSET \
 (sizeof(struct icp_qat_fw_la_cipher_req_params_t))
#define ICP_QAT_FW_CIPHER_REQUEST_PARAMETERS_OFFSET (0)

struct icp_qat_fw_la_cipher_req_params {
 __u32 cipher_offset;
 __u32 cipher_length;
 union {
  __u32 cipher_IV_array[ICP_QAT_FW_NUM_LONGWORDS_4];
  struct {
   __u64 cipher_IV_ptr;
   __u64 resrvd1;
  } s;
 } u;
};

struct icp_qat_fw_la_auth_req_params {
 __u32 auth_off;
 __u32 auth_len;
 union {
  __u64 auth_partial_st_prefix;
  __u64 aad_adr;
 } u1;
 __u64 auth_res_addr;
 union {
  __u8 inner_prefix_sz;
  __u8 aad_sz;
 } u2;
 __u8 resrvd1;
 __u8 hash_state_sz;
 __u8 auth_res_sz;
} __packed;

struct icp_qat_fw_la_auth_req_params_resrvd_flds {
 __u32 resrvd[ICP_QAT_FW_NUM_LONGWORDS_6];
 union {
  __u8 inner_prefix_sz;
  __u8 aad_sz;
 } u2;
 __u8 resrvd1;
 __u16 resrvd2;
};

struct icp_qat_fw_la_resp {
 struct icp_qat_fw_comn_resp_hdr comn_resp;
 __u64 opaque_data;
 __u32 resrvd[ICP_QAT_FW_NUM_LONGWORDS_4];
};

#define ICP_QAT_FW_CIPHER_NEXT_ID_GET(cd_ctrl_hdr_t) \
 ((((cd_ctrl_hdr_t)->next_curr_id_cipher) & \
   ICP_QAT_FW_COMN_NEXT_ID_MASK) >> (ICP_QAT_FW_COMN_NEXT_ID_BITPOS))

#define ICP_QAT_FW_CIPHER_NEXT_ID_SET(cd_ctrl_hdr_t, val) \
{ (cd_ctrl_hdr_t)->next_curr_id_cipher = \
 ((((cd_ctrl_hdr_t)->next_curr_id_cipher) \
 & ICP_QAT_FW_COMN_CURR_ID_MASK) | \
 ((val << ICP_QAT_FW_COMN_NEXT_ID_BITPOS) \
 & ICP_QAT_FW_COMN_NEXT_ID_MASK)) }

#define ICP_QAT_FW_CIPHER_CURR_ID_GET(cd_ctrl_hdr_t) \
 (((cd_ctrl_hdr_t)->next_curr_id_cipher) \
 & ICP_QAT_FW_COMN_CURR_ID_MASK)

#define ICP_QAT_FW_CIPHER_CURR_ID_SET(cd_ctrl_hdr_t, val) \
{ (cd_ctrl_hdr_t)->next_curr_id_cipher = \
 ((((cd_ctrl_hdr_t)->next_curr_id_cipher) \
 & ICP_QAT_FW_COMN_NEXT_ID_MASK) | \
 ((val) & ICP_QAT_FW_COMN_CURR_ID_MASK)) }

#define ICP_QAT_FW_AUTH_NEXT_ID_GET(cd_ctrl_hdr_t) \
 ((((cd_ctrl_hdr_t)->next_curr_id_auth) & ICP_QAT_FW_COMN_NEXT_ID_MASK) \
 >> (ICP_QAT_FW_COMN_NEXT_ID_BITPOS))

#define ICP_QAT_FW_AUTH_NEXT_ID_SET(cd_ctrl_hdr_t, val) \
{ (cd_ctrl_hdr_t)->next_curr_id_auth = \
 ((((cd_ctrl_hdr_t)->next_curr_id_auth) \
 & ICP_QAT_FW_COMN_CURR_ID_MASK) | \
 ((val << ICP_QAT_FW_COMN_NEXT_ID_BITPOS) \
 & ICP_QAT_FW_COMN_NEXT_ID_MASK)) }

#define ICP_QAT_FW_AUTH_CURR_ID_GET(cd_ctrl_hdr_t) \
 (((cd_ctrl_hdr_t)->next_curr_id_auth) \
 & ICP_QAT_FW_COMN_CURR_ID_MASK)

#define ICP_QAT_FW_AUTH_CURR_ID_SET(cd_ctrl_hdr_t, val) \
{ (cd_ctrl_hdr_t)->next_curr_id_auth = \
 ((((cd_ctrl_hdr_t)->next_curr_id_auth) \
 & ICP_QAT_FW_COMN_NEXT_ID_MASK) | \
 ((val) & ICP_QAT_FW_COMN_CURR_ID_MASK)) }

#endif

Messung V0.5
C=95 H=93 G=93

¤ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.