Mercurial > projects > dstep
comparison dstep/security/x509defs.d @ 11:07194b026fa4
Added bindings to a couple of frameworks, new license + some other things
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sat, 01 Aug 2009 15:03:28 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
10:27e00625790b | 11:07194b026fa4 |
---|---|
1 /** | |
2 * Copyright: Copyright (c) 2009 Jacob Carlborg. | |
3 * Authors: Jacob Carlborg | |
4 * Version: Initial created: Jul 22, 2009 | |
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) | |
6 */ | |
7 module dstep.security.x509defs; | |
8 | |
9 import dstep.security.cssmtype; | |
10 | |
11 alias ubyte CSSM_BER_TAG; | |
12 alias int CSSM_X509_OPTION; | |
13 alias CSSM_X509_TYPE_VALUE_PAIR* CSSM_X509_TYPE_VALUE_PAIR_PTR; | |
14 alias CSSM_X509_RDN* CSSM_X509_RDN_PTR; | |
15 alias CSSM_X509_EXTENSION* CSSM_X509_EXTENSION_PTR; | |
16 alias extension_data_format CSSM_X509EXT_DATA_FORMAT; | |
17 alias CSSM_X509_REVOKED_CERT_ENTRY* CSSM_X509_REVOKED_CERT_ENTRY_PTR; | |
18 alias CSSM_X509_REVOKED_CERT_LIST* CSSM_X509_REVOKED_CERT_LIST_PTR; | |
19 alias CSSM_X509_NAME* CSSM_X509_NAME_PTR; | |
20 | |
21 enum extension_data_format | |
22 { | |
23 CSSM_X509_DATAFORMAT_ENCODED = 0, | |
24 CSSM_X509_DATAFORMAT_PARSED, | |
25 CSSM_X509_DATAFORMAT_PAIR | |
26 } | |
27 | |
28 struct CSSM_X509_ALGORITHM_IDENTIFIER | |
29 { | |
30 CSSM_OID algorithm; | |
31 CSSM_DATA parameters; | |
32 } | |
33 | |
34 | |
35 struct CSSM_X509_TYPE_VALUE_PAIR | |
36 { | |
37 CSSM_OID type; | |
38 ubyte valueType; | |
39 CSSM_DATA value; | |
40 } | |
41 | |
42 | |
43 struct CSSM_X509_RDN | |
44 { | |
45 uint numberOfPairs; | |
46 CSSM_X509_TYPE_VALUE_PAIR_PTR AttributeTypeAndValue; | |
47 } | |
48 | |
49 | |
50 struct CSSM_X509_NAME | |
51 { | |
52 uint numberOfRDNs; | |
53 CSSM_X509_RDN_PTR RelativeDistinguishedName; | |
54 } | |
55 | |
56 | |
57 struct CSSM_X509_SUBJECT_PUBLIC_KEY_INFO | |
58 { | |
59 CSSM_X509_ALGORITHM_IDENTIFIER algorithm; | |
60 CSSM_DATA subjectPublicKey; | |
61 } | |
62 | |
63 | |
64 struct CSSM_X509_TIME | |
65 { | |
66 ubyte timeType; | |
67 CSSM_DATA time; | |
68 } | |
69 | |
70 | |
71 struct CSSM_X509_VALIDITY | |
72 { | |
73 CSSM_X509_TIME notBefore; | |
74 CSSM_X509_TIME notAfter; | |
75 } | |
76 | |
77 | |
78 struct CSSM_X509EXT_BASICCONSTRAINTS | |
79 { | |
80 int cA; | |
81 int pathLenConstraintPresent; | |
82 uint pathLenConstraint; | |
83 } | |
84 | |
85 | |
86 struct CSSM_X509EXT_TAGandVALUE | |
87 { | |
88 ubyte type; | |
89 CSSM_DATA value; | |
90 } | |
91 | |
92 | |
93 struct CSSM_X509EXT_PAIR | |
94 { | |
95 CSSM_X509EXT_TAGandVALUE tagAndValue; | |
96 void* parsedValue; | |
97 } | |
98 | |
99 | |
100 struct CSSM_X509_EXTENSION | |
101 { | |
102 CSSM_OID extnId; | |
103 CSSM_BOOL critical; | |
104 CSSM_X509EXT_DATA_FORMAT format; | |
105 | |
106 union cssm_x509ext_value | |
107 { | |
108 CSSM_X509EXT_TAGandVALUE* tagAndValue; | |
109 void* parsedValue; | |
110 CSSM_X509EXT_PAIR* valuePair; | |
111 } | |
112 | |
113 cssm_x509ext_value value; | |
114 CSSM_DATA BERvalue; | |
115 } | |
116 | |
117 struct CSSM_X509_EXTENSIONS | |
118 { | |
119 uint numberOfExtensions; | |
120 CSSM_X509_EXTENSION_PTR extensions; | |
121 } | |
122 | |
123 | |
124 struct CSSM_X509_TBS_CERTIFICATE | |
125 { | |
126 CSSM_DATA version_; | |
127 CSSM_DATA serialNumber; | |
128 CSSM_X509_ALGORITHM_IDENTIFIER signature; | |
129 CSSM_X509_NAME issuer; | |
130 CSSM_X509_VALIDITY validity; | |
131 CSSM_X509_NAME subject; | |
132 CSSM_X509_SUBJECT_PUBLIC_KEY_INFO subjectPublicKeyInfo; | |
133 CSSM_DATA issuerUniqueIdentifier; | |
134 CSSM_DATA subjectUniqueIdentifier; | |
135 CSSM_X509_EXTENSIONS extensions; | |
136 } | |
137 | |
138 | |
139 struct CSSM_X509_SIGNATURE | |
140 { | |
141 CSSM_X509_ALGORITHM_IDENTIFIER algorithmIdentifier; | |
142 CSSM_DATA encrypted; | |
143 } | |
144 | |
145 | |
146 struct CSSM_X509_SIGNED_CERTIFICATE | |
147 { | |
148 CSSM_X509_TBS_CERTIFICATE certificate; | |
149 CSSM_X509_SIGNATURE signature; | |
150 } | |
151 | |
152 | |
153 struct CSSM_X509EXT_POLICYQUALIFIERINFO | |
154 { | |
155 CSSM_OID policyQualifierId; | |
156 CSSM_DATA value; | |
157 } | |
158 | |
159 | |
160 struct CSSM_X509EXT_POLICYQUALIFIERS | |
161 { | |
162 uint numberOfPolicyQualifiers; | |
163 CSSM_X509EXT_POLICYQUALIFIERINFO* policyQualifier; | |
164 } | |
165 | |
166 | |
167 struct CSSM_X509EXT_POLICYINFO | |
168 { | |
169 CSSM_OID policyIdentifier; | |
170 CSSM_X509EXT_POLICYQUALIFIERS policyQualifiers; | |
171 } | |
172 | |
173 | |
174 struct CSSM_X509_REVOKED_CERT_ENTRY | |
175 { | |
176 CSSM_DATA certificateSerialNumber; | |
177 CSSM_X509_TIME revocationDate; | |
178 CSSM_X509_EXTENSIONS extensions; | |
179 } | |
180 | |
181 | |
182 struct CSSM_X509_REVOKED_CERT_LIST | |
183 { | |
184 uint numberOfRevokedCertEntries; | |
185 CSSM_X509_REVOKED_CERT_ENTRY_PTR revokedCertEntry; | |
186 } | |
187 | |
188 | |
189 struct CSSM_X509_TBS_CERTLIST | |
190 { | |
191 CSSM_DATA version_; | |
192 CSSM_X509_ALGORITHM_IDENTIFIER signature; | |
193 CSSM_X509_NAME issuer; | |
194 CSSM_X509_TIME thisUpdate; | |
195 CSSM_X509_TIME nextUpdate; | |
196 CSSM_X509_REVOKED_CERT_LIST_PTR revokedCertificates; | |
197 CSSM_X509_EXTENSIONS extensions; | |
198 } | |
199 | |
200 | |
201 struct CSSM_X509_SIGNED_CRL | |
202 { | |
203 CSSM_X509_TBS_CERTLIST tbsCertList; | |
204 CSSM_X509_SIGNATURE signature; | |
205 } | |
206 |