Статус: Новичок
Группы: Участники
Зарегистрирован: 28.11.2024(UTC) Сообщений: 6  Откуда: Новосибирск Сказал(а) «Спасибо»: 3 раз
|
Здравствуйте! Нужно расшифровать данные, использую функцию CryptDecryptMessage, однако при использовании в консоли появляется Crypto-Pro GOST R 34.10-2012 KC1 CSP requests container password Type password: Что предлагает мне каждый раз через консоль вручную вводить пароль к контейнеру.
Так использую функцию: DWORD cbDecryptedMessage; CRYPT_DECRYPT_MESSAGE_PARA decryptParams; BYTE* pbDecryptedMessage; DWORD cbEncryptedBlob = (DWORD) message.length(); BYTE* pbEncryptedBlob = (BYTE*) message.c_str();
OpenCertStore();
memset(&decryptParams, 0, sizeof(CRYPT_DECRYPT_MESSAGE_PARA)); decryptParams.cbSize = sizeof(CRYPT_DECRYPT_MESSAGE_PARA); decryptParams.dwMsgAndCertEncodingType = MY_ENCODING_TYPE; decryptParams.cCertStore = 1; decryptParams.rghCertStore = &hStoreHandle;
if (!CryptDecryptMessage( &decryptParams, pbEncryptedBlob, cbEncryptedBlob, nullptr, &cbDecryptedMessage, nullptr)) { free(pbEncryptedBlob); printf("Error getting decrypted message size"); throw DomainException{""}; } printf("The size for the decrypted message is: %d.\n", cbDecryptedMessage);
pbDecryptedMessage = (BYTE*) malloc(cbDecryptedMessage); if (!pbDecryptedMessage) { printf("Memory allocation error while decrypting"); }
if (!CryptDecryptMessage( &decryptParams, pbEncryptedBlob, cbEncryptedBlob, pbDecryptedMessage, &cbDecryptedMessage, nullptr)) { printf("Error decrypting the message"); }
printf("Message Decrypted Successfully. \n"); printf("The decrypted string is: %s\n", (LPSTR) pbDecryptedMessage); auto result = base64_encode(pbDecryptedMessage,cbDecryptedMessage);
return result;
Так получаю доступ к хранилищу:
void PKCS7Encrypter::OpenCertStore() { hStoreHandle = CertOpenSystemStoreA(hCryptProv, _TEXT("MY")); if (!hStoreHandle) { throw DomainException{"Error getting store handle."}; } printf("The MY store is open. \n"); }
Вот думаю, где бы пароль прокинуть, чтобы вручную не вводить
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close