1 2 3#ifndef SOSKVSKEYS_H 4#define SOSKVSKEYS_H 5 6#include "SOSCircle.h" 7#include <SecureObjectSync/SOSTransportMessage.h> 8#include <SecureObjectSync/SOSTransportMessageKVS.h> 9 10// 11// MARK: Key formation 12// 13 14typedef enum { 15 kCircleKey, 16 kMessageKey, 17 kParametersKey, 18 kInitialSyncKey, 19 kRetirementKey, 20 kAccountChangedKey, 21 kUnknownKey, 22} SOSKVSKeyType; 23 24extern const CFStringRef kSOSKVSKeyParametersKey; 25extern const CFStringRef kSOSKVSInitialSyncKey; 26extern const CFStringRef kSOSKVSAccountChangedKey; 27extern const CFStringRef sCirclePrefix; 28extern const CFStringRef sRetirementPrefix; 29 30 31SOSKVSKeyType SOSKVSKeyGetKeyType(CFStringRef key); 32SOSKVSKeyType SOSKVSKeyGetKeyTypeAndParse(CFStringRef key, CFStringRef *circle, CFStringRef *from, CFStringRef *to); 33 34CFStringRef SOSCircleKeyCreateWithCircle(SOSCircleRef circle, CFErrorRef *error); 35CFStringRef SOSCircleKeyCreateWithName(CFStringRef name, CFErrorRef *error); 36CFStringRef SOSCircleKeyCopyCircleName(CFStringRef key, CFErrorRef *error); 37CFStringRef SOSMessageKeyCreateWithCircleNameAndPeerNames(CFStringRef circleName, CFStringRef from_peer_name, CFStringRef to_peer_name); 38 39CFStringRef SOSMessageKeyCopyCircleName(CFStringRef key, CFErrorRef *error); 40CFStringRef SOSMessageKeyCopyFromPeerName(CFStringRef messageKey, CFErrorRef *error); 41CFStringRef SOSMessageKeyCreateWithCircleAndPeerNames(SOSCircleRef circle, CFStringRef from_peer_name, CFStringRef to_peer_name); 42CFStringRef SOSMessageKeyCreateWithCircleAndPeerInfos(SOSCircleRef circle, SOSPeerInfoRef from_peer, SOSPeerInfoRef to_peer); 43 44CFStringRef SOSRetirementKeyCreateWithCircleNameAndPeer(CFStringRef circle_name, CFStringRef retirement_peer_name); 45CFStringRef SOSRetirementKeyCreateWithCircleAndPeer(SOSCircleRef circle, CFStringRef retirement_peer_name); 46 47CFStringRef SOSMessageKeyCreateFromTransportToPeer(SOSTransportMessageKVSRef transport, CFStringRef peer_name); 48CFStringRef SOSMessageKeyCreateFromPeerToTransport(SOSTransportMessageKVSRef transport, CFStringRef peer_name); 49 50#endif 51