1/* $FreeBSD: head/sys/opencrypto/cryptodev.h 285336 2015-07-09 18:16:35Z gnn $ */ |
2/* $OpenBSD: cryptodev.h,v 1.31 2002/06/11 11:14:29 beck Exp $ */ 3 4/*- 5 * The author of this code is Angelos D. Keromytis (angelos@cis.upenn.edu) 6 * Copyright (c) 2002-2006 Sam Leffler, Errno Consulting 7 * 8 * This code was written by Angelos D. Keromytis in Athens, Greece, in 9 * February 2000. Network Security Technologies Inc. (NSTI) kindly --- 63 unchanged lines hidden (view full) --- 73#define MD5_HASH_LEN 16 74#define SHA1_HASH_LEN 20 75#define RIPEMD160_HASH_LEN 20 76#define SHA2_256_HASH_LEN 32 77#define SHA2_384_HASH_LEN 48 78#define SHA2_512_HASH_LEN 64 79#define MD5_KPDK_HASH_LEN 16 80#define SHA1_KPDK_HASH_LEN 20 |
81#define AES_HASH_LEN 16 |
82/* Maximum hash algorithm result length */ 83#define HASH_MAX_LEN SHA2_512_HASH_LEN /* Keep this updated */ 84 85/* HMAC values */ 86#define NULL_HMAC_BLOCK_LEN 64 87#define MD5_HMAC_BLOCK_LEN 64 88#define SHA1_HMAC_BLOCK_LEN 64 89#define RIPEMD160_HMAC_BLOCK_LEN 64 |
90#define SHA2_256_HMAC_BLOCK_LEN 64 91#define SHA2_384_HMAC_BLOCK_LEN 128 92#define SHA2_512_HMAC_BLOCK_LEN 128 |
93/* Maximum HMAC block length */ |
94#define HMAC_MAX_BLOCK_LEN SHA2_512_HMAC_BLOCK_LEN /* Keep this updated */ |
95#define HMAC_IPAD_VAL 0x36 96#define HMAC_OPAD_VAL 0x5C |
97/* HMAC Key Length */ 98#define NULL_HMAC_KEY_LEN 0 99#define MD5_HMAC_KEY_LEN 16 100#define SHA1_HMAC_KEY_LEN 20 101#define RIPEMD160_HMAC_KEY_LEN 20 102#define SHA2_256_HMAC_KEY_LEN 32 103#define SHA2_384_HMAC_KEY_LEN 48 104#define SHA2_512_HMAC_KEY_LEN 64 105#define AES_128_HMAC_KEY_LEN 16 106#define AES_192_HMAC_KEY_LEN 24 107#define AES_256_HMAC_KEY_LEN 32 |
108 109/* Encryption algorithm block sizes */ |
110#define NULL_BLOCK_LEN 4 111#define DES_BLOCK_LEN 8 112#define DES3_BLOCK_LEN 8 113#define BLOWFISH_BLOCK_LEN 8 114#define SKIPJACK_BLOCK_LEN 8 115#define CAST128_BLOCK_LEN 8 116#define RIJNDAEL128_BLOCK_LEN 16 117#define AES_BLOCK_LEN 16 118#define AES_MIN_BLOCK_LEN 1 119#define ARC4_BLOCK_LEN 1 120#define CAMELLIA_BLOCK_LEN 16 121#define EALG_MAX_BLOCK_LEN AES_BLOCK_LEN /* Keep this updated */ |
122 |
123/* IV Lengths */ 124 125#define ARC4_IV_LEN 1 126#define AES_IV_LEN 12 127#define AES_XTS_IV_LEN 8 128#define AES_XTS_ALPHA 0x87 /* GF(2^128) generator polynomial */ 129 130#define AES_CTR_NONCE_SIZE 4 131 132/* Min and Max Encryption Key Sizes */ 133#define NULL_MIN_KEY 0 134#define NULL_MAX_KEY 256 /* 2048 bits, max key */ 135#define DES_MIN_KEY 8 136#define DES_MAX_KEY DES_MIN_KEY 137#define TRIPLE_DES_MIN_KEY 24 138#define TRIPLE_DES_MAX_KEY TRIPLE_DES_MIN_KEY 139#define BLOWFISH_MIN_KEY 5 140#define BLOWFISH_MAX_KEY 56 /* 448 bits, max key */ 141#define CAST_MIN_KEY 5 142#define CAST_MAX_KEY 16 143#define SKIPJACK_MIN_KEY 10 144#define SKIPJACK_MAX_KEY SKIPJACK_MIN_KEY 145#define RIJNDAEL_MIN_KEY 16 146#define RIJNDAEL_MAX_KEY 32 147#define AES_MIN_KEY 16 148#define AES_MAX_KEY 32 149#define AES_XTS_MIN_KEY 32 150#define AES_XTS_MAX_KEY 64 151#define ARC4_MIN_KEY 1 152#define ARC4_MAX_KEY 32 153#define CAMELLIA_MIN_KEY 8 154#define CAMELLIA_MAX_KEY 32 155 |
156/* Maximum hash algorithm result length */ |
157#define AALG_MAX_RESULT_LEN 64 /* Keep this updated */ |
158 159#define CRYPTO_ALGORITHM_MIN 1 160#define CRYPTO_DES_CBC 1 161#define CRYPTO_3DES_CBC 2 162#define CRYPTO_BLF_CBC 3 163#define CRYPTO_CAST_CBC 4 164#define CRYPTO_SKIPJACK_CBC 5 165#define CRYPTO_MD5_HMAC 6 --- 17 unchanged lines hidden (view full) --- 183#define CRYPTO_AES_ICM 23 /* commonly known as CTR mode */ 184#define CRYPTO_AES_NIST_GMAC 24 /* cipher side */ 185#define CRYPTO_AES_NIST_GCM_16 25 /* 16 byte ICV */ 186#define CRYPTO_AES_128_NIST_GMAC 26 /* auth side */ 187#define CRYPTO_AES_192_NIST_GMAC 27 /* auth side */ 188#define CRYPTO_AES_256_NIST_GMAC 28 /* auth side */ 189#define CRYPTO_ALGORITHM_MAX 28 /* Keep updated - see below */ 190 |
191#define CRYPTO_ALGO_VALID(x) ((x) >= CRYPTO_ALGORITHM_MIN && \ |
192 (x) <= CRYPTO_ALGORITHM_MAX) 193 194/* Algorithm flags */ 195#define CRYPTO_ALG_FLAG_SUPPORTED 0x01 /* Algorithm is supported */ 196#define CRYPTO_ALG_FLAG_RNG_ENABLE 0x02 /* Has HW RNG for DH/DSA */ 197#define CRYPTO_ALG_FLAG_DSA_SHA 0x04 /* Can do SHA on msg */ 198 199/* --- 326 unchanged lines hidden --- |