Вот как я генерировал свои криптографические ключи до сих пор:
unsigned char *salt; //8 salt bytes were created earlier
unsigned char *password; //password was obtained earlier
int passwordLength; //password length as well
unsigned char evp_key[EVP_MAX_KEY_LENGTH] = {"\0"};
unsigned char iv[EVP_MAX_IV_LENGTH];
EVP_BytesToKey(cipher, EVP_md5(), salt, password, //cipher is also given
passwordLength,
1, evp_key, iv);
Результатом является ключ и «начальное значение». Затем я могу использовать эти два (evp_key
и iv
) вместе с данным шифром для шифрования моих данных.
Теперь, когда Lion не одобрил Apple, вышеприведенный код, у меня возникает следующий вопрос:
Вопрос: Как мне сделать то же самое с CommonCrypto?Я только что натолкнулся на функцию CCKeyDerivationPBKDF()
.Это тот, кого я ищу?Я не вижу, как это происходит, так как я не получаю никакого «начального значения» обратно.Я не знаю, как сравнить эту функцию CommonCrypto со старым методом.
В частности: Эта новая функция, кажется, даже не поддерживает алгоритм MD5 - только SHA1.Как тогда я могу создать новый код, обратно совместимый с моей старой кодовой базой (и файлами, которые он создал)?