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

Quelle  cptvf_algs.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (C) 2016 Cavium, Inc.
 */


#ifndef _CPTVF_ALGS_H_
#define _CPTVF_ALGS_H_

#include "request_manager.h"

#define MAX_DEVICES 16
#define MAJOR_OP_FC 0x33
#define MAX_ENC_KEY_SIZE 32
#define MAX_HASH_KEY_SIZE 64
#define MAX_KEY_SIZE (MAX_ENC_KEY_SIZE + MAX_HASH_KEY_SIZE)
#define CONTROL_WORD_LEN 8
#define KEY2_OFFSET 48

#define DMA_MODE_FLAG(dma_mode) \
 (((dma_mode) == DMA_GATHER_SCATTER) ? (1 << 7) : 0)

enum req_type {
 AE_CORE_REQ,
 SE_CORE_REQ,
};

enum cipher_type {
 DES3_CBC = 0x1,
 DES3_ECB = 0x2,
 AES_CBC = 0x3,
 AES_ECB = 0x4,
 AES_CFB = 0x5,
 AES_CTR = 0x6,
 AES_GCM = 0x7,
 AES_XTS = 0x8
};

enum aes_type {
 AES_128_BIT = 0x1,
 AES_192_BIT = 0x2,
 AES_256_BIT = 0x3
};

union encr_ctrl {
 u64 flags;
 struct {
#if defined(__BIG_ENDIAN_BITFIELD)
  u64 enc_cipher:4;
  u64 reserved1:1;
  u64 aes_key:2;
  u64 iv_source:1;
  u64 hash_type:4;
  u64 reserved2:3;
  u64 auth_input_type:1;
  u64 mac_len:8;
  u64 reserved3:8;
  u64 encr_offset:16;
  u64 iv_offset:8;
  u64 auth_offset:8;
#else
  u64 auth_offset:8;
  u64 iv_offset:8;
  u64 encr_offset:16;
  u64 reserved3:8;
  u64 mac_len:8;
  u64 auth_input_type:1;
  u64 reserved2:3;
  u64 hash_type:4;
  u64 iv_source:1;
  u64 aes_key:2;
  u64 reserved1:1;
  u64 enc_cipher:4;
#endif
 } e;
};

struct cvm_cipher {
 const char *name;
 u8 value;
};

struct enc_context {
 union encr_ctrl enc_ctrl;
 u8 encr_key[32];
 u8 encr_iv[16];
};

struct fchmac_context {
 u8 ipad[64];
 u8 opad[64]; /* or OPAD */
};

struct fc_context {
 struct enc_context enc;
 struct fchmac_context hmac;
};

struct cvm_enc_ctx {
 u32 key_len;
 u8 enc_key[MAX_KEY_SIZE];
 u8 cipher_type:4;
 u8 key_type:2;
};

struct cvm_des3_ctx {
 u32 key_len;
 u8 des3_key[MAX_KEY_SIZE];
};

struct cvm_req_ctx {
 struct cpt_request_info cpt_req;
 u64 control_word;
 struct fc_context fctx;
};

int cptvf_do_request(void *cptvf, struct cpt_request_info *req);
#endif /*_CPTVF_ALGS_H_*/

Messung V0.5
C=95 H=91 G=92

¤ Dauer der Verarbeitung: 0.4 Sekunden  ¤

*© 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.