1 2#ifndef SOSTransportKeyParameter_h 3#define SOSTransportKeyParameter_h 4 5#include <CoreFoundation/CoreFoundation.h> 6#include <CoreFoundation/CFRuntime.h> 7#include <SecureObjectSync/SOSAccount.h> 8 9typedef struct __OpaqueSOSTransportKeyParameter * SOSTransportKeyParameterRef; 10 11struct __OpaqueSOSTransportKeyParameter { 12 CFRuntimeBase _base; 13 SOSAccountRef account; 14 /* Connections from CF land to vtable land */ 15 CFStringRef (*copyDescription)(SOSTransportKeyParameterRef object); 16 void (*destroy)(SOSTransportKeyParameterRef object); 17 18 19 // TODO: Make this take broader parameters and assemble the key parameters blob? 20 bool (*publishCloudParameters)(SOSTransportKeyParameterRef transport, CFDataRef data, CFErrorRef* error); 21 bool (*handleKeyParameterChanges)(SOSTransportKeyParameterRef transport, CFDataRef data, CFErrorRef error); 22 bool (*setToNewAccount)(SOSTransportKeyParameterRef transport); 23}; 24 25bool SOSTrasnportKeyParameterPublishCloudParameters(SOSTransportKeyParameterRef transport, CFDataRef data, CFErrorRef* error); 26 27bool SOSTrasnportKeyParameterPublishCloudParameters(SOSTransportKeyParameterRef transport, CFDataRef data, CFErrorRef* error); 28SOSTransportKeyParameterRef SOSTransportKeyParameterCreateForSubclass(size_t size, SOSAccountRef account, CFErrorRef *error); 29bool SOSTransportKeyParameterHandleKeyParameterChanges(SOSTransportKeyParameterRef transport, CFDataRef data, CFErrorRef error); 30bool SOSTransportKeyParameterHandleNewAccount(SOSTransportKeyParameterRef transport); 31 32SOSAccountRef SOSTransportKeyParameterGetAccount(SOSTransportKeyParameterRef transport); 33 34#endif 35