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