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 sTransportType
; // Dictates the transport type
27 extern CFStringRef sDeviceID
; // The IDS device id
28 extern CFStringRef sRingState
; // Dictionary of Ring Membership States
29 extern CFStringRef sBackupKeyKey
;
30 extern CFStringRef sEscrowRecord
;
32 bool SOSPeerInfoUpdateToV2(SOSPeerInfoRef pi
, CFErrorRef
*error
);
33 void SOSPeerInfoPackV2Data(SOSPeerInfoRef peer
);
34 bool SOSPeerInfoExpandV2Data(SOSPeerInfoRef pi
, CFErrorRef
*error
);
35 void SOSPeerInfoV2DictionarySetValue(SOSPeerInfoRef peer
, const void *key
, const void *value
);
36 void SOSPeerInfoV2DictionaryRemoveValue(SOSPeerInfoRef peer
, const void *key
);
38 const CFMutableDataRef
SOSPeerInfoV2DictionaryCopyData(SOSPeerInfoRef pi
, const void *key
);
39 const CFMutableSetRef
SOSPeerInfoV2DictionaryCopySet(SOSPeerInfoRef pi
, const void *key
);
40 const CFMutableStringRef
SOSPeerInfoV2DictionaryCopyString(SOSPeerInfoRef pi
, const void *key
);
41 const CFBooleanRef
SOSPeerInfoV2DictionaryCopyBoolean(SOSPeerInfoRef pi
, const void *key
);
42 const CFMutableDictionaryRef
SOSPeerInfoV2DictionaryCopyDictionary(SOSPeerInfoRef pi
, const void *key
);
44 bool SOSPeerInfoV2DictionaryHasSet(SOSPeerInfoRef pi
, const void *key
);
45 bool SOSPeerInfoV2DictionaryHasData(SOSPeerInfoRef pi
, const void *key
);
46 bool SOSPeerInfoV2DictionaryHasString(SOSPeerInfoRef pi
, const void *key
);
47 bool SOSPeerInfoV2DictionaryHasBoolean(SOSPeerInfoRef pi
, const void *key
);
49 bool SOSPeerInfoV2DictionaryHasSetContaining(SOSPeerInfoRef pi
, const void *key
, const void* value
);
50 void SOSPeerInfoV2DictionaryForEachSetValue(SOSPeerInfoRef pi
, const void *key
, void (^action
)(const void* value
));
51 void SOSPeerInfoV2DictionaryWithSet(SOSPeerInfoRef pi
, const void *key
, void(^operation
)(CFSetRef set
));
54 bool SOSPeerInfoSerialNumberIsSet(SOSPeerInfoRef pi
);
55 void SOSPeerInfoSetSerialNumber(SOSPeerInfoRef pi
);
57 #endif /* defined(_sec_SOSPeerInfoV2_) */