]> git.saurik.com Git - apple/security.git/blob - utilities/src/der_plist_internal.h
Security-55471.14.8.tar.gz
[apple/security.git] / utilities / src / der_plist_internal.h
1 //
2 // der_plist_internal.h
3 // utilities
4 //
5 // Created by Mitch Adler on 7/2/12.
6 // Copyright (c) 2012 Apple Inc. All rights reserved.
7 //
8
9 #ifndef _DER_PLIST_INTERNAL_H_
10 #define _DER_PLIST_INTERNAL_H_
11
12 #include <CoreFoundation/CoreFoundation.h>
13
14 void SecCFDERCreateError(CFIndex errorCode, CFStringRef descriptionString, CFErrorRef previousError, CFErrorRef *newError);
15
16
17 // CFArray <-> DER
18 size_t der_sizeof_array(CFArrayRef array, CFErrorRef *error);
19
20 uint8_t* der_encode_array(CFArrayRef array, CFErrorRef *error,
21 const uint8_t *der, uint8_t *der_end);
22
23 const uint8_t* der_decode_array(CFAllocatorRef allocator, CFOptionFlags mutability,
24 CFArrayRef* array, CFErrorRef *error,
25 const uint8_t* der, const uint8_t *der_end);
26
27 // CFNull <-> DER
28 size_t der_sizeof_null(CFNullRef nul, CFErrorRef *error);
29
30 uint8_t* der_encode_null(CFNullRef nul, CFErrorRef *error,
31 const uint8_t *der, uint8_t *der_end);
32
33 const uint8_t* der_decode_null(CFAllocatorRef allocator, CFOptionFlags mutability,
34 CFNullRef *nul, CFErrorRef *error,
35 const uint8_t* der, const uint8_t *der_end);
36
37
38 // CFBoolean <-> DER
39 size_t der_sizeof_boolean(CFBooleanRef boolean, CFErrorRef *error);
40
41 uint8_t* der_encode_boolean(CFBooleanRef boolean, CFErrorRef *error,
42 const uint8_t *der, uint8_t *der_end);
43
44 const uint8_t* der_decode_boolean(CFAllocatorRef allocator, CFOptionFlags mutability,
45 CFBooleanRef* boolean, CFErrorRef *error,
46 const uint8_t* der, const uint8_t *der_end);
47
48 // CFData <-> DER
49 size_t der_sizeof_data(CFDataRef data, CFErrorRef *error);
50
51 uint8_t* der_encode_data(CFDataRef data, CFErrorRef *error,
52 const uint8_t *der, uint8_t *der_end);
53
54 const uint8_t* der_decode_data(CFAllocatorRef allocator, CFOptionFlags mutability,
55 CFDataRef* data, CFErrorRef *error,
56 const uint8_t* der, const uint8_t *der_end);
57
58 const uint8_t* der_decode_data_mutable(CFAllocatorRef allocator, CFOptionFlags mutability,
59 CFMutableDataRef* data, CFErrorRef *error,
60 const uint8_t* der, const uint8_t *der_end);
61
62
63 // CFDate <-> DER
64 size_t der_sizeof_date(CFDateRef date, CFErrorRef *error);
65
66 uint8_t* der_encode_date(CFDateRef date, CFErrorRef *error,
67 const uint8_t *der, uint8_t *der_end);
68
69 const uint8_t* der_decode_date(CFAllocatorRef allocator, CFOptionFlags mutability,
70 CFDateRef* date, CFErrorRef *error,
71 const uint8_t* der, const uint8_t *der_end);
72
73
74 // CFDictionary <-> DER
75 size_t der_sizeof_dictionary(CFDictionaryRef dictionary, CFErrorRef *error);
76
77 uint8_t* der_encode_dictionary(CFDictionaryRef dictionary, CFErrorRef *error,
78 const uint8_t *der, uint8_t *der_end);
79
80 const uint8_t* der_decode_dictionary(CFAllocatorRef allocator, CFOptionFlags mutability,
81 CFDictionaryRef* dictionary, CFErrorRef *error,
82 const uint8_t* der, const uint8_t *der_end);
83
84 // CFNumber <-> DER
85 // Currently only supports signed 64 bit values. No floating point.
86 size_t der_sizeof_number(CFNumberRef number, CFErrorRef *error);
87
88 uint8_t* der_encode_number(CFNumberRef number, CFErrorRef *error,
89 const uint8_t *der, uint8_t *der_end);
90
91 const uint8_t* der_decode_number(CFAllocatorRef allocator, CFOptionFlags mutability,
92 CFNumberRef* number, CFErrorRef *error,
93 const uint8_t* der, const uint8_t *der_end);
94
95 // CFString <-> DER
96 size_t der_sizeof_string(CFStringRef string, CFErrorRef *error);
97
98 uint8_t* der_encode_string(CFStringRef string, CFErrorRef *error,
99 const uint8_t *der, uint8_t *der_end);
100
101 const uint8_t* der_decode_string(CFAllocatorRef allocator, CFOptionFlags mutability,
102 CFStringRef* string, CFErrorRef *error,
103 const uint8_t* der, const uint8_t *der_end);
104
105 #endif