Quelle eip93-regs.h
Sprache: C
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright ( C ) 2019 - 2021
*
* Richard van Schagen < vschagen @ icloud . com >
* Christian Marangi < ansuelsmth @ gmail . com
*/
#ifndef REG_EIP93_H
#define REG_EIP93_H
#define EIP93_REG_PE_CTRL_STAT 0 x0
#define EIP93_PE_CTRL_PE_PAD_CTRL_STAT GENMASK(31 , 24 )
#define EIP93_PE_CTRL_PE_EXT_ERR_CODE GENMASK(23 , 20 )
#define EIP93_PE_CTRL_PE_EXT_ERR_PROCESSING 0 x8
#define EIP93_PE_CTRL_PE_EXT_ERR_BLOCK_SIZE_ERR 0 x7
#define EIP93_PE_CTRL_PE_EXT_ERR_INVALID_PK_LENGTH 0 x6
#define EIP93_PE_CTRL_PE_EXT_ERR_ZERO_LENGTH 0 x5
#define EIP93_PE_CTRL_PE_EXT_ERR_SPI 0 x4
#define EIP93_PE_CTRL_PE_EXT_ERR_INVALID_CRYPTO_ALGO 0 x3
#define EIP93_PE_CTRL_PE_EXT_ERR_INVALID_CRYPTO_OP 0 x2
#define EIP93_PE_CTRL_PE_EXT_ERR_DESC_OWNER 0 x1
#define EIP93_PE_CTRL_PE_EXT_ERR_BUS 0 x0
#define EIP93_PE_CTRL_PE_EXT_ERR BIT(19 )
#define EIP93_PE_CTRL_PE_SEQNUM_ERR BIT(18 )
#define EIP93_PE_CTRL_PE_PAD_ERR BIT(17 )
#define EIP93_PE_CTRL_PE_AUTH_ERR BIT(16 )
#define EIP93_PE_CTRL_PE_PAD_VALUE GENMASK(15 , 8 )
#define EIP93_PE_CTRL_PE_PRNG_MODE GENMASK(7 , 6 )
#define EIP93_PE_CTRL_PE_HASH_FINAL BIT(4 )
#define EIP93_PE_CTRL_PE_INIT_ARC4 BIT(3 )
#define EIP93_PE_CTRL_PE_READY_DES_TRING_OWN GENMASK(1 , 0 )
#define EIP93_PE_CTRL_PE_READY 0 x2
#define EIP93_PE_CTRL_HOST_READY 0 x1
#define EIP93_REG_PE_SOURCE_ADDR 0 x4
#define EIP93_REG_PE_DEST_ADDR 0 x8
#define EIP93_REG_PE_SA_ADDR 0 xc
#define EIP93_REG_PE_ADDR 0 x10 /* STATE_ADDR */
/*
* Special implementation for user ID
* user_id in eip93_descriptor is used to identify the
* descriptor and is opaque and can be used by the driver
* in custom way .
*
* The usage of this should be to put an address to the crypto
* request struct from the kernel but this can ' t work in 64 bit
* world .
*
* Also it ' s required to put some flags to identify the last
* descriptor .
*
* To handle this , split the u32 in 2 part :
* - 31 : 16 descriptor flags
* - 15 : 0 IDR to connect the crypto request address
*/
#define EIP93_REG_PE_USER_ID 0 x18
#define EIP93_PE_USER_ID_DESC_FLAGS GENMASK(31 , 16 )
#define EIP93_PE_USER_ID_CRYPTO_IDR GENMASK(15 , 0 )
#define EIP93_REG_PE_LENGTH 0 x1c
#define EIP93_PE_LENGTH_BYPASS GENMASK(31 , 24 )
#define EIP93_PE_LENGTH_HOST_PE_READY GENMASK(23 , 22 )
#define EIP93_PE_LENGTH_PE_READY 0 x2
#define EIP93_PE_LENGTH_HOST_READY 0 x1
#define EIP93_PE_LENGTH_LENGTH GENMASK(19 , 0 )
/* PACKET ENGINE RING configuration registers */
#define EIP93_REG_PE_CDR_BASE 0 x80
#define EIP93_REG_PE_RDR_BASE 0 x84
#define EIP93_REG_PE_RING_CONFIG 0 x88
#define EIP93_PE_EN_EXT_TRIG BIT(31 )
/* Absent in later revision of eip93 */
/* #define EIP93_PE_RING_OFFSET GENMASK(23, 15) */
#define EIP93_PE_RING_SIZE GENMASK(9 , 0 )
#define EIP93_REG_PE_RING_THRESH 0 x8c
#define EIPR93_PE_TIMEROUT_EN BIT(31 )
#define EIPR93_PE_RD_TIMEOUT GENMASK(29 , 26 )
#define EIPR93_PE_RDR_THRESH GENMASK(25 , 16 )
#define EIPR93_PE_CDR_THRESH GENMASK(9 , 0 )
#define EIP93_REG_PE_CD_COUNT 0 x90
#define EIP93_PE_CD_COUNT GENMASK(10 , 0 )
/*
* In the same register , writing a value in GENMASK ( 7 , 0 ) will
* increment the descriptor count and start DMA action .
*/
#define EIP93_PE_CD_COUNT_INCR GENMASK(7 , 0 )
#define EIP93_REG_PE_RD_COUNT 0 x94
#define EIP93_PE_RD_COUNT GENMASK(10 , 0 )
/*
* In the same register , writing a value in GENMASK ( 7 , 0 ) will
* increment the descriptor count and start DMA action .
*/
#define EIP93_PE_RD_COUNT_INCR GENMASK(7 , 0 )
#define EIP93_REG_PE_RING_RW_PNTR 0 x98 /* RING_PNTR */
/* PACKET ENGINE configuration registers */
#define EIP93_REG_PE_CONFIG 0 x100
#define EIP93_PE_CONFIG_SWAP_TARGET BIT(20 )
#define EIP93_PE_CONFIG_SWAP_DATA BIT(18 )
#define EIP93_PE_CONFIG_SWAP_SA BIT(17 )
#define EIP93_PE_CONFIG_SWAP_CDRD BIT(16 )
#define EIP93_PE_CONFIG_EN_CDR_UPDATE BIT(10 )
#define EIP93_PE_CONFIG_PE_MODE GENMASK(9 , 8 )
#define EIP93_PE_TARGET_AUTO_RING_MODE FIELD_PREP(EIP93_PE_CONFIG_PE_MODE, 0 x3)
#define EIP93_PE_TARGET_COMMAND_NO_RDR_MODE FIELD_PREP(EIP93_PE_CONFIG_PE_MODE, 0 x2)
#define EIP93_PE_TARGET_COMMAND_WITH_RDR_MODE FIELD_PREP(EIP93_PE_CONFIG_PE_MODE, 0 x1)
#define EIP93_PE_DIRECT_HOST_MODE FIELD_PREP(EIP93_PE_CONFIG_PE_MODE, 0 x0)
#define EIP93_PE_CONFIG_RST_RING BIT(2 )
#define EIP93_PE_CONFIG_RST_PE BIT(0 )
#define EIP93_REG_PE_STATUS 0 x104
#define EIP93_REG_PE_BUF_THRESH 0 x10c
#define EIP93_PE_OUTBUF_THRESH GENMASK(23 , 16 )
#define EIP93_PE_INBUF_THRESH GENMASK(7 , 0 )
#define EIP93_REG_PE_INBUF_COUNT 0 x100
#define EIP93_REG_PE_OUTBUF_COUNT 0 x114
#define EIP93_REG_PE_BUF_RW_PNTR 0 x118 /* BUF_PNTR */
/* PACKET ENGINE endian config */
#define EIP93_REG_PE_ENDIAN_CONFIG 0 x1cc
#define EIP93_AIROHA_REG_PE_ENDIAN_CONFIG 0 x1d0
#define EIP93_PE_ENDIAN_TARGET_BYTE_SWAP GENMASK(23 , 16 )
#define EIP93_PE_ENDIAN_MASTER_BYTE_SWAP GENMASK(7 , 0 )
/*
* Byte goes 2 and 2 and are referenced by ID
* Split GENMASK ( 7 , 0 ) in 4 part , one for each byte .
* Example LITTLE ENDIAN : Example BIG ENDIAN
* GENMASK ( 7 , 6 ) 0 x3 GENMASK ( 7 , 6 ) 0 x0
* GENMASK ( 5 , 4 ) 0 x2 GENMASK ( 7 , 6 ) 0 x1
* GENMASK ( 3 , 2 ) 0 x1 GENMASK ( 3 , 2 ) 0 x2
* GENMASK ( 1 , 0 ) 0 x0 GENMASK ( 1 , 0 ) 0 x3
*/
#define EIP93_PE_ENDIAN_BYTE0 0 x0
#define EIP93_PE_ENDIAN_BYTE1 0 x1
#define EIP93_PE_ENDIAN_BYTE2 0 x2
#define EIP93_PE_ENDIAN_BYTE3 0 x3
/* EIP93 CLOCK control registers */
#define EIP93_REG_PE_CLOCK_CTRL 0 x1e8
#define EIP93_PE_CLOCK_EN_HASH_CLK BIT(4 )
#define EIP93_PE_CLOCK_EN_ARC4_CLK BIT(3 )
#define EIP93_PE_CLOCK_EN_AES_CLK BIT(2 )
#define EIP93_PE_CLOCK_EN_DES_CLK BIT(1 )
#define EIP93_PE_CLOCK_EN_PE_CLK BIT(0 )
/* EIP93 Device Option and Revision Register */
#define EIP93_REG_PE_OPTION_1 0 x1f4
#define EIP93_PE_OPTION_MAC_KEY256 BIT(31 )
#define EIP93_PE_OPTION_MAC_KEY192 BIT(30 )
#define EIP93_PE_OPTION_MAC_KEY128 BIT(29 )
#define EIP93_PE_OPTION_AES_CBC_MAC BIT(28 )
#define EIP93_PE_OPTION_AES_XCBX BIT(23 )
#define EIP93_PE_OPTION_SHA_256 BIT(19 )
#define EIP93_PE_OPTION_SHA_224 BIT(18 )
#define EIP93_PE_OPTION_SHA_1 BIT(17 )
#define EIP93_PE_OPTION_MD5 BIT(16 )
#define EIP93_PE_OPTION_AES_KEY256 BIT(15 )
#define EIP93_PE_OPTION_AES_KEY192 BIT(14 )
#define EIP93_PE_OPTION_AES_KEY128 BIT(13 )
#define EIP93_PE_OPTION_AES BIT(2 )
#define EIP93_PE_OPTION_ARC4 BIT(1 )
#define EIP93_PE_OPTION_TDES BIT(0 ) /* DES and TDES */
#define EIP93_REG_PE_OPTION_0 0 x1f8
#define EIP93_REG_PE_REVISION 0 x1fc
#define EIP93_PE_REVISION_MAJ_HW_REV GENMASK(27 , 24 )
#define EIP93_PE_REVISION_MIN_HW_REV GENMASK(23 , 20 )
#define EIP93_PE_REVISION_HW_PATCH GENMASK(19 , 16 )
#define EIP93_PE_REVISION_EIP_NO GENMASK(7 , 0 )
/* EIP93 Interrupt Control Register */
#define EIP93_REG_INT_UNMASK_STAT 0 x200
#define EIP93_REG_INT_MASK_STAT 0 x204
#define EIP93_REG_INT_CLR 0 x204
#define EIP93_REG_INT_MASK 0 x208 /* INT_EN */
/* Each int reg have the same bitmap */
#define EIP93_INT_INTERFACE_ERR BIT(18 )
#define EIP93_INT_RPOC_ERR BIT(17 )
#define EIP93_INT_PE_RING_ERR BIT(16 )
#define EIP93_INT_HALT BIT(15 )
#define EIP93_INT_OUTBUF_THRESH BIT(11 )
#define EIP93_INT_INBUF_THRESH BIT(10 )
#define EIP93_INT_OPERATION_DONE BIT(9 )
#define EIP93_INT_RDR_THRESH BIT(1 )
#define EIP93_INT_CDR_THRESH BIT(0 )
#define EIP93_INT_ALL (EIP93_INT_INTERFACE_ERR | \
EIP93_INT_RPOC_ERR | \
EIP93_INT_PE_RING_ERR | \
EIP93_INT_HALT | \
EIP93_INT_OUTBUF_THRESH | \
EIP93_INT_INBUF_THRESH | \
EIP93_INT_OPERATION_DONE | \
EIP93_INT_RDR_THRESH | \
EIP93_INT_CDR_THRESH)
#define EIP93_REG_INT_CFG 0 x20c
#define EIP93_INT_TYPE_PULSE BIT(0 )
#define EIP93_REG_MASK_ENABLE 0 x210
#define EIP93_REG_MASK_DISABLE 0 x214
/* EIP93 SA Record register */
#define EIP93_REG_SA_CMD_0 0 x400
#define EIP93_SA_CMD_SAVE_HASH BIT(29 )
#define EIP93_SA_CMD_SAVE_IV BIT(28 )
#define EIP93_SA_CMD_HASH_SOURCE GENMASK(27 , 26 )
#define EIP93_SA_CMD_HASH_NO_LOAD FIELD_PREP(EIP93_SA_CMD_HASH_SOURCE, 0 x3)
#define EIP93_SA_CMD_HASH_FROM_STATE FIELD_PREP(EIP93_SA_CMD_HASH_SOURCE, 0 x2)
#define EIP93_SA_CMD_HASH_FROM_SA FIELD_PREP(EIP93_SA_CMD_HASH_SOURCE, 0 x0)
#define EIP93_SA_CMD_IV_SOURCE GENMASK(25 , 24 )
#define EIP93_SA_CMD_IV_FROM_PRNG FIELD_PREP(EIP93_SA_CMD_IV_SOURCE, 0 x3)
#define EIP93_SA_CMD_IV_FROM_STATE FIELD_PREP(EIP93_SA_CMD_IV_SOURCE, 0 x2)
#define EIP93_SA_CMD_IV_FROM_INPUT FIELD_PREP(EIP93_SA_CMD_IV_SOURCE, 0 x1)
#define EIP93_SA_CMD_IV_NO_LOAD FIELD_PREP(EIP93_SA_CMD_IV_SOURCE, 0 x0)
#define EIP93_SA_CMD_DIGEST_LENGTH GENMASK(23 , 20 )
#define EIP93_SA_CMD_DIGEST_10WORD FIELD_PREP(EIP93_SA_CMD_DIGEST_LENGTH, 0 xa) /* SRTP and TLS */
#define EIP93_SA_CMD_DIGEST_8WORD FIELD_PREP(EIP93_SA_CMD_DIGEST_LENGTH, 0 x8) /* SHA-256 */
#define EIP93_SA_CMD_DIGEST_7WORD FIELD_PREP(EIP93_SA_CMD_DIGEST_LENGTH, 0 x7) /* SHA-224 */
#define EIP93_SA_CMD_DIGEST_6WORD FIELD_PREP(EIP93_SA_CMD_DIGEST_LENGTH, 0 x6)
#define EIP93_SA_CMD_DIGEST_5WORD FIELD_PREP(EIP93_SA_CMD_DIGEST_LENGTH, 0 x5) /* SHA1 */
#define EIP93_SA_CMD_DIGEST_4WORD FIELD_PREP(EIP93_SA_CMD_DIGEST_LENGTH, 0 x4) /* MD5 and AES-based */
#define EIP93_SA_CMD_DIGEST_3WORD_IPSEC FIELD_PREP(EIP93_SA_CMD_DIGEST_LENGTH, 0 x3) /* IPSEC */
#define EIP93_SA_CMD_DIGEST_2WORD FIELD_PREP(EIP93_SA_CMD_DIGEST_LENGTH, 0 x2)
#define EIP93_SA_CMD_DIGEST_1WORD FIELD_PREP(EIP93_SA_CMD_DIGEST_LENGTH, 0 x1)
#define EIP93_SA_CMD_DIGEST_3WORD FIELD_PREP(EIP93_SA_CMD_DIGEST_LENGTH, 0 x0) /* 96bit output */
#define EIP93_SA_CMD_HDR_PROC BIT(19 )
#define EIP93_SA_CMD_EXT_PAD BIT(18 )
#define EIP93_SA_CMD_SCPAD BIT(17 )
#define EIP93_SA_CMD_HASH GENMASK(15 , 12 )
#define EIP93_SA_CMD_HASH_NULL FIELD_PREP(EIP93_SA_CMD_HASH, 0 xf)
#define EIP93_SA_CMD_HASH_SHA256 FIELD_PREP(EIP93_SA_CMD_HASH, 0 x3)
#define EIP93_SA_CMD_HASH_SHA224 FIELD_PREP(EIP93_SA_CMD_HASH, 0 x2)
#define EIP93_SA_CMD_HASH_SHA1 FIELD_PREP(EIP93_SA_CMD_HASH, 0 x1)
#define EIP93_SA_CMD_HASH_MD5 FIELD_PREP(EIP93_SA_CMD_HASH, 0 x0)
#define EIP93_SA_CMD_CIPHER GENMASK(11 , 8 )
#define EIP93_SA_CMD_CIPHER_NULL FIELD_PREP(EIP93_SA_CMD_CIPHER, 0 xf)
#define EIP93_SA_CMD_CIPHER_AES FIELD_PREP(EIP93_SA_CMD_CIPHER, 0 x3)
#define EIP93_SA_CMD_CIPHER_ARC4 FIELD_PREP(EIP93_SA_CMD_CIPHER, 0 x2)
#define EIP93_SA_CMD_CIPHER_3DES FIELD_PREP(EIP93_SA_CMD_CIPHER, 0 x1)
#define EIP93_SA_CMD_CIPHER_DES FIELD_PREP(EIP93_SA_CMD_CIPHER, 0 x0)
#define EIP93_SA_CMD_PAD_TYPE GENMASK(7 , 6 )
#define EIP93_SA_CMD_PAD_CONST_SSL FIELD_PREP(EIP93_SA_CMD_PAD_TYPE, 0 x6)
#define EIP93_SA_CMD_PAD_TLS_DTLS FIELD_PREP(EIP93_SA_CMD_PAD_TYPE, 0 x5)
#define EIP93_SA_CMD_PAD_ZERO FIELD_PREP(EIP93_SA_CMD_PAD_TYPE, 0 x3)
#define EIP93_SA_CMD_PAD_CONST FIELD_PREP(EIP93_SA_CMD_PAD_TYPE, 0 x2)
#define EIP93_SA_CMD_PAD_PKCS7 FIELD_PREP(EIP93_SA_CMD_PAD_TYPE, 0 x1)
#define EIP93_SA_CMD_PAD_IPSEC FIELD_PREP(EIP93_SA_CMD_PAD_TYPE, 0 x0)
#define EIP93_SA_CMD_OPGROUP GENMASK(5 , 4 )
#define EIP93_SA_CMD_OP_EXT FIELD_PREP(EIP93_SA_CMD_OPGROUP, 0 x2)
#define EIP93_SA_CMD_OP_PROTOCOL FIELD_PREP(EIP93_SA_CMD_OPGROUP, 0 x1)
#define EIP93_SA_CMD_OP_BASIC FIELD_PREP(EIP93_SA_CMD_OPGROUP, 0 x0)
#define EIP93_SA_CMD_DIRECTION_IN BIT(3 ) /* 0: outbount 1: inbound */
#define EIP93_SA_CMD_OPCODE GENMASK(2 , 0 )
#define EIP93_SA_CMD_OPCODE_BASIC_OUT_PRNG 0 x7
#define EIP93_SA_CMD_OPCODE_BASIC_OUT_HASH 0 x3
#define EIP93_SA_CMD_OPCODE_BASIC_OUT_ENC_HASH 0 x1
#define EIP93_SA_CMD_OPCODE_BASIC_OUT_ENC 0 x0
#define EIP93_SA_CMD_OPCODE_BASIC_IN_HASH 0 x3
#define EIP93_SA_CMD_OPCODE_BASIC_IN_HASH_DEC 0 x1
#define EIP93_SA_CMD_OPCODE_BASIC_IN_DEC 0 x0
#define EIP93_SA_CMD_OPCODE_PROTOCOL_OUT_ESP 0 x0
#define EIP93_SA_CMD_OPCODE_PROTOCOL_OUT_SSL 0 x4
#define EIP93_SA_CMD_OPCODE_PROTOCOL_OUT_TLS 0 x5
#define EIP93_SA_CMD_OPCODE_PROTOCOL_OUT_SRTP 0 x7
#define EIP93_SA_CMD_OPCODE_PROTOCOL_IN_ESP 0 x0
#define EIP93_SA_CMD_OPCODE_PROTOCOL_IN_SSL 0 x2
#define EIP93_SA_CMD_OPCODE_PROTOCOL_IN_TLS 0 x3
#define EIP93_SA_CMD_OPCODE_PROTOCOL_IN_SRTP 0 x7
#define EIP93_SA_CMD_OPCODE_EXT_OUT_DTSL 0 x1
#define EIP93_SA_CMD_OPCODE_EXT_OUT_SSL 0 x4
#define EIP93_SA_CMD_OPCODE_EXT_OUT_TLSV10 0 x5
#define EIP93_SA_CMD_OPCODE_EXT_OUT_TLSV11 0 x6
#define EIP93_SA_CMD_OPCODE_EXT_IN_DTSL 0 x1
#define EIP93_SA_CMD_OPCODE_EXT_IN_SSL 0 x4
#define EIP93_SA_CMD_OPCODE_EXT_IN_TLSV10 0 x5
#define EIP93_SA_CMD_OPCODE_EXT_IN_TLSV11 0 x6
#define EIP93_REG_SA_CMD_1 0 x404
#define EIP93_SA_CMD_EN_SEQNUM_CHK BIT(29 )
/* This mask can be either used for ARC4 or AES */
#define EIP93_SA_CMD_ARC4_KEY_LENGHT GENMASK(28 , 24 )
#define EIP93_SA_CMD_AES_DEC_KEY BIT(28 ) /* 0: encrypt key 1: decrypt key */
#define EIP93_SA_CMD_AES_KEY_LENGTH GENMASK(26 , 24 )
#define EIP93_SA_CMD_AES_KEY_256BIT FIELD_PREP(EIP93_SA_CMD_AES_KEY_LENGTH, 0 x4)
#define EIP93_SA_CMD_AES_KEY_192BIT FIELD_PREP(EIP93_SA_CMD_AES_KEY_LENGTH, 0 x3)
#define EIP93_SA_CMD_AES_KEY_128BIT FIELD_PREP(EIP93_SA_CMD_AES_KEY_LENGTH, 0 x2)
#define EIP93_SA_CMD_HASH_CRYPT_OFFSET GENMASK(23 , 16 )
#define EIP93_SA_CMD_BYTE_OFFSET BIT(13 ) /* 0: CRYPT_OFFSET in 32bit word 1: CRYPT_OFFSET in 8bit bytes */
#define EIP93_SA_CMD_HMAC BIT(12 )
#define EIP93_SA_CMD_SSL_MAC BIT(12 )
/* This mask can be either used for ARC4 or AES */
#define EIP93_SA_CMD_CHIPER_MODE GENMASK(9 , 8 )
/* AES or DES operations */
#define EIP93_SA_CMD_CHIPER_MODE_ICM FIELD_PREP(EIP93_SA_CMD_CHIPER_MODE, 0 x3)
#define EIP93_SA_CMD_CHIPER_MODE_CTR FIELD_PREP(EIP93_SA_CMD_CHIPER_MODE, 0 x2)
#define EIP93_SA_CMD_CHIPER_MODE_CBC FIELD_PREP(EIP93_SA_CMD_CHIPER_MODE, 0 x1)
#define EIP93_SA_CMD_CHIPER_MODE_ECB FIELD_PREP(EIP93_SA_CMD_CHIPER_MODE, 0 x0)
/* ARC4 operations */
#define EIP93_SA_CMD_CHIPER_MODE_STATEFULL FIELD_PREP(EIP93_SA_CMD_CHIPER_MODE, 0 x1)
#define EIP93_SA_CMD_CHIPER_MODE_STATELESS FIELD_PREP(EIP93_SA_CMD_CHIPER_MODE, 0 x0)
#define EIP93_SA_CMD_COPY_PAD BIT(3 )
#define EIP93_SA_CMD_COPY_PAYLOAD BIT(2 )
#define EIP93_SA_CMD_COPY_HEADER BIT(1 )
#define EIP93_SA_CMD_COPY_DIGEST BIT(0 ) /* With this enabled, COPY_PAD is required */
/* State save register */
#define EIP93_REG_STATE_IV_0 0 x500
#define EIP93_REG_STATE_IV_1 0 x504
#define EIP93_REG_PE_ARC4STATE 0 x700
struct sa_record {
u32 sa_cmd0_word;
u32 sa_cmd1_word;
u32 sa_key[8 ];
u8 sa_i_digest[32 ];
u8 sa_o_digest[32 ];
u32 sa_spi;
u32 sa_seqnum[2 ];
u32 sa_seqmum_mask[2 ];
u32 sa_nonce;
} __packed;
struct sa_state {
u32 state_iv[4 ];
u32 state_byte_cnt[2 ];
u8 state_i_digest[32 ];
} __packed;
struct eip93_descriptor {
u32 pe_ctrl_stat_word;
u32 src_addr;
u32 dst_addr;
u32 sa_addr;
u32 state_addr;
u32 arc4_addr;
u32 user_id;
u32 pe_length_word;
} __packed;
#endif
Messung V0.5 in Prozent C=97 H=94 G=95
¤ Dauer der Verarbeitung: 0.7 Sekunden
¤
*© Formatika GbR, Deutschland
2026-10-11
Neuigkeiten
Aktuelles
Motto des Tages
Open Source Software
Jenseits des Üblichen ....
Besucherstatistik
Statistik
#Sources=1127926
#Domains=2039723