1use core::ffi::*;
4#[cfg(feature = "objc2")]
5use objc2::__framework_prelude::*;
6
7use crate::*;
8
9#[cfg(feature = "cssmconfig")]
11pub type CSSM_BER_TAG = uint8;
12
13#[cfg(feature = "SecAsn1Types")]
15pub type CSSM_X509_ALGORITHM_IDENTIFIER_PTR = *mut SecAsn1AlgId;
16
17#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
19#[deprecated]
20#[repr(C)]
21#[derive(Clone, Copy, Debug, PartialEq)]
22pub struct cssm_x509_type_value_pair {
23 pub r#type: SecAsn1Oid,
24 pub valueType: CSSM_BER_TAG,
25 pub value: SecAsn1Item,
26}
27
28#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
29unsafe impl Encode for cssm_x509_type_value_pair {
30 const ENCODING: Encoding = Encoding::Struct(
31 "cssm_x509_type_value_pair",
32 &[
33 <SecAsn1Oid>::ENCODING,
34 <CSSM_BER_TAG>::ENCODING,
35 <SecAsn1Item>::ENCODING,
36 ],
37 );
38}
39
40#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
41unsafe impl RefEncode for cssm_x509_type_value_pair {
42 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
43}
44
45#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
47pub type CSSM_X509_TYPE_VALUE_PAIR = cssm_x509_type_value_pair;
48
49#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
51pub type CSSM_X509_TYPE_VALUE_PAIR_PTR = *mut cssm_x509_type_value_pair;
52
53#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
55#[deprecated]
56#[repr(C)]
57#[derive(Clone, Copy, Debug, PartialEq)]
58pub struct cssm_x509_rdn {
59 pub numberOfPairs: uint32,
60 pub AttributeTypeAndValue: CSSM_X509_TYPE_VALUE_PAIR_PTR,
61}
62
63#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
64unsafe impl Encode for cssm_x509_rdn {
65 const ENCODING: Encoding = Encoding::Struct(
66 "cssm_x509_rdn",
67 &[
68 <uint32>::ENCODING,
69 <CSSM_X509_TYPE_VALUE_PAIR_PTR>::ENCODING,
70 ],
71 );
72}
73
74#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
75unsafe impl RefEncode for cssm_x509_rdn {
76 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
77}
78
79#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
81pub type CSSM_X509_RDN = cssm_x509_rdn;
82
83#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
85pub type CSSM_X509_RDN_PTR = *mut cssm_x509_rdn;
86
87#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
89#[deprecated]
90#[repr(C)]
91#[derive(Clone, Copy, Debug, PartialEq)]
92pub struct cssm_x509_name {
93 pub numberOfRDNs: uint32,
94 pub RelativeDistinguishedName: CSSM_X509_RDN_PTR,
95}
96
97#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
98unsafe impl Encode for cssm_x509_name {
99 const ENCODING: Encoding = Encoding::Struct(
100 "cssm_x509_name",
101 &[<uint32>::ENCODING, <CSSM_X509_RDN_PTR>::ENCODING],
102 );
103}
104
105#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
106unsafe impl RefEncode for cssm_x509_name {
107 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
108}
109
110#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
112pub type CSSM_X509_NAME = cssm_x509_name;
113
114#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
116pub type CSSM_X509_NAME_PTR = *mut cssm_x509_name;
117
118#[cfg(feature = "SecAsn1Types")]
120pub type CSSM_X509_SUBJECT_PUBLIC_KEY_INFO_PTR = *mut SecAsn1PubKeyInfo;
121
122#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
124#[deprecated]
125#[repr(C)]
126#[derive(Clone, Copy, Debug, PartialEq)]
127pub struct cssm_x509_time {
128 pub timeType: CSSM_BER_TAG,
129 pub time: SecAsn1Item,
130}
131
132#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
133unsafe impl Encode for cssm_x509_time {
134 const ENCODING: Encoding = Encoding::Struct(
135 "cssm_x509_time",
136 &[<CSSM_BER_TAG>::ENCODING, <SecAsn1Item>::ENCODING],
137 );
138}
139
140#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
141unsafe impl RefEncode for cssm_x509_time {
142 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
143}
144
145#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
147pub type CSSM_X509_TIME = cssm_x509_time;
148
149#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
151pub type CSSM_X509_TIME_PTR = *mut cssm_x509_time;
152
153#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
155#[deprecated]
156#[repr(C)]
157#[derive(Clone, Copy, Debug, PartialEq)]
158pub struct x509_validity {
159 pub notBefore: CSSM_X509_TIME,
160 pub notAfter: CSSM_X509_TIME,
161}
162
163#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
164unsafe impl Encode for x509_validity {
165 const ENCODING: Encoding = Encoding::Struct(
166 "x509_validity",
167 &[<CSSM_X509_TIME>::ENCODING, <CSSM_X509_TIME>::ENCODING],
168 );
169}
170
171#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
172unsafe impl RefEncode for x509_validity {
173 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
174}
175
176#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
178pub type CSSM_X509_VALIDITY = x509_validity;
179
180#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
182pub type CSSM_X509_VALIDITY_PTR = *mut x509_validity;
183
184#[cfg(all(feature = "cssmconfig", feature = "cssmtype"))]
186pub type CSSM_X509_OPTION = CSSM_BOOL;
187
188#[cfg(all(feature = "cssmconfig", feature = "cssmtype"))]
190#[deprecated]
191#[repr(C)]
192#[derive(Clone, Copy, Debug, PartialEq)]
193pub struct cssm_x509ext_basicConstraints {
194 pub cA: CSSM_BOOL,
195 pub pathLenConstraintPresent: CSSM_X509_OPTION,
196 pub pathLenConstraint: uint32,
197}
198
199#[cfg(all(feature = "cssmconfig", feature = "cssmtype", feature = "objc2"))]
200unsafe impl Encode for cssm_x509ext_basicConstraints {
201 const ENCODING: Encoding = Encoding::Struct(
202 "cssm_x509ext_basicConstraints",
203 &[
204 <CSSM_BOOL>::ENCODING,
205 <CSSM_X509_OPTION>::ENCODING,
206 <uint32>::ENCODING,
207 ],
208 );
209}
210
211#[cfg(all(feature = "cssmconfig", feature = "cssmtype", feature = "objc2"))]
212unsafe impl RefEncode for cssm_x509ext_basicConstraints {
213 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
214}
215
216#[cfg(all(feature = "cssmconfig", feature = "cssmtype"))]
218pub type CSSM_X509EXT_BASICCONSTRAINTS = cssm_x509ext_basicConstraints;
219
220#[cfg(all(feature = "cssmconfig", feature = "cssmtype"))]
222pub type CSSM_X509EXT_BASICCONSTRAINTS_PTR = *mut cssm_x509ext_basicConstraints;
223
224#[repr(transparent)]
226#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
227pub struct extension_data_format(pub c_uint);
228impl extension_data_format {
229 pub const CSSM_X509_DATAFORMAT_ENCODED: Self = Self(0);
230 pub const CSSM_X509_DATAFORMAT_PARSED: Self = Self(1);
231 pub const CSSM_X509_DATAFORMAT_PAIR: Self = Self(2);
232}
233
234#[cfg(feature = "objc2")]
235unsafe impl Encode for extension_data_format {
236 const ENCODING: Encoding = c_uint::ENCODING;
237}
238
239#[cfg(feature = "objc2")]
240unsafe impl RefEncode for extension_data_format {
241 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
242}
243
244pub type CSSM_X509EXT_DATA_FORMAT = extension_data_format;
246
247#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
249#[deprecated]
250#[repr(C)]
251#[derive(Clone, Copy, Debug, PartialEq)]
252pub struct cssm_x509_extensionTagAndValue {
253 pub r#type: CSSM_BER_TAG,
254 pub value: SecAsn1Item,
255}
256
257#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
258unsafe impl Encode for cssm_x509_extensionTagAndValue {
259 const ENCODING: Encoding = Encoding::Struct(
260 "cssm_x509_extensionTagAndValue",
261 &[<CSSM_BER_TAG>::ENCODING, <SecAsn1Item>::ENCODING],
262 );
263}
264
265#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
266unsafe impl RefEncode for cssm_x509_extensionTagAndValue {
267 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
268}
269
270#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
272pub type CSSM_X509EXT_TAGandVALUE = cssm_x509_extensionTagAndValue;
273
274#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
276pub type CSSM_X509EXT_TAGandVALUE_PTR = *mut cssm_x509_extensionTagAndValue;
277
278#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
280#[deprecated]
281#[repr(C)]
282#[derive(Clone, Copy, Debug, PartialEq)]
283pub struct cssm_x509ext_pair {
284 pub tagAndValue: CSSM_X509EXT_TAGandVALUE,
285 pub parsedValue: *mut c_void,
286}
287
288#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
289unsafe impl Encode for cssm_x509ext_pair {
290 const ENCODING: Encoding = Encoding::Struct(
291 "cssm_x509ext_pair",
292 &[
293 <CSSM_X509EXT_TAGandVALUE>::ENCODING,
294 <*mut c_void>::ENCODING,
295 ],
296 );
297}
298
299#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
300unsafe impl RefEncode for cssm_x509ext_pair {
301 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
302}
303
304#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
306pub type CSSM_X509EXT_PAIR = cssm_x509ext_pair;
307
308#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
310pub type CSSM_X509EXT_PAIR_PTR = *mut cssm_x509ext_pair;
311
312#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
314#[deprecated]
315#[repr(C)]
316#[derive(Clone, Copy)]
317pub union cssm_x509ext_value {
318 pub tagAndValue: *mut CSSM_X509EXT_TAGandVALUE,
319 pub parsedValue: *mut c_void,
320 pub valuePair: *mut CSSM_X509EXT_PAIR,
321}
322
323#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
324unsafe impl Encode for cssm_x509ext_value {
325 const ENCODING: Encoding = Encoding::Union(
326 "cssm_x509ext_value",
327 &[
328 <*mut CSSM_X509EXT_TAGandVALUE>::ENCODING,
329 <*mut c_void>::ENCODING,
330 <*mut CSSM_X509EXT_PAIR>::ENCODING,
331 ],
332 );
333}
334
335#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
336unsafe impl RefEncode for cssm_x509ext_value {
337 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
338}
339
340#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
342#[deprecated]
343#[repr(C)]
344#[derive(Clone, Copy)]
345pub struct cssm_x509_extension {
346 pub extnId: SecAsn1Oid,
347 pub critical: CSSM_BOOL,
348 pub format: CSSM_X509EXT_DATA_FORMAT,
349 pub value: cssm_x509ext_value,
350 pub BERvalue: SecAsn1Item,
351}
352
353#[cfg(all(
354 feature = "SecAsn1Types",
355 feature = "cssmconfig",
356 feature = "cssmtype",
357 feature = "objc2"
358))]
359unsafe impl Encode for cssm_x509_extension {
360 const ENCODING: Encoding = Encoding::Struct(
361 "cssm_x509_extension",
362 &[
363 <SecAsn1Oid>::ENCODING,
364 <CSSM_BOOL>::ENCODING,
365 <CSSM_X509EXT_DATA_FORMAT>::ENCODING,
366 <cssm_x509ext_value>::ENCODING,
367 <SecAsn1Item>::ENCODING,
368 ],
369 );
370}
371
372#[cfg(all(
373 feature = "SecAsn1Types",
374 feature = "cssmconfig",
375 feature = "cssmtype",
376 feature = "objc2"
377))]
378unsafe impl RefEncode for cssm_x509_extension {
379 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
380}
381
382#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
384pub type CSSM_X509_EXTENSION = cssm_x509_extension;
385
386#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
388pub type CSSM_X509_EXTENSION_PTR = *mut cssm_x509_extension;
389
390#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
392#[deprecated]
393#[repr(C)]
394#[derive(Clone, Copy, Debug, PartialEq)]
395pub struct cssm_x509_extensions {
396 pub numberOfExtensions: uint32,
397 pub extensions: CSSM_X509_EXTENSION_PTR,
398}
399
400#[cfg(all(
401 feature = "SecAsn1Types",
402 feature = "cssmconfig",
403 feature = "cssmtype",
404 feature = "objc2"
405))]
406unsafe impl Encode for cssm_x509_extensions {
407 const ENCODING: Encoding = Encoding::Struct(
408 "cssm_x509_extensions",
409 &[<uint32>::ENCODING, <CSSM_X509_EXTENSION_PTR>::ENCODING],
410 );
411}
412
413#[cfg(all(
414 feature = "SecAsn1Types",
415 feature = "cssmconfig",
416 feature = "cssmtype",
417 feature = "objc2"
418))]
419unsafe impl RefEncode for cssm_x509_extensions {
420 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
421}
422
423#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
425pub type CSSM_X509_EXTENSIONS = cssm_x509_extensions;
426
427#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
429pub type CSSM_X509_EXTENSIONS_PTR = *mut cssm_x509_extensions;
430
431#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
433#[deprecated]
434#[repr(C)]
435#[derive(Clone, Copy, Debug, PartialEq)]
436pub struct cssm_x509_tbs_certificate {
437 pub version: SecAsn1Item,
438 pub serialNumber: SecAsn1Item,
439 pub signature: SecAsn1AlgId,
440 pub issuer: CSSM_X509_NAME,
441 pub validity: CSSM_X509_VALIDITY,
442 pub subject: CSSM_X509_NAME,
443 pub subjectPublicKeyInfo: SecAsn1PubKeyInfo,
444 pub issuerUniqueIdentifier: SecAsn1Item,
445 pub subjectUniqueIdentifier: SecAsn1Item,
446 pub extensions: CSSM_X509_EXTENSIONS,
447}
448
449#[cfg(all(
450 feature = "SecAsn1Types",
451 feature = "cssmconfig",
452 feature = "cssmtype",
453 feature = "objc2"
454))]
455unsafe impl Encode for cssm_x509_tbs_certificate {
456 const ENCODING: Encoding = Encoding::Struct(
457 "cssm_x509_tbs_certificate",
458 &[
459 <SecAsn1Item>::ENCODING,
460 <SecAsn1Item>::ENCODING,
461 <SecAsn1AlgId>::ENCODING,
462 <CSSM_X509_NAME>::ENCODING,
463 <CSSM_X509_VALIDITY>::ENCODING,
464 <CSSM_X509_NAME>::ENCODING,
465 <SecAsn1PubKeyInfo>::ENCODING,
466 <SecAsn1Item>::ENCODING,
467 <SecAsn1Item>::ENCODING,
468 <CSSM_X509_EXTENSIONS>::ENCODING,
469 ],
470 );
471}
472
473#[cfg(all(
474 feature = "SecAsn1Types",
475 feature = "cssmconfig",
476 feature = "cssmtype",
477 feature = "objc2"
478))]
479unsafe impl RefEncode for cssm_x509_tbs_certificate {
480 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
481}
482
483#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
485pub type CSSM_X509_TBS_CERTIFICATE = cssm_x509_tbs_certificate;
486
487#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
489pub type CSSM_X509_TBS_CERTIFICATE_PTR = *mut cssm_x509_tbs_certificate;
490
491#[cfg(feature = "SecAsn1Types")]
493#[deprecated]
494#[repr(C)]
495#[derive(Clone, Copy, Debug, PartialEq)]
496pub struct cssm_x509_signature {
497 pub algorithmIdentifier: SecAsn1AlgId,
498 pub encrypted: SecAsn1Item,
499}
500
501#[cfg(all(feature = "SecAsn1Types", feature = "objc2"))]
502unsafe impl Encode for cssm_x509_signature {
503 const ENCODING: Encoding = Encoding::Struct(
504 "cssm_x509_signature",
505 &[<SecAsn1AlgId>::ENCODING, <SecAsn1Item>::ENCODING],
506 );
507}
508
509#[cfg(all(feature = "SecAsn1Types", feature = "objc2"))]
510unsafe impl RefEncode for cssm_x509_signature {
511 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
512}
513
514#[cfg(feature = "SecAsn1Types")]
516pub type CSSM_X509_SIGNATURE = cssm_x509_signature;
517
518#[cfg(feature = "SecAsn1Types")]
520pub type CSSM_X509_SIGNATURE_PTR = *mut cssm_x509_signature;
521
522#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
524#[deprecated]
525#[repr(C)]
526#[derive(Clone, Copy, Debug, PartialEq)]
527pub struct cssm_x509_signed_certificate {
528 pub certificate: CSSM_X509_TBS_CERTIFICATE,
529 pub signature: CSSM_X509_SIGNATURE,
530}
531
532#[cfg(all(
533 feature = "SecAsn1Types",
534 feature = "cssmconfig",
535 feature = "cssmtype",
536 feature = "objc2"
537))]
538unsafe impl Encode for cssm_x509_signed_certificate {
539 const ENCODING: Encoding = Encoding::Struct(
540 "cssm_x509_signed_certificate",
541 &[
542 <CSSM_X509_TBS_CERTIFICATE>::ENCODING,
543 <CSSM_X509_SIGNATURE>::ENCODING,
544 ],
545 );
546}
547
548#[cfg(all(
549 feature = "SecAsn1Types",
550 feature = "cssmconfig",
551 feature = "cssmtype",
552 feature = "objc2"
553))]
554unsafe impl RefEncode for cssm_x509_signed_certificate {
555 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
556}
557
558#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
560pub type CSSM_X509_SIGNED_CERTIFICATE = cssm_x509_signed_certificate;
561
562#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
564pub type CSSM_X509_SIGNED_CERTIFICATE_PTR = *mut cssm_x509_signed_certificate;
565
566#[cfg(feature = "SecAsn1Types")]
568#[deprecated]
569#[repr(C)]
570#[derive(Clone, Copy, Debug, PartialEq)]
571pub struct cssm_x509ext_policyQualifierInfo {
572 pub policyQualifierId: SecAsn1Oid,
573 pub value: SecAsn1Item,
574}
575
576#[cfg(all(feature = "SecAsn1Types", feature = "objc2"))]
577unsafe impl Encode for cssm_x509ext_policyQualifierInfo {
578 const ENCODING: Encoding = Encoding::Struct(
579 "cssm_x509ext_policyQualifierInfo",
580 &[<SecAsn1Oid>::ENCODING, <SecAsn1Item>::ENCODING],
581 );
582}
583
584#[cfg(all(feature = "SecAsn1Types", feature = "objc2"))]
585unsafe impl RefEncode for cssm_x509ext_policyQualifierInfo {
586 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
587}
588
589#[cfg(feature = "SecAsn1Types")]
591pub type CSSM_X509EXT_POLICYQUALIFIERINFO = cssm_x509ext_policyQualifierInfo;
592
593#[cfg(feature = "SecAsn1Types")]
595pub type CSSM_X509EXT_POLICYQUALIFIERINFO_PTR = *mut cssm_x509ext_policyQualifierInfo;
596
597#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
599#[deprecated]
600#[repr(C)]
601#[derive(Clone, Copy, Debug, PartialEq)]
602pub struct cssm_x509ext_policyQualifiers {
603 pub numberOfPolicyQualifiers: uint32,
604 pub policyQualifier: *mut CSSM_X509EXT_POLICYQUALIFIERINFO,
605}
606
607#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
608unsafe impl Encode for cssm_x509ext_policyQualifiers {
609 const ENCODING: Encoding = Encoding::Struct(
610 "cssm_x509ext_policyQualifiers",
611 &[
612 <uint32>::ENCODING,
613 <*mut CSSM_X509EXT_POLICYQUALIFIERINFO>::ENCODING,
614 ],
615 );
616}
617
618#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
619unsafe impl RefEncode for cssm_x509ext_policyQualifiers {
620 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
621}
622
623#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
625pub type CSSM_X509EXT_POLICYQUALIFIERS = cssm_x509ext_policyQualifiers;
626
627#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
629pub type CSSM_X509EXT_POLICYQUALIFIERS_PTR = *mut cssm_x509ext_policyQualifiers;
630
631#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
633#[deprecated]
634#[repr(C)]
635#[derive(Clone, Copy, Debug, PartialEq)]
636pub struct cssm_x509ext_policyInfo {
637 pub policyIdentifier: SecAsn1Oid,
638 pub policyQualifiers: CSSM_X509EXT_POLICYQUALIFIERS,
639}
640
641#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
642unsafe impl Encode for cssm_x509ext_policyInfo {
643 const ENCODING: Encoding = Encoding::Struct(
644 "cssm_x509ext_policyInfo",
645 &[
646 <SecAsn1Oid>::ENCODING,
647 <CSSM_X509EXT_POLICYQUALIFIERS>::ENCODING,
648 ],
649 );
650}
651
652#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "objc2"))]
653unsafe impl RefEncode for cssm_x509ext_policyInfo {
654 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
655}
656
657#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
659pub type CSSM_X509EXT_POLICYINFO = cssm_x509ext_policyInfo;
660
661#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig"))]
663pub type CSSM_X509EXT_POLICYINFO_PTR = *mut cssm_x509ext_policyInfo;
664
665#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
667#[deprecated]
668#[repr(C)]
669#[derive(Clone, Copy, Debug, PartialEq)]
670pub struct cssm_x509_revoked_cert_entry {
671 pub certificateSerialNumber: SecAsn1Item,
672 pub revocationDate: CSSM_X509_TIME,
673 pub extensions: CSSM_X509_EXTENSIONS,
674}
675
676#[cfg(all(
677 feature = "SecAsn1Types",
678 feature = "cssmconfig",
679 feature = "cssmtype",
680 feature = "objc2"
681))]
682unsafe impl Encode for cssm_x509_revoked_cert_entry {
683 const ENCODING: Encoding = Encoding::Struct(
684 "cssm_x509_revoked_cert_entry",
685 &[
686 <SecAsn1Item>::ENCODING,
687 <CSSM_X509_TIME>::ENCODING,
688 <CSSM_X509_EXTENSIONS>::ENCODING,
689 ],
690 );
691}
692
693#[cfg(all(
694 feature = "SecAsn1Types",
695 feature = "cssmconfig",
696 feature = "cssmtype",
697 feature = "objc2"
698))]
699unsafe impl RefEncode for cssm_x509_revoked_cert_entry {
700 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
701}
702
703#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
705pub type CSSM_X509_REVOKED_CERT_ENTRY = cssm_x509_revoked_cert_entry;
706
707#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
709pub type CSSM_X509_REVOKED_CERT_ENTRY_PTR = *mut cssm_x509_revoked_cert_entry;
710
711#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
713#[deprecated]
714#[repr(C)]
715#[derive(Clone, Copy, Debug, PartialEq)]
716pub struct cssm_x509_revoked_cert_list {
717 pub numberOfRevokedCertEntries: uint32,
718 pub revokedCertEntry: CSSM_X509_REVOKED_CERT_ENTRY_PTR,
719}
720
721#[cfg(all(
722 feature = "SecAsn1Types",
723 feature = "cssmconfig",
724 feature = "cssmtype",
725 feature = "objc2"
726))]
727unsafe impl Encode for cssm_x509_revoked_cert_list {
728 const ENCODING: Encoding = Encoding::Struct(
729 "cssm_x509_revoked_cert_list",
730 &[
731 <uint32>::ENCODING,
732 <CSSM_X509_REVOKED_CERT_ENTRY_PTR>::ENCODING,
733 ],
734 );
735}
736
737#[cfg(all(
738 feature = "SecAsn1Types",
739 feature = "cssmconfig",
740 feature = "cssmtype",
741 feature = "objc2"
742))]
743unsafe impl RefEncode for cssm_x509_revoked_cert_list {
744 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
745}
746
747#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
749pub type CSSM_X509_REVOKED_CERT_LIST = cssm_x509_revoked_cert_list;
750
751#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
753pub type CSSM_X509_REVOKED_CERT_LIST_PTR = *mut cssm_x509_revoked_cert_list;
754
755#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
757#[deprecated]
758#[repr(C)]
759#[derive(Clone, Copy, Debug, PartialEq)]
760pub struct cssm_x509_tbs_certlist {
761 pub version: SecAsn1Item,
762 pub signature: SecAsn1AlgId,
763 pub issuer: CSSM_X509_NAME,
764 pub thisUpdate: CSSM_X509_TIME,
765 pub nextUpdate: CSSM_X509_TIME,
766 pub revokedCertificates: CSSM_X509_REVOKED_CERT_LIST_PTR,
767 pub extensions: CSSM_X509_EXTENSIONS,
768}
769
770#[cfg(all(
771 feature = "SecAsn1Types",
772 feature = "cssmconfig",
773 feature = "cssmtype",
774 feature = "objc2"
775))]
776unsafe impl Encode for cssm_x509_tbs_certlist {
777 const ENCODING: Encoding = Encoding::Struct(
778 "cssm_x509_tbs_certlist",
779 &[
780 <SecAsn1Item>::ENCODING,
781 <SecAsn1AlgId>::ENCODING,
782 <CSSM_X509_NAME>::ENCODING,
783 <CSSM_X509_TIME>::ENCODING,
784 <CSSM_X509_TIME>::ENCODING,
785 <CSSM_X509_REVOKED_CERT_LIST_PTR>::ENCODING,
786 <CSSM_X509_EXTENSIONS>::ENCODING,
787 ],
788 );
789}
790
791#[cfg(all(
792 feature = "SecAsn1Types",
793 feature = "cssmconfig",
794 feature = "cssmtype",
795 feature = "objc2"
796))]
797unsafe impl RefEncode for cssm_x509_tbs_certlist {
798 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
799}
800
801#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
803pub type CSSM_X509_TBS_CERTLIST = cssm_x509_tbs_certlist;
804
805#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
807pub type CSSM_X509_TBS_CERTLIST_PTR = *mut cssm_x509_tbs_certlist;
808
809#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
811#[deprecated]
812#[repr(C)]
813#[derive(Clone, Copy, Debug, PartialEq)]
814pub struct cssm_x509_signed_crl {
815 pub tbsCertList: CSSM_X509_TBS_CERTLIST,
816 pub signature: CSSM_X509_SIGNATURE,
817}
818
819#[cfg(all(
820 feature = "SecAsn1Types",
821 feature = "cssmconfig",
822 feature = "cssmtype",
823 feature = "objc2"
824))]
825unsafe impl Encode for cssm_x509_signed_crl {
826 const ENCODING: Encoding = Encoding::Struct(
827 "cssm_x509_signed_crl",
828 &[
829 <CSSM_X509_TBS_CERTLIST>::ENCODING,
830 <CSSM_X509_SIGNATURE>::ENCODING,
831 ],
832 );
833}
834
835#[cfg(all(
836 feature = "SecAsn1Types",
837 feature = "cssmconfig",
838 feature = "cssmtype",
839 feature = "objc2"
840))]
841unsafe impl RefEncode for cssm_x509_signed_crl {
842 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
843}
844
845#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
847pub type CSSM_X509_SIGNED_CRL = cssm_x509_signed_crl;
848
849#[cfg(all(feature = "SecAsn1Types", feature = "cssmconfig", feature = "cssmtype"))]
851pub type CSSM_X509_SIGNED_CRL_PTR = *mut cssm_x509_signed_crl;