1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 
5 /*
6  * ciferfam.h - cipher familie IDs used for configuring ciphers for export
7  *              control
8  */
9 
10 #ifndef _CIFERFAM_H_
11 #define _CIFERFAM_H_
12 
13 #include "utilrename.h"
14 /* Cipher Suite "Families" */
15 #define CIPHER_FAMILY_PKCS12 "PKCS12"
16 #define CIPHER_FAMILY_SMIME "SMIME"
17 #define CIPHER_FAMILY_SSL2 "SSLv2" /* deprecated */
18 #define CIPHER_FAMILY_SSL3 "SSLv3"
19 #define CIPHER_FAMILY_SSL "SSL"
20 #define CIPHER_FAMILY_ALL ""
21 #define CIPHER_FAMILY_UNKNOWN "UNKNOWN"
22 
23 #define CIPHER_FAMILYID_MASK 0xFFFF0000L
24 #define CIPHER_FAMILYID_SSL 0x00000000L
25 #define CIPHER_FAMILYID_SMIME 0x00010000L
26 #define CIPHER_FAMILYID_PKCS12 0x00020000L
27 
28 /* SMIME "Cipher Suites" */
29 /*
30  * Note that it is assumed that the cipher number itself can be used
31  * as a bit position in a mask, and that mask is currently 32 bits wide.
32  * So, if you want to add a cipher that is greater than 0037, secmime.c
33  * needs to be made smarter at the same time.
34  */
35 #define SMIME_RC2_CBC_40 (CIPHER_FAMILYID_SMIME | 0001)
36 #define SMIME_RC2_CBC_64 (CIPHER_FAMILYID_SMIME | 0002)
37 #define SMIME_RC2_CBC_128 (CIPHER_FAMILYID_SMIME | 0003)
38 #define SMIME_DES_CBC_56 (CIPHER_FAMILYID_SMIME | 0011)
39 #define SMIME_DES_EDE3_168 (CIPHER_FAMILYID_SMIME | 0012)
40 #define SMIME_AES_CBC_128 (CIPHER_FAMILYID_SMIME | 0013)
41 #define SMIME_AES_CBC_256 (CIPHER_FAMILYID_SMIME | 0014)
42 #define SMIME_RC5PAD_64_16_40 (CIPHER_FAMILYID_SMIME | 0021)
43 #define SMIME_RC5PAD_64_16_64 (CIPHER_FAMILYID_SMIME | 0022)
44 #define SMIME_RC5PAD_64_16_128 (CIPHER_FAMILYID_SMIME | 0023)
45 #define SMIME_FORTEZZA (CIPHER_FAMILYID_SMIME | 0031)
46 
47 /* PKCS12 "Cipher Suites" */
48 
49 #define PKCS12_RC2_CBC_40 (CIPHER_FAMILYID_PKCS12 | 0001)
50 #define PKCS12_RC2_CBC_128 (CIPHER_FAMILYID_PKCS12 | 0002)
51 #define PKCS12_RC4_40 (CIPHER_FAMILYID_PKCS12 | 0011)
52 #define PKCS12_RC4_128 (CIPHER_FAMILYID_PKCS12 | 0012)
53 #define PKCS12_DES_56 (CIPHER_FAMILYID_PKCS12 | 0021)
54 #define PKCS12_DES_EDE3_168 (CIPHER_FAMILYID_PKCS12 | 0022)
55 #define PKCS12_AES_CBC_128 (CIPHER_FAMILYID_PKCS12 | 0031)
56 #define PKCS12_AES_CBC_192 (CIPHER_FAMILYID_PKCS12 | 0032)
57 #define PKCS12_AES_CBC_256 (CIPHER_FAMILYID_PKCS12 | 0033)
58 
59 /* SMIME version numbers are negative, to avoid colliding with SSL versions */
60 #define SMIME_LIBRARY_VERSION_1_0 -0x0100
61 
62 #endif /* _CIFERFAM_H_ */
63