]> git.saurik.com Git - apple/security.git/blobdiff - sec/SOSCircle/SecureObjectSync/SOSFullPeerInfo.h
Security-55471.tar.gz
[apple/security.git] / sec / SOSCircle / SecureObjectSync / SOSFullPeerInfo.h
diff --git a/sec/SOSCircle/SecureObjectSync/SOSFullPeerInfo.h b/sec/SOSCircle/SecureObjectSync/SOSFullPeerInfo.h
new file mode 100644 (file)
index 0000000..87f34ef
--- /dev/null
@@ -0,0 +1,60 @@
+//
+//  SOSFullPeerInfo.h
+//  sec
+//
+//  Created by Mitch Adler on 10/26/12.
+//
+//
+
+#ifndef _SOSFULLPEERINFO_H_
+#define _SOSFULLPEERINFO_H_
+
+#include <CoreFoundation/CoreFoundation.h>
+#include <Security/SecKey.h>
+#include <CommonCrypto/CommonDigestSPI.h>
+#include <SecureObjectSync/SOSPeerInfo.h>
+
+__BEGIN_DECLS
+
+typedef struct __OpaqueSOSFullPeerInfo   *SOSFullPeerInfoRef;
+
+enum {
+    kSOSFullPeerVersion = 1,
+};
+
+SOSFullPeerInfoRef SOSFullPeerInfoCreate(CFAllocatorRef allocator, CFDictionaryRef gestalt, SecKeyRef signingKey, CFErrorRef *error);
+
+SOSFullPeerInfoRef SOSFullPeerInfoCreateCloudIdentity(CFAllocatorRef allocator, SOSPeerInfoRef peer, CFErrorRef* error);
+
+SOSPeerInfoRef SOSFullPeerInfoGetPeerInfo(SOSFullPeerInfoRef fullPeer);
+SecKeyRef      SOSFullPeerInfoCopyDeviceKey(SOSFullPeerInfoRef fullPeer, CFErrorRef* error);
+
+bool SOSFullPeerInfoPurgePersistentKey(SOSFullPeerInfoRef peer, CFErrorRef* error);
+
+SOSPeerInfoRef SOSFullPeerInfoPromoteToRetiredAndCopy(SOSFullPeerInfoRef peer, CFErrorRef *error);
+
+bool SOSFullPeerInfoValidate(SOSFullPeerInfoRef peer, CFErrorRef* error);
+
+bool SOSFullPeerInfoUpdateGestalt(SOSFullPeerInfoRef peer, CFDictionaryRef gestalt, CFErrorRef* error);
+
+bool SOSFullPeerInfoPromoteToApplication(SOSFullPeerInfoRef fpi, SecKeyRef user_key, CFErrorRef *error);
+
+bool SOSFullPeerInfoUpgradeSignatures(SOSFullPeerInfoRef fpi, SecKeyRef user_key, CFErrorRef *error);
+
+//
+// DER Import Export
+//
+SOSFullPeerInfoRef SOSFullPeerInfoCreateFromDER(CFAllocatorRef allocator, CFErrorRef* error,
+                                        const uint8_t** der_p, const uint8_t *der_end);
+
+SOSFullPeerInfoRef SOSFullPeerInfoCreateFromData(CFAllocatorRef allocator, CFDataRef fullPeerData, CFErrorRef *error);
+
+size_t      SOSFullPeerInfoGetDEREncodedSize(SOSFullPeerInfoRef peer, CFErrorRef *error);
+uint8_t*    SOSFullPeerInfoEncodeToDER(SOSFullPeerInfoRef peer, CFErrorRef* error,
+                                   const uint8_t* der, uint8_t* der_end);
+
+CFDataRef SOSFullPeerInfoCopyEncodedData(SOSFullPeerInfoRef peer, CFAllocatorRef allocator, CFErrorRef *error);
+
+__END_DECLS
+
+#endif