#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>
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;
}