summaryrefslogtreecommitdiff
path: root/common/pkcs11x.h
blob: a1e59716abf29ca9a7ace87df819fb86404a3e0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
/*
 * Copyright (c) 2012 Red Hat Inc.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *     * Redistributions of source code must retain the above
 *       copyright notice, this list of conditions and the
 *       following disclaimer.
 *     * Redistributions in binary form must reproduce the
 *       above copyright notice, this list of conditions and
 *       the following disclaimer in the documentation and/or
 *       other materials provided with the distribution.
 *     * The names of contributors to this software may not be
 *       used to endorse or promote products derived from this
 *       software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
 * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
 * DAMAGE.
 *
 * Author: Stef Walter <stefw@redhat.com>
 */

#ifndef PKCS11_X_H_
#define PKCS11_X_H_ 1

#if defined(__cplusplus)
extern "C" {
#endif

/* -------------------------------------------------------------------
 * NSS TRUST OBJECTS
 *
 * And related, non-standard
 */

/* Define this if you want the NSS specific symbols */
#define CRYPTOKI_NSS_VENDOR_DEFINED 1
#ifdef CRYPTOKI_NSS_VENDOR_DEFINED

/* Various NSS objects */
#define CKO_NETSCAPE_CRL                0xce534351UL
#define CKO_NETSCAPE_SMIME              0xce534352UL
#define CKO_NETSCAPE_TRUST              0xce534353UL
#define CKO_NETSCAPE_BUILTIN_ROOT_LIST  0xce534354UL
#define CKO_NETSCAPE_NEWSLOT            0xce534355UL
#define CKO_NETSCAPE_DELSLOT            0xce534356UL

/* Various NSS key types */
#define CKK_NETSCAPE_PKCS8              0xce534351UL

/* Various NSS attributes */
#define CKA_NETSCAPE_URL                0xce534351UL
#define CKA_NETSCAPE_EMAIL              0xce534352UL
#define CKA_NETSCAPE_SMIME_INFO         0xce534353UL
#define CKA_NETSCAPE_SMIME_TIMESTAMP    0xce534354UL
#define CKA_NETSCAPE_PKCS8_SALT         0xce534355UL
#define CKA_NETSCAPE_PASSWORD_CHECK     0xce534356UL
#define CKA_NETSCAPE_EXPIRES            0xce534357UL
#define CKA_NETSCAPE_KRL                0xce534358UL
#define CKA_NETSCAPE_PQG_COUNTER        0xce534364UL
#define CKA_NETSCAPE_PQG_SEED           0xce534365UL
#define CKA_NETSCAPE_PQG_H              0xce534366UL
#define CKA_NETSCAPE_PQG_SEED_BITS      0xce534367UL
#define CKA_NETSCAPE_MODULE_SPEC        0xce534368UL

/* NSS trust attributes */
#define CKA_TRUST_DIGITAL_SIGNATURE     0xce536351UL
#define CKA_TRUST_NON_REPUDIATION       0xce536352UL
#define CKA_TRUST_KEY_ENCIPHERMENT      0xce536353UL
#define CKA_TRUST_DATA_ENCIPHERMENT     0xce536354UL
#define CKA_TRUST_KEY_AGREEMENT         0xce536355UL
#define CKA_TRUST_KEY_CERT_SIGN         0xce536356UL
#define CKA_TRUST_CRL_SIGN              0xce536357UL
#define CKA_TRUST_SERVER_AUTH           0xce536358UL
#define CKA_TRUST_CLIENT_AUTH           0xce536359UL
#define CKA_TRUST_CODE_SIGNING          0xce53635aUL
#define CKA_TRUST_EMAIL_PROTECTION      0xce53635bUL
#define CKA_TRUST_IPSEC_END_SYSTEM      0xce53635cUL
#define CKA_TRUST_IPSEC_TUNNEL          0xce53635dUL
#define CKA_TRUST_IPSEC_USER            0xce53635eUL
#define CKA_TRUST_TIME_STAMPING         0xce53635fUL
#define CKA_TRUST_STEP_UP_APPROVED      0xce536360UL
#define CKA_CERT_SHA1_HASH              0xce5363b4UL
#define CKA_CERT_MD5_HASH               0xce5363b5UL

/* NSS trust values */
typedef CK_ULONG                        CK_TRUST;
#define CKT_NETSCAPE_TRUSTED            0xce534351UL
#define CKT_NETSCAPE_TRUSTED_DELEGATOR  0xce534352UL
#define CKT_NETSCAPE_UNTRUSTED          0xce534353UL
#define CKT_NETSCAPE_MUST_VERIFY        0xce534354UL
#define CKT_NETSCAPE_TRUST_UNKNOWN      0xce534355UL

/* NSS specific mechanisms */
#define CKM_NETSCAPE_AES_KEY_WRAP       0xce534351UL
#define CKM_NETSCAPE_AES_KEY_WRAP_PAD   0xce534352UL

/* NSS specific return values */
#define CKR_NETSCAPE_CERTDB_FAILED      0xce534351UL
#define CKR_NETSCAPE_KEYDB_FAILED       0xce534352UL

#endif /* CRYPTOKI_NSS_VENDOR_DEFINED */

/* Define this if you want the vendor specific symbols */
#define CRYPTOKI_X_VENDOR_DEFINED 1
#ifdef CRYPTOKI_X_VENDOR_DEFINED

#define CKA_X_VENDOR   (CKA_VENDOR_DEFINED | 0x58444700UL)
#define CKO_X_VENDOR   (CKA_VENDOR_DEFINED | 0x58444700UL)

/* -------------------------------------------------------------------
 * TRUST ASSERTIONS
 *
 * These are retired and should not be used in new code
 */

#define CKO_X_TRUST_ASSERTION                    (CKO_X_VENDOR + 100)
#define CKA_X_ASSERTION_TYPE                     (CKA_X_VENDOR + 1)
#define CKA_X_CERTIFICATE_VALUE                  (CKA_X_VENDOR + 2)
#define CKA_X_PURPOSE                            (CKA_X_VENDOR + 3)
#define CKA_X_PEER                               (CKA_X_VENDOR + 4)
typedef CK_ULONG CK_X_ASSERTION_TYPE;
#define CKT_X_DISTRUSTED_CERTIFICATE             1UL
#define CKT_X_PINNED_CERTIFICATE                 2UL
#define CKT_X_ANCHORED_CERTIFICATE               3UL

/* -------------------------------------------------------------------
 * STAPLED CERTIFICATES
 *
 * Not yet final
 */

#define CKO_X_CERTIFICATE_EXTENSION                  (CKO_X_VENDOR + 200)
#define CKA_X_DISTRUSTED                             (CKA_X_VENDOR + 100)
#define CKA_X_CRITICAL                               (CKA_X_VENDOR + 101)

#endif /* CRYPTOKI_X_VENDOR_DEFINED */

#if defined(__cplusplus)
}
#endif

#endif	/* PKCS11_X_H_ */