kc-44-secrecoverypassword.c [plain text]
#include <Security/SecRecoveryPassword.h>
#include "keychain_regressions.h"
static void tests(void)
{
const void *qs[] = {CFSTR("q1"), CFSTR("q2"), CFSTR("q3")};
CFArrayRef questions = CFArrayCreate(kCFAllocatorDefault, qs, 3, NULL);
const void *as[] = {CFSTR("a1"), CFSTR("a2"), CFSTR("a3")};
CFArrayRef answers = CFArrayCreate(kCFAllocatorDefault, as, 3, NULL);
CFStringRef password = CFSTR("AAAA-AAAA-AAAA-AAAA-AAAA-AAAA");
CFDictionaryRef wrappedPassword = SecWrapRecoveryPasswordWithAnswers(password, questions, answers);
isnt(wrappedPassword, NULL, "wrappedPassword NULL");
CFStringRef recoveredPassword = SecUnwrapRecoveryPasswordWithAnswers(wrappedPassword, answers);
isnt(recoveredPassword, NULL, "recoveredPassword NULL");
is(CFStringCompare(password, recoveredPassword, 0), kCFCompareEqualTo, "SecRecoveryPassword");
CFRelease(questions);
CFRelease(answers);
CFRelease(wrappedPassword);
CFRelease(recoveredPassword);
}
int kc_44_secrecoverypassword(int argc, char *const *argv)
{
plan_tests(3);
tests();
return 0;
}