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

Quelle  nx_csbcpb.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */

#ifndef __NX_CSBCPB_H__
#define __NX_CSBCPB_H__

struct cop_symcpb_aes_ecb {
 u8 key[32];
 u8 __rsvd[80];
} __packed;

struct cop_symcpb_aes_cbc {
 u8 iv[16];
 u8 key[32];
 u8 cv[16];
 u32 spbc;
 u8 __rsvd[44];
} __packed;

struct cop_symcpb_aes_gca {
 u8 in_pat[16];
 u8 key[32];
 u8 out_pat[16];
 u32 spbc;
 u8 __rsvd[44];
} __packed;

struct cop_symcpb_aes_gcm {
 u8 in_pat_or_aad[16];
 u8 iv_or_cnt[16];
 u64 bit_length_aad;
 u64 bit_length_data;
 u8 in_s0[16];
 u8 key[32];
 u8 __rsvd1[16];
 u8 out_pat_or_mac[16];
 u8 out_s0[16];
 u8 out_cnt[16];
 u32 spbc;
 u8 __rsvd2[12];
} __packed;

struct cop_symcpb_aes_ctr {
 u8 iv[16];
 u8 key[32];
 u8 cv[16];
 u32 spbc;
 u8 __rsvd2[44];
} __packed;

struct cop_symcpb_aes_cca {
 u8 b0[16];
 u8 b1[16];
 u8 key[16];
 u8 out_pat_or_b0[16];
 u32 spbc;
 u8 __rsvd[44];
} __packed;

struct cop_symcpb_aes_ccm {
 u8 in_pat_or_b0[16];
 u8 iv_or_ctr[16];
 u8 in_s0[16];
 u8 key[16];
 u8 __rsvd1[48];
 u8 out_pat_or_mac[16];
 u8 out_s0[16];
 u8 out_ctr[16];
 u32 spbc;
 u8 __rsvd2[12];
} __packed;

struct cop_symcpb_aes_xcbc {
 u8 cv[16];
 u8 key[16];
 u8 __rsvd1[16];
 u8 out_cv_mac[16];
 u32 spbc;
 u8 __rsvd2[44];
} __packed;

struct cop_symcpb_sha256 {
 u64 message_bit_length;
 u64 __rsvd1;
 u8 input_partial_digest[32];
 u8 message_digest[32];
 u32 spbc;
 u8 __rsvd2[44];
} __packed;

struct cop_symcpb_sha512 {
 u64 message_bit_length_hi;
 u64 message_bit_length_lo;
 u8 input_partial_digest[64];
 u8 __rsvd1[32];
 u8 message_digest[64];
 u32 spbc;
 u8 __rsvd2[76];
} __packed;

#define NX_FDM_INTERMEDIATE  0x01
#define NX_FDM_CONTINUATION  0x02
#define NX_FDM_ENDE_ENCRYPT  0x80

#define NX_CPB_FDM(c)   ((c)->cpb.hdr.fdm)
#define NX_CPB_KS_DS(c)   ((c)->cpb.hdr.ks_ds)

#define NX_CPB_KEY_SIZE(c)  (NX_CPB_KS_DS(c) >> 4)
#define NX_CPB_SET_KEY_SIZE(c, x) NX_CPB_KS_DS(c) |= ((x) << 4)
#define NX_CPB_SET_DIGEST_SIZE(c, x) NX_CPB_KS_DS(c) |= (x)

struct cop_symcpb_header {
 u8 mode;
 u8 fdm;
 u8 ks_ds;
 u8 pad_byte;
 u8 __rsvd[12];
} __packed;

struct cop_parameter_block {
 struct cop_symcpb_header hdr;
 union {
  struct cop_symcpb_aes_ecb  aes_ecb;
  struct cop_symcpb_aes_cbc  aes_cbc;
  struct cop_symcpb_aes_gca  aes_gca;
  struct cop_symcpb_aes_gcm  aes_gcm;
  struct cop_symcpb_aes_cca  aes_cca;
  struct cop_symcpb_aes_ccm  aes_ccm;
  struct cop_symcpb_aes_ctr  aes_ctr;
  struct cop_symcpb_aes_xcbc aes_xcbc;
  struct cop_symcpb_sha256   sha256;
  struct cop_symcpb_sha512   sha512;
 };
} __packed;

#define NX_CSB_VALID_BIT 0x80

/* co-processor status block */
struct cop_status_block {
 u8 valid;
 u8 crb_seq_number;
 u8 completion_code;
 u8 completion_extension;
 __be32 processed_byte_count;
 __be64 address;
} __packed;

/* Nest accelerator workbook section 4.4 */
struct nx_csbcpb {
 unsigned char __rsvd[112];
 struct cop_status_block csb;
 struct cop_parameter_block cpb;
} __packed;

/* nx_csbcpb related definitions */
#define NX_MODE_AES_ECB   0
#define NX_MODE_AES_CBC   1
#define NX_MODE_AES_GMAC  2
#define NX_MODE_AES_GCA   3
#define NX_MODE_AES_GCM   4
#define NX_MODE_AES_CCA   5
#define NX_MODE_AES_CCM   6
#define NX_MODE_AES_CTR   7
#define NX_MODE_AES_XCBC_MAC  20
#define NX_MODE_SHA   0
#define NX_MODE_SHA_HMAC  1
#define NX_MODE_AES_CBC_HMAC_ETA 8
#define NX_MODE_AES_CBC_HMAC_ATE 9
#define NX_MODE_AES_CBC_HMAC_EAA 10
#define NX_MODE_AES_CTR_HMAC_ETA 12
#define NX_MODE_AES_CTR_HMAC_ATE 13
#define NX_MODE_AES_CTR_HMAC_EAA 14

#define NX_FDM_CI_FULL  0
#define NX_FDM_CI_FIRST  1
#define NX_FDM_CI_LAST  2
#define NX_FDM_CI_MIDDLE 3

#define NX_FDM_PR_NONE  0
#define NX_FDM_PR_PAD  1

#define NX_KS_AES_128  1
#define NX_KS_AES_192  2
#define NX_KS_AES_256  3

#define NX_DS_SHA256  2
#define NX_DS_SHA512  3

#define NX_FC_AES  0
#define NX_FC_SHA  2
#define NX_FC_AES_HMAC  6

#define NX_MAX_FC  (NX_FC_AES_HMAC + 1)
#define NX_MAX_MODE  (NX_MODE_AES_XCBC_MAC + 1)

#define HCOP_FC_AES          NX_FC_AES
#define HCOP_FC_SHA          NX_FC_SHA
#define HCOP_FC_AES_HMAC     NX_FC_AES_HMAC

/* indices into the array of algorithm properties */
#define NX_PROPS_AES_128  0
#define NX_PROPS_AES_192  1
#define NX_PROPS_AES_256  2
#define NX_PROPS_SHA256   1
#define NX_PROPS_SHA512   2

#endif

Messung V0.5
C=98 H=100 G=98

¤ Dauer der Verarbeitung: 0.9 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.