CCKeyDerivationPBKDF на iOS5

Я пытаюсь написать функцию шифрования пароля в своем приложении, следуя этой статье .

Я написал функцию, которая запускает функцию CCCalibratePBKDFи выводит количество раундов.

const uint32_t oneSecond = 1000;
uint rounds = CCCalibratePBKDF(kCCPBKDF2,
                               predictedPasswordLength,
                               predictedSaltLength,
                               kCCPRFHmacAlgSHA256,
                               kCCKeySizeAES128,
                               oneSecond);

Это работает отлично, но когда я пытаюсь реализовать следующую часть, все идет не так.

Я могу начать писать вызов функции CCKeyDerivationPBKDF, и он автоматически -завершает функцию и все параметры. По мере заполнения все параметры также автоматически заполняются -.

- (NSData *)authenticationDataForPassword: (NSString *)password salt: (NSData *)salt rounds: (uint) rounds
{
    const NSString *plainData = @"Fuzzy Aliens";
    uint8_t key[kCCKeySizeAES128] = {0};
    int keyDerivationResult = CCKeyDerivationPBKDF(kCCPBKDF2,
                                                   [password UTF8String],
                                                   [password lengthOfBytesUsingEncoding: NSUTF8StringEncoding],
                                                   [salt bytes],
                                                   [salt length],
                                                   kCCPRFHmacAlgSHA256,
                                                   rounds,
                                                   key,
                                                   kCCKeySizeAES128);
    if (keyDerivationResult == kCCParamError) {
        //you shouldn't get here with the parameters as above
        return nil;
    }
    uint8_t hmac[CC_SHA256_DIGEST_LENGTH] = {0};
    CCHmac(kCCHmacAlgSHA256,
           key,
           kCCKeySizeAES128,
           [plainData UTF8String],
           [plainData lengthOfBytesUsingEncoding: NSUTF8StringEncoding],
           hmac);
    NSData *hmacData = [NSData dataWithBytes: hmac length: CC_SHA256_DIGEST_LENGTH];
    return hmacData;
}

Но как только я нажму ; он помечает ошибку, говорящую: «Нет соответствующей функции для вызова« CCKeyDerivationPBKDF »», и он не будет строиться или что-то в этом роде.

Я импортировал CommonCrypto/CommonKeyDerivation.h и CommonCrypto/CommonCryptor.h, поскольку оба они были необходимы для имен перечислений.

5
задан Fogmeister 13 August 2012 в 16:56
поделиться