]> git.saurik.com Git - apple/security.git/blobdiff - sec/SOSCircle/SecureObjectSync/SOSEngine.h
Security-57031.1.35.tar.gz
[apple/security.git] / sec / SOSCircle / SecureObjectSync / SOSEngine.h
diff --git a/sec/SOSCircle/SecureObjectSync/SOSEngine.h b/sec/SOSCircle/SecureObjectSync/SOSEngine.h
deleted file mode 100644 (file)
index cc63bbf..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Created by Michael Brouwer on 7/17/12.
- * Copyright 2012 Apple Inc. All Rights Reserved.
- */
-
-/*!
- @header SOSEngine.h
- The functions provided in SOSEngine.h provide an interface to a
- secure object syncing engine
- */
-
-#ifndef _SEC_SOSENGINE_H_
-#define _SEC_SOSENGINE_H_
-
-#include <SecureObjectSync/SOSTransport.h>
-#include <CoreFoundation/CFRuntime.h>
-
-__BEGIN_DECLS
-
-enum {
-    kSOSEngineInvalidMessageError = 1,
-    kSOSEngineInternalError = 2,
-};
-
-typedef struct __OpaqueSOSEngine *SOSEngineRef;
-typedef struct __OpaqueSOSPeer *SOSPeerRef;
-
-/* SOSDataSource protocol (non opaque). */
-typedef struct SOSDataSource *SOSDataSourceRef;
-
-typedef struct __OpaqueSOSObject *SOSObjectRef;
-
-/* Implement this if you want to create a new type of sync client.
- Currently we support keychains, but the engine should scale to
- entire filesystems. */
-enum SOSMergeResult {
-    kSOSMergeFailure = 0,   // CFErrorRef returned, no error returned in any other case
-    kSOSMergeLocalObject,   // We choose the current object in the dataSource the manifest is still valid.
-    kSOSMergePeersObject,   // We chose the peers object over our own, manifest is now dirty.
-    kSOSMergeCreatedObject, // *createdObject is returned and should be released
-};
-typedef CFIndex SOSMergeResult;
-
-struct SOSDataSource {
-    bool (*get_manifest_digest)(SOSDataSourceRef ds, uint8_t *out_digest, CFErrorRef *error);
-    SOSManifestRef (*copy_manifest)(SOSDataSourceRef ds, CFErrorRef *error);
-    bool (*foreach_object)(SOSDataSourceRef ds, SOSManifestRef manifest, CFErrorRef *error, bool (^handle_object)(SOSObjectRef object, CFErrorRef *error));
-    SOSMergeResult (*add)(SOSDataSourceRef ds, SOSObjectRef object, CFErrorRef *error);
-    void (*release)(SOSDataSourceRef ds);
-
-    SOSObjectRef (*createWithPropertyList)(SOSDataSourceRef ds, CFDictionaryRef plist, CFErrorRef *error);
-    CFDataRef (*copyDigest)(SOSObjectRef object, CFErrorRef *error);
-    CFDataRef (*copyPrimaryKey)(SOSObjectRef object, CFErrorRef *error);
-    CFDictionaryRef (*copyPropertyList)(SOSObjectRef object, CFErrorRef *error);
-    SOSObjectRef (*copyMergedObject)(SOSObjectRef object1, SOSObjectRef object2, CFErrorRef *error);
-    CFDictionaryRef (*backupObject)(SOSObjectRef object, uint64_t handle, CFErrorRef *error);
-    bool (*restoreObject)(SOSDataSourceRef ds, uint64_t handle, CFDictionaryRef item, CFErrorRef *error);
-};
-
-// Create a new engine instance for a given datasource.
-SOSEngineRef SOSEngineCreate(SOSDataSourceRef dataSource, CFErrorRef *error);
-
-// Dispose of an engine when it's no longer needed.
-void SOSEngineDispose(SOSEngineRef engine);
-
-// Handle incoming message from a remote peer.
-bool SOSEngineHandleMessage(SOSEngineRef engine, SOSPeerRef peer,
-                            CFDataRef message, CFErrorRef *error);
-
-// Initiate a sync with the providied peer by sending it a message.
-bool SOSEngineSyncWithPeer(SOSEngineRef engine, SOSPeerRef peer, bool force,
-                           CFErrorRef *error);
-
-/* Internal functions exposed for testability. */
-CFDataRef SOSEngineCreateManifestDigestMessage(SOSEngineRef engine, SOSPeerRef peer, CFErrorRef *error);
-CFDataRef SOSEngineCreateManifestMessage(SOSEngineRef engine, SOSPeerRef peer, CFErrorRef *error);
-CFDataRef SOSEngineCreateManifestAndObjectsMessage(SOSEngineRef engine, SOSPeerRef peer, CFErrorRef *error);
-
-CFStringRef SOSMessageCopyDescription(CFDataRef message);
-
-__END_DECLS
-
-#endif /* !_SEC_SOSENGINE_H_ */