powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / RSA, CLR, BouncyCastle и непонятно что
4 сообщений из 4, страница 1 из 1
RSA, CLR, BouncyCastle и непонятно что
    #38975190
Ya_Vanilko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Бьюсь не один день над проблемой шифрования данных. На каждом шагу новые трудности. В итоге получила работающую версию WinForm с таким кодом:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
StreamReader sr = new StreamReader(@"C:\FK1\N1_test_public.cer"); //Надо указать путь к pem  файлу
            PemReader pr = new PemReader(sr);
            CspParameters RSAParams = new CspParameters();
            RSAParams.Flags = CspProviderFlags.UseMachineKeyStore;
            RsaKeyParameters KeyPair = (RsaKeyParameters)pr.ReadObject();
            RSAParameters rsapar = new RSAParameters();
            sr.Close();
            rsapar.Modulus = KeyPair.Modulus.ToByteArrayUnsigned();
            rsapar.Exponent = KeyPair.Exponent.ToByteArrayUnsigned();
            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(1024, RSAParams);
            rsa.ImportParameters(rsapar);
 
///////// Вот строка, в которой появляется ошибка
            byte[] encrypted = rsa.Encrypt(Encoding.Default.GetBytes(textBox1.Text), false);
//////
 
            string encdate = Convert.ToBase64String(encrypted);
            textBox4.Text =encdate;



Все работает. Создаю CLR, размещаю на сервере, перекладываю ключи, куда положено, и начинаю тихо радоваться, что все заработает.
Но! При запуске функции, которая создалась на основе сборки, получаю ошибку:
System.Security.Cryptography.CryptographicException: Key not valid for use in specified state. System.Security.Cryptography.CryptographicException: at System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr) at System.Security.Cryptography.Utils._EncryptKey(SafeKeyHandle hPubKey, Byte[] key) at System.Security.Cryptography.RSACryptoServiceProvider.Encrypt(Byte[] rgb, Boolean fOAEP) at UserDefinedFunctions.fn_fk1_getdata(String str, String url) .

Что не так? При создании веб-сервиса, шифрование тоже работает, а вот именно в сборке - проблема...
Помогите, пожалуйста!!!!
...
Рейтинг: 0 / 0
RSA, CLR, BouncyCastle и непонятно что
    #38975344
Фотография Belavik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ya_VanilkoДобрый день! Бьюсь не один день над проблемой шифрования данных. На каждом шагу новые трудности. В итоге получила работающую версию WinForm с таким кодом:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
StreamReader sr = new StreamReader(@"C:\FK1\N1_test_public.cer"); //Надо указать путь к pem  файлу
            PemReader pr = new PemReader(sr);
            CspParameters RSAParams = new CspParameters();
            RSAParams.Flags = CspProviderFlags.UseMachineKeyStore;
            RsaKeyParameters KeyPair = (RsaKeyParameters)pr.ReadObject();
            RSAParameters rsapar = new RSAParameters();
            sr.Close();
            rsapar.Modulus = KeyPair.Modulus.ToByteArrayUnsigned();
            rsapar.Exponent = KeyPair.Exponent.ToByteArrayUnsigned();
            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(1024, RSAParams);
            rsa.ImportParameters(rsapar);
 
///////// Вот строка, в которой появляется ошибка
            byte[] encrypted = rsa.Encrypt(Encoding.Default.GetBytes(textBox1.Text), false);
//////
 
            string encdate = Convert.ToBase64String(encrypted);
            textBox4.Text =encdate;




Все работает. Создаю CLR, размещаю на сервере, перекладываю ключи, куда положено, и начинаю тихо радоваться, что все заработает.
Но! При запуске функции, которая создалась на основе сборки, получаю ошибку:
System.Security.Cryptography.CryptographicException: Key not valid for use in specified state. System.Security.Cryptography.CryptographicException: at System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr) at System.Security.Cryptography.Utils._EncryptKey(SafeKeyHandle hPubKey, Byte[] key) at System.Security.Cryptography.RSACryptoServiceProvider.Encrypt(Byte[] rgb, Boolean fOAEP) at UserDefinedFunctions.fn_fk1_getdata(String str, String url) .

Что не так? При создании веб-сервиса, шифрование тоже работает, а вот именно в сборке - проблема...
Помогите, пожалуйста!!!!
Просто прочитав message ошибки - возможно длина ключа играет роль?
...
Рейтинг: 0 / 0
RSA, CLR, BouncyCastle и непонятно что
    #38975379
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему бы не прикрутить try catch, выловить ошибку, прочитать текст и пр. ?
...
Рейтинг: 0 / 0
RSA, CLR, BouncyCastle и непонятно что
    #38975402
Ya_Vanilko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне кажется, что если бы была проблема с ключами, то не работали бы и WinForm и ws, а там проблем нет (сообщения кодирую одни и те же).
try был прикручен и это дало только строку, в которой вылавливается ошибка, а текст ошибки уже приложен к сообщению.
Изначально была мысль, что ключ не открывается, когда я открываю его, вызвав функцию на базе данных, но при открытии файла ошибки нет (к сожалению, на CLR точку останова не поставишь и во все переменные не заглянешь...)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / RSA, CLR, BouncyCastle и непонятно что
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]