powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Расшифровка p12: Указан неправильный алгоритм
7 сообщений из 7, страница 1 из 1
Расшифровка p12: Указан неправильный алгоритм
    #39746655
Serich18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. В 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 (проверено на Windows 7)
Home Edition
версия 2002
Service Pack3

Microsoft Visual Studio 2010
Microsoft .NET Framework 4
...
Рейтинг: 0 / 0
Расшифровка p12: Указан неправильный алгоритм
    #39746662
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
[System.CLSCompliant(false)]
public X509Certificate (string fileName, System.Security.SecureString password);


https://docs.microsoft.com/ru-ru/dotnet/api/system.clscompliantattribute?view=netframework-4.7.2
...
Рейтинг: 0 / 0
Расшифровка p12: Указан неправильный алгоритм
    #39746670
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя конечно фиг знает. Выскакивает предупреждение или исключение ? всё компилируется и работает?
...
Рейтинг: 0 / 0
Расшифровка p12: Указан неправильный алгоритм
    #39747066
Serich18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman MejtesВыскакивает предупреждение или исключение ?
ссылка на скрин
Roman Mejtes всё компилируется и работает?
Нет дальше строки
Код: c#
1.
X509Certificate cert = new X509Certificate(Certificate,password);


процесс не идет, такое ощущение что я указал неверный конструктор класса X509Certificate (X509Certificate(String, SecureString)), хотя из предложенных
https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.x509certificates.x509certificate?view=netframework-4.7.2
других вариантов не вижу, у меня есть имя файла сертификата (путь к файлу) и пароль к этому файлу.
...
Рейтинг: 0 / 0
Расшифровка p12: Указан неправильный алгоритм
    #39747783
Serich18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обнаружил странность.
Есть 2 файла:
AUTH_RSA....p12 - для регистрации
GOSTKNCA....p12 - для подписи
Файл для регистрации, получаю строку без проблем (так же пробовал с расширением *.cer, тоже все нормально), а вот файл подписи, не могу получить строку.
Уже начинаю подумывать над другим способом подписи, создавать *.xml файл и уже в нем подписывать в определенный тег (хотя расшифровку подписи так и так нужно получить).
...
Рейтинг: 0 / 0
Расшифровка p12: Указан неправильный алгоритм
    #39747816
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serich18,

первым делом попробуйте импортировать этот p12(pfx) в виндовой оснастке для сертификатов (start>run>mmc), чтобы убедиться что формат хранилища правильный.
...
Рейтинг: 0 / 0
Расшифровка p12: Указан неправильный алгоритм
    #39747840
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
windows xp новые сертификаты по ГОСТ 2012 не поддерживает вроде
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Расшифровка p12: Указан неправильный алгоритм
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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