5 // Created by Richard Murphy on 1/26/15.
9 #ifndef _sec_SOSPeerInfoV2_
10 #define _sec_SOSPeerInfoV2_
12 #include <CoreFoundation/CFRuntime.h>
13 #include <CoreFoundation/CoreFoundation.h>
14 #include <Security/SecureObjectSync/SOSPeerInfo.h>
15 #include <Security/SecureObjectSync/SOSPeerInfoPriv.h>
16 #include <Security/SecureObjectSync/SOSViews.h>
17 #include <Security/SecureObjectSync/SOSPeerInfoSecurityProperties.h>
19 // Description Dictionary Entries Added for V2
20 extern CFStringRef sV2DictionaryKey
; // CFData wrapper for V2 extensions
21 extern CFStringRef sViewsKey
; // Set of Views
22 extern CFStringRef sSerialNumberKey
; // Device Serial Number
23 extern CFStringRef sSecurityPropertiesKey
; // Set of Security Properties
24 extern CFStringRef kSOSHsaCrKeyDictionary
; // HSA Challenge-Response area
25 extern CFStringRef sPreferIDS
; // Whether or not a peer requires to speak over IDS or KVS
26 extern CFStringRef sPreferIDSFragmentation
; // Whether or not a peer requires to speak over fragmented IDS or not
28 extern CFStringRef sTransportType
; // Dictates the transport type
29 extern CFStringRef sDeviceID
; // The IDS device id
30 extern CFStringRef sRingState
; // Dictionary of Ring Membership States
31 extern CFStringRef sBackupKeyKey
;
32 extern CFStringRef sEscrowRecord
;
34 bool SOSPeerInfoUpdateToV2(SOSPeerInfoRef pi
, CFErrorRef
*error
);
35 void SOSPeerInfoPackV2Data(SOSPeerInfoRef peer
);
36 bool SOSPeerInfoExpandV2Data(SOSPeerInfoRef pi
, CFErrorRef
*error
);
37 void SOSPeerInfoV2DictionarySetValue(SOSPeerInfoRef peer
, const void *key
, const void *value
);
38 void SOSPeerInfoV2DictionaryRemoveValue(SOSPeerInfoRef peer
, const void *key
);
40 const CFMutableDataRef
SOSPeerInfoV2DictionaryCopyData(SOSPeerInfoRef pi
, const void *key
);
41 const CFMutableSetRef
SOSPeerInfoV2DictionaryCopySet(SOSPeerInfoRef pi
, const void *key
);
42 const CFMutableStringRef
SOSPeerInfoV2DictionaryCopyString(SOSPeerInfoRef pi
, const void *key
);
43 const CFBooleanRef
SOSPeerInfoV2DictionaryCopyBoolean(SOSPeerInfoRef pi
, const void *key
);
44 const CFMutableDictionaryRef
SOSPeerInfoV2DictionaryCopyDictionary(SOSPeerInfoRef pi
, const void *key
);
46 bool SOSPeerInfoV2DictionaryHasSet(SOSPeerInfoRef pi
, const void *key
);
47 bool SOSPeerInfoV2DictionaryHasData(SOSPeerInfoRef pi
, const void *key
);
48 bool SOSPeerInfoV2DictionaryHasString(SOSPeerInfoRef pi
, const void *key
);
49 bool SOSPeerInfoV2DictionaryHasBoolean(SOSPeerInfoRef pi
, const void *key
);
51 bool SOSPeerInfoV2DictionaryHasSetContaining(SOSPeerInfoRef pi
, const void *key
, const void* value
);
52 void SOSPeerInfoV2DictionaryForEachSetValue(SOSPeerInfoRef pi
, const void *key
, void (^action
)(const void* value
));
53 void SOSPeerInfoV2DictionaryWithSet(SOSPeerInfoRef pi
, const void *key
, void(^operation
)(CFSetRef set
));
56 bool SOSPeerInfoSerialNumberIsSet(SOSPeerInfoRef pi
);
57 void SOSPeerInfoSetSerialNumber(SOSPeerInfoRef pi
);
58 CFStringRef
SOSPeerInfoCopySerialNumber(SOSPeerInfoRef pi
);
60 #endif /* defined(_sec_SOSPeerInfoV2_) */