Шифрование в С#
От: kra_ag  
Дата: 11.05.05 13:22
Оценка:
Доброе всем время суток!

Подключил к своему приложению шифрование, т.е. при открытии сессии формируется симметричный ключ и вектор, зашифровывается открытым ключом пользователя и отправляется ему. Пользователь получая пакет расшифровывает ключ сессии и дальнейший обмен пакетами идет с использование симметричного ключа. Все работало прекрасно, пока приложение не установили на 98 Windows. Программа корректно формирует ключи, обменивается, но вот как только пытаешься использовать асимметричные ключи происходит ошибка при выполнении операции Decrypt.


        static public void DecryptSymerticKey(Hashtable ht)
        {
            try
            {
                byte[] EncryptedSymmetricKey=(byte[])ht["Key"];
                byte[] EncryptedSymmetricIV=(byte[])ht["IV"];

                CspParameters rsParams = new CspParameters();
                rsParams.Flags = CspProviderFlags.UseMachineKeyStore;
                rsParams.KeyContainerName = "MyStore";


                RSACryptoServiceProvider rsaCSP = new RSACryptoServiceProvider(rsParams);
                rsaCSP.PersistKeyInCsp = true;


                //после выполнения следующей операции возникает ошибка:
                // Unknown failure; unable to generate error message.
                byte[] SessionKey = rsaCSP.Decrypt(EncryptedSymmetricKey, false);
                byte[] SessionIV = rsaCSP.Decrypt(EncryptedSymmetricIV, false);
            }
            catch (CryptographicException cEx)
            {
                throw new Exception("Ошибка при инициализации провайдера. ");
            }
        }


Все перерыл, но не могу найти в чем может быть дело. Симметричное шифрование идет нормально. Пытался сохранять ключи и в бинарном файле. Поднимал на других платформах — все работает, поднимаешь на 98 — нет. Может кто сталкивался???? Помогите советом.
Шифрование в С#
От: Аноним  
Дата: 11.05.05 13:43
Оценка:
http://www.gotdotnet.ru/Forums/Common/153933.aspx

Помни, надо обязательно обновиться до IE 6.0.
--------------------------
Found By Iteration
XML Powered
.NET Built


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Шифрование в С#
От: kra_ag  
Дата: 11.05.05 14:12
Оценка:
M>Помни, надо обязательно обновиться до IE 6.0.

Да на всех компах стоит Explorer 6, это первое на что было подозрение
Re: Шифрование в С#
От: akalend  
Дата: 11.05.05 14:16
Оценка:
я как раз пишу программу с использованием функций шифрования под Win 98

могу ли я использовать только одну библиотеку security.dll
без обертки всей NET

с классами работы по ftp такое проходило
Re: Шифрование в С#
От: kra_ag  
Дата: 12.05.05 07:15
Оценка:
После некоторых экспериментов выяснилось следующее:

Вне зависимости от того какой длины я делаю ключ, Windows 98 все время выдает ошибку при шифровании данных более 16 byte. Однако на других системах все нормально. Т.е. чтобы передать мне симметричный ключ (а он 32 byte-а), мне надо шифровать его по частям. Абсурд конечно. Может кто с этим сталкивался? Что нибудь посоветуете еще?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.