#ifndef _DER_PLIST_H_
#define _DER_PLIST_H_
#include <CoreFoundation/CoreFoundation.h>
#ifdef __cplusplus
extern "C" {
#endif
static const CFIndex kSecDERErrorUnknownEncoding = -1;
static const CFIndex kSecDERErrorUnsupportedDERType = -2;
static const CFIndex kSecDERErrorAllocationFailure = -3;
static const CFIndex kSecDERErrorUnsupportedNumberType = -4;
static const CFIndex kSecDERErrorUnsupportedCFObject = -5;
extern CFStringRef sSecDERErrorDomain;
enum {
kCFPropertyListDERFormat_v1_0 = 400
};
size_t der_sizeof_plist(CFPropertyListRef pl, CFErrorRef *error);
uint8_t* der_encode_plist(CFPropertyListRef pl, CFErrorRef *error,
const uint8_t *der, uint8_t *der_end);
const uint8_t* der_decode_plist(CFAllocatorRef pl, CFOptionFlags mutability,
CFPropertyListRef* cf, CFErrorRef *error,
const uint8_t* der, const uint8_t *der_end);
CFDataRef CFPropertyListCreateDERData(CFAllocatorRef allocator, CFPropertyListRef plist, CFErrorRef *error);
CFPropertyListRef CFPropertyListCreateWithDERData(CFAllocatorRef allocator, CFDataRef data, CFOptionFlags options, CFPropertyListFormat *format, CFErrorRef *error);
#ifdef __cplusplus
} #endif
#endif