OpenSSL 3.x PKCS12_NewPass «Неизвестный алгоритм PBE» со значениями по умолчанию? [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 OpenSSL 3.x PKCS12_NewPass «Неизвестный алгоритм PBE» со значениями по умолчанию? [закрыто]

Сообщение Anonymous »

Я недавно обновил старый код от OpenSSL 1.x до 3.x. Он успешно генерировал файлы ключей PKCS12, которые работали нормально для большинства применений, используя значения по умолчанию: < /p>

Код: Выделить всё

p12 = PKCS12_create((char*)passout, (char*) name, pkey, x509ss, certs,
key_pbe, cert_pbe, iter, -1, 0);
< /code>
, за которым следует < /p>
PKCS12_set_mac(p12, (char*)passout, -1, NULL, 0, maciter, NULL);
В старой версии key_pbe и cert_pbe были Nid_pbe_withsha1and3_key_tripledes_cbc , что теперь устарело; Новая версия устанавливает оба на 0 (которая отображает по умолчанию NID_AES_256_CBC ). iter и maciter являются pkcs12_default_iter .
С этими настройками я смог загрузить, сохранить и использовать клавиши и Certs без проблем ...
...xcept для вызова pkcs12_newpass .

Код: Выделить всё

PKCS12_newpass(p12, passout, newPassword);
сбой со следующим стеком ошибок:

Код: Выделить всё

C09D5351F87F0000:error:03000079:digital envelope routines:EVP_PBE_CipherInit_ex:unknown pbe algorithm:../crypto/evp/evp_pbe.c:117:TYPE=hmacWithSHA256
C09D5351F87F0000:error:11800067:PKCS12 routines:PKCS12_item_i2d_encrypt_ex:encrypt error:../crypto/pkcs12/p12_decr.c:199:
C09D5351F87F0000:error:11800067:PKCS12 routines:PKCS12_pack_p7encdata_ex:encrypt error:../crypto/pkcs12/p12_add.c:135:
C09D5351F87F0000:error:11800072:PKCS12 routines:PKCS12_newpass:parse error:../crypto/pkcs12/p12_npas.c:51:
As far as I've been able to work out, the first error is because the code is looking for an identifier of type EVP_PBE_TYPE_OUTER (like the previous NID_pbe_WithSHA1And3_Key_TripleDes_CBC), while the MAC call is setting it to NID_hmacWithSHA256, which is of type Evp_pbe_type_prf .
Я попытался заменить pkcs12_set_mac () с помощью pkcs12_set_pbmac1_pbkdf2 () , определение evp_sha256 () как algorith, но это так. /> Есть идеи? Есть ли эквивалент nid_pbe_withsha1and3_key_tripledes_cbc , который использует SHA256 для обоих?

Подробнее здесь: https://stackoverflow.com/questions/796 ... ult-values
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»