Deleted Added
full compact
cryptodev.h (285247) cryptodev.h (285336)
1/* $FreeBSD: head/sys/opencrypto/cryptodev.h 285247 2015-07-07 18:45:32Z jmg $ */
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
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
81/* Maximum hash algorithm result length */
82#define HASH_MAX_LEN SHA2_512_HASH_LEN /* Keep this updated */
83
84/* HMAC values */
85#define NULL_HMAC_BLOCK_LEN 64
86#define MD5_HMAC_BLOCK_LEN 64
87#define SHA1_HMAC_BLOCK_LEN 64
88#define RIPEMD160_HMAC_BLOCK_LEN 64
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
89#define SHA2_256_HMAC_BLOCK_LEN 64
90#define SHA2_384_HMAC_BLOCK_LEN 128
91#define SHA2_512_HMAC_BLOCK_LEN 128
90#define SHA2_256_HMAC_BLOCK_LEN 64
91#define SHA2_384_HMAC_BLOCK_LEN 128
92#define SHA2_512_HMAC_BLOCK_LEN 128
92/* Maximum HMAC block length */
93/* Maximum HMAC block length */
93#define HMAC_MAX_BLOCK_LEN SHA2_512_HMAC_BLOCK_LEN /* Keep this updated */
94#define HMAC_MAX_BLOCK_LEN SHA2_512_HMAC_BLOCK_LEN /* Keep this updated */
94#define HMAC_IPAD_VAL 0x36
95#define HMAC_OPAD_VAL 0x5C
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
96
97/* Encryption algorithm block sizes */
108
109/* Encryption algorithm block sizes */
98#define NULL_BLOCK_LEN 4
99#define DES_BLOCK_LEN 8
100#define DES3_BLOCK_LEN 8
101#define BLOWFISH_BLOCK_LEN 8
102#define SKIPJACK_BLOCK_LEN 8
103#define CAST128_BLOCK_LEN 8
104#define RIJNDAEL128_BLOCK_LEN 16
105#define AES_BLOCK_LEN RIJNDAEL128_BLOCK_LEN
106#define CAMELLIA_BLOCK_LEN 16
107#define EALG_MAX_BLOCK_LEN AES_BLOCK_LEN /* Keep this updated */
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 */
108
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
109/* Maximum hash algorithm result length */
156/* Maximum hash algorithm result length */
110#define AALG_MAX_RESULT_LEN 64 /* Keep this updated */
157#define AALG_MAX_RESULT_LEN 64 /* Keep this updated */
111
112#define CRYPTO_ALGORITHM_MIN 1
113#define CRYPTO_DES_CBC 1
114#define CRYPTO_3DES_CBC 2
115#define CRYPTO_BLF_CBC 3
116#define CRYPTO_CAST_CBC 4
117#define CRYPTO_SKIPJACK_CBC 5
118#define CRYPTO_MD5_HMAC 6

--- 17 unchanged lines hidden (view full) ---

136#define CRYPTO_AES_ICM 23 /* commonly known as CTR mode */
137#define CRYPTO_AES_NIST_GMAC 24 /* cipher side */
138#define CRYPTO_AES_NIST_GCM_16 25 /* 16 byte ICV */
139#define CRYPTO_AES_128_NIST_GMAC 26 /* auth side */
140#define CRYPTO_AES_192_NIST_GMAC 27 /* auth side */
141#define CRYPTO_AES_256_NIST_GMAC 28 /* auth side */
142#define CRYPTO_ALGORITHM_MAX 28 /* Keep updated - see below */
143
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
144#define CRYPTO_ALGO_VALID(x) ((x) >= CRYPTO_ALGORITHM_MIN && \
191#define CRYPTO_ALGO_VALID(x) ((x) >= CRYPTO_ALGORITHM_MIN && \
145 (x) <= CRYPTO_ALGORITHM_MAX)
146
147/* Algorithm flags */
148#define CRYPTO_ALG_FLAG_SUPPORTED 0x01 /* Algorithm is supported */
149#define CRYPTO_ALG_FLAG_RNG_ENABLE 0x02 /* Has HW RNG for DH/DSA */
150#define CRYPTO_ALG_FLAG_DSA_SHA 0x04 /* Can do SHA on msg */
151
152/*

--- 326 unchanged lines hidden ---
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 ---