]> git.saurik.com Git - apple/security.git/blobdiff - OSX/sec/SOSCircle/SecureObjectSync/SOSAccountLog.c
Security-57740.1.18.tar.gz
[apple/security.git] / OSX / sec / SOSCircle / SecureObjectSync / SOSAccountLog.c
diff --git a/OSX/sec/SOSCircle/SecureObjectSync/SOSAccountLog.c b/OSX/sec/SOSCircle/SecureObjectSync/SOSAccountLog.c
new file mode 100644 (file)
index 0000000..cd82a0b
--- /dev/null
@@ -0,0 +1,51 @@
+//
+//  SOSAccountLog.c
+//  sec
+//
+//  Created by Richard Murphy on 6/1/16.
+//
+//
+
+#include "SOSAccountLog.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <AssertMacros.h>
+#include "SOSAccountPriv.h"
+#include "SOSViews.h"
+#include <utilities/SecCFWrappers.h>
+#include <utilities/SecCoreCrypto.h>
+#include <utilities/SecBuffer.h>
+#include <SOSPeerInfoDER.h>
+
+#include <Security/SecureObjectSync/SOSTransport.h>
+
+#include <Security/SecureObjectSync/SOSPeerInfoCollections.h>
+#include <os/state_private.h>
+
+// Keep these for later
+static CFStringRef SOSAccountCreateStringRef(SOSAccountRef account) {
+    CFStringRef hex = NULL;
+    
+    CFDataRef derdata = SOSAccountCopyEncodedData(account, kCFAllocatorDefault, NULL);
+    require_quiet(derdata, errOut);
+    hex = CFDataCopyHexString(derdata);
+errOut:
+    CFRelease(derdata);
+    return hex;
+}
+
+void SOSAccountLog(SOSAccountRef account) {
+    CFStringRef hex = SOSAccountCreateStringRef(account);
+    if(!hex) return;
+    secdebug("accountLog", "Full contents: %@", hex);
+    CFRelease(hex);
+}
+
+SOSAccountRef SOSAccountCreateFromStringRef(CFStringRef hexString) {
+    CFDataRef accountDER = CFDataCreateFromHexString(kCFAllocatorDefault, hexString);
+    if(!accountDER) return NULL;
+    SOSAccountRef account = SOSAccountCreateFromData(kCFAllocatorDefault, accountDER, NULL, NULL);
+    CFReleaseNull(accountDER);
+    return account;
+}