@shushlyakov

Как расшифровать XML ГОСТ 28147-89 через КриптоПро\VipNet?

КриптоПро и VipNet предоставляют библиотеки, реализующий интерфейс MS CryptoAPI.
Есть XML, в ней указан алгоритм шифрования urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147
и алгоритм согласования ключей urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001

Сессионный ключ вроде получилось разобрать/импортировать:.
// Получение дескриптора криптопровайдера
CryptAcquireContext(&hProv, __CONTAINER_NAME__,NULL,PROV_GOST_2001_DH,0);
// Получение дескриптора закрытого ключа получателя.
CryptGetUserKey(hProv, AT_KEYEXCHANGE, &hKey);
// Получение ключа согласования импортом эфемерального ключа отправителя
// на открытом ключе получателя.
CryptImportKey(hProv, bEphemeralPublicKeySimple, 100, hKey, 0, &hAgreeKey);
// Установление алгоритма ключа согласования
ALG_ID alg = CALG_SIMPLE_EXPORT; // алгоритм ключа согласования
CryptSetKeyParam(hAgreeKey, KP_ALGID, (LPBYTE)&alg, 0);
// Получение сессионного ключа импортом зашифрованного сессионного ключа
// на ключе Agree.
CryptImportKey(hProv,pbKeyBlobSimple,dwBlobLenSimple,hAgreeKey,0,&hSessionKey);

Проблема в самой расшифровке:
CryptDecrypt(hSessionKey, 0, bFinal, 0, pbContent, &cbContent);

Функция отрабатывает без ошибок, но результат и близко не похож на исходное сообщение.
Кто-нибудь сталкивался с этим?
  • Вопрос задан
  • 1153 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект