Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 10.12.2018
Сообщений: 5
1

Расшифровка p12: Указан неправильный алгоритм

11.12.2018, 10:35. Показов 2356. Ответов 5

Author24 — интернет-сервис помощи студентам
Добрый день. В C# новичок, помогите разобраться с проблемой.
Есть зашифрованный файл формата *.p12 (ЭЦП), нужно получить значение файла (сертификат) в строку. Для последующей отправки в составе SOAP запроса на WEB-сервис (с отправкой разобрался с горем пополам). Для расшифровки нашел (немного переделал) код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Security.Cryptography.X509Certificates;
    using System.Security;
 
//.......
 
    public partial class Form1 : Form
    {
        SecureString securePwd = new SecureString();
        ConsoleKeyInfo key;
        OpenFileDialog openFileDialog1 = new OpenFileDialog();
 
//.......
 
        private void button1_Click(object sender, EventArgs e)
        {
            // выбираем файл .p12
            if (openFileDialog1.ShowDialog() != DialogResult.OK) return;
            //путь в переменную
            string Certificate = openFileDialog1.FileName;
            SecureString securePwd = new SecureString();
            //пароль от .p12 берем из текстового поля
            string passwordPre = textBox1.Text;
            char[] passwordChars = passwordPre.ToCharArray();
            SecureString password = new SecureString();
            //так как X509Certificate 2 параметром принимает тип SecureString, переводим строку в формат
            //при передачи строкового значения ругался на преобразование
            foreach (char c in passwordChars)
            {
            password.AppendChar(c);
            }
            X509Certificate cert = new X509Certificate(Certificate,password);
            //получаем значение
            string resultsTrue = cert.ToString(true);
 
//.......
 
        }
 
    }
проблема в строке
C#
1
X509Certificate cert = new X509Certificate(Certificate,password);
выдает предупреждение:
Указан неправильный алгоритм.

Внимание вопрос знатокам:
В чем может быть причина? Как исправить?

Система:
Microsoft Windows XP
Home Edition
версия 2002
Service Pack3

Microsoft Visual Studio 2010
Microsoft .NET Framework 4
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2018, 10:35
Ответы с готовыми решениями:

Неправильный алгоритм задачи с массивом
Есть задача, найти из трех массивов a,b,c больший элемент в i = 1,2,3,4,5,6,7,8, тоесть a ... и...

Графический объект!!!неправильный алгоритм
Вот моя программа Она почему то не правильная....типа нахождения движения мехханизма должно...

Неправильный алгоритм нечеткого поиска
Шарясь по просторам инета, наткнулся на следующую публикацию молодыми дарованиями алгоритма...

Укажите, почему этот алгоритм неправильный
Здравствуйте. Изучаю по книгам программирование, сейчас разбираю алгоритмы сортировки. Первая и...

5
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
11.12.2018, 21:08 2
Serich, по моему это из-за Windows XP. Она не поддерживает ряд современных алгоритмом. Поэтому производители браузеров прекратили её поддерживать. Есть возможность проверить этот под под более современной ОС чтобы точно убедиться?
1
0 / 0 / 0
Регистрация: 10.12.2018
Сообщений: 5
12.12.2018, 09:06  [ТС] 3
Тоже читал что может быть из-за XP. Проверил на Windows 7, проблема та же.
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
13.12.2018, 10:00 4
Serich, в таком случае советую еще попробовать новейшую версию .NET под Windows 7.
0
910 / 795 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
13.12.2018, 10:14 5
Serich, X509Certificate2 пробовали использовать? обычный X509Certificate вроде как "урезанный" и поддерживает только ASN.1 DER
0
0 / 0 / 0
Регистрация: 10.12.2018
Сообщений: 5
14.12.2018, 11:03  [ТС] 6
Обнаружил странность.
Есть 2 файла:
AUTH_RSA....p12 - для регистрации
GOSTKNCA....p12 - для подписи
Файл для регистрации, получаю строку без проблем (так же пробовал с расширением *.cer, тоже все нормально), а вот файл подписи, не могу получить строку.
Уже начинаю подумывать над другим способом подписи, создавать *.xml файл и уже в нем подписывать в определенный тег (хотя расшифровку подписи так и так нужно получить).
0
14.12.2018, 11:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2018, 11:03
Помогаю со студенческими работами здесь

Алгоритм Флойда-Уоршелла (результат работы неправильный)
Задание выглядит так: Дан ориентированный взвешенный граф. Найти пару вершин, кратчайшее...

Как спрятать или чем заменить файл p12
Здравствуйте. Имеется скрипт, основанный на библиотеке Google API Client Library for PHP, который...

Неправильный логин и неправильный пароль, программа не выдает сообщения об ошибке
Вообщем проблема такова: DBConnect->ConnectionString = "Provider=SQLOLEDB.1;Password=" +...

Неправильный парсинг строки и неправильный её вывод
Добрый день! Столкнулся с непонятным поведением парсера: На вход подается вот такая строка: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru