You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ситуация следующая: на одном сервере установлены КриптоПРО 4 и VipNet. При шифровании по ГОСТ 34.10 - 2012 (ЭЛН и ФСС :)) выдавалось сообщение "Плохой ключ" при попытке шифрования сессионного ключа.
System.Security.Cryptography.CryptographicException: Плохой ключ.
в GostCryptography.Native.CryptoApiHelper.ExportCspBlob(SafeKeyHandleImpl symKeyHandle, SafeKeyHandleImpl keyExchangeHandle, Int32 blobType)
в GostCryptography.Gost_R3410.Gost_R3410_KeyExchangeAlgorithm.EncodeKeyExchangeInternal(Gost_28147_89_SymmetricAlgorithm keyExchangeAlgorithm, Int32 keyExchangeExportAlgId)
в GostCryptography.Gost_R3410.Gost_R3410_KeyExchangeAlgorithm.EncodeKeyExchangeInternal(Gost_28147_89_SymmetricAlgorithm keyExchangeAlgorithm, GostKeyExchangeExportMethod keyExchangeExportMethod)
в GostCryptography.Gost_R3410.Gost_R3410_KeyExchangeAlgorithm.EncodeKeyExchange(SymmetricAlgorithm keyExchangeAlgorithm, GostKeyExchangeExportMethod keyExchangeExportMethod)
в GostCryptography.Gost_R3410.Gost_R3410_KeyExchangeFormatter`3.CreateKeyExchangeInfo(SymmetricAlgorithm keyExchangeAlgorithm)
в GostCryptography.Gost_R3410.Gost_R3410_KeyExchangeFormatter`3.CreateKeyExchangeData(SymmetricAlgorithm keyExchangeAlgorithm)
в GostCryptography.Xml.GostEncryptedXmlImpl.EncryptKey(Gost_28147_89_SymmetricAlgorithmBase sessionKey, GostAsymmetricAlgorithm publicKey)
в GostCryptography.Xml.GostEncryptedXml.EncryptKey(Gost_28147_89_SymmetricAlgorithmBase sessionKey, GostAsymmetricAlgorithm publicKey)
Для себя решил проблему, изменив в Native\CryptoAPIHelper.cs в методе public static ProviderType GetAvailableProviderType_2012_512()
Сначала проверку на установленный криптопро, затем на випнет.
Собственно вопрос: а как можно в новой версии установить предпочитаемый тип криптопровайдера? В классе GostCryptoConfig они все readonly.
The text was updated successfully, but these errors were encountered:
Выпустил v2.0.3, в ней есть возможность установить желаемый тип криптопровайдера явно:
GostCryptoConfig.ProviderType =<VipNet или CryptoPro>;
GostCryptoConfig.ProviderType_2012_512=<VipNet_2012_512 или CryptoPro_2012_512>;
GostCryptoConfig.ProviderType_2012_1024=<VipNet_2012_1024 или CryptoPro_2012_1024>;
По умолчанию остается старая логика - автоматическое определение предустановленного криптопровайдера, ViPNet в приоритете.
Ситуация следующая: на одном сервере установлены КриптоПРО 4 и VipNet. При шифровании по ГОСТ 34.10 - 2012 (ЭЛН и ФСС :)) выдавалось сообщение "Плохой ключ" при попытке шифрования сессионного ключа.
Даже при использовании в коде
Сама ошибка:
Для себя решил проблему, изменив в Native\CryptoAPIHelper.cs в методе public static ProviderType GetAvailableProviderType_2012_512()
Сначала проверку на установленный криптопро, затем на випнет.
Собственно вопрос: а как можно в новой версии установить предпочитаемый тип криптопровайдера? В классе GostCryptoConfig они все readonly.
The text was updated successfully, but these errors were encountered: