Crypto.dll .NET

Автор Pavel.Zemlianykh, 06 Август 2014, 17:02:44

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

Вниз

Pavel.Zemlianykh

Здравствуйте, уважаемые разработчики!
Возникла необходимость интегрироваться с платежной системой Авангард Plat.
Подскажите как можно программно поставить подпись с вложением открытого ключа (PKCS7), зашифровать сообщение открытым ключем. Какая последовательность действий, какие функции нужно использовать

Спасибо за понимание,
С уважением.

Sergey

Добрый день.

Данная информация есть в sdk к данной библиотеки.

Pavel.Zemlianykh

Добрый день, неподскажете, где взять данный SDK?

Евгений

Цитата: Pavel.Zemlianykh от 07 Август 2014, 06:36:07
Добрый день, неподскажете, где взять данный SDK?

Добрый день.
См. эту тему.

Pavel.Zemlianykh

Цитата: Евгений от 07 Август 2014, 09:17:45
Цитата: Pavel.Zemlianykh от 07 Август 2014, 06:36:07
Добрый день, неподскажете, где взять данный SDK?

Добрый день.
См. эту тему.


Евгений, партнерство есть, спасибо, SDK установили.... не подскажете, почему не работает проверка подписи и Content после постановки всегда NULL:

        static void Main()
        {
            const string message = "message";
            var buffer = Encoding.GetEncoding("windows-1251").GetBytes(message);
            var cms = new GostCMS { input = buffer };
            var profile = new TumarProfile("profile://FSystem", string.Empty);
            X509Certificate signCert = null;
            for (int i = 0; i < profile.key_count; i++)
            {
                if (profile.keys.keySpec == CpTumar.AT_SIGNATURE)
                {
                    cms.privateKey = profile.keys.Private;
                    cms.certificate = new X509CertificateParser().ReadCertificate(profile.keys.user_certificate);
                    signCert = new X509CertificateParser().ReadCertificate(profile.keys.user_certificate);
                    break;
                }
            }
            try
            {
                cms.GenerateCMS();
                byte[] pkcs7 = cms.output;
                var checkCms = new GostCMS {input = pkcs7, certificate = signCert};
                Console.WriteLine(checkCms.VerifyCMS() ? "OK" : "FAIL");
            }
            catch (Exception ex)
            {
                Console.WriteLine(string.Format("exception - {0}", ex.Message));
            }
            Console.ReadLine();
        }








Sergey

Добрый день.

Данный пример у нас отрабатывает.
Поле Content, при использования класса GostCMS, заполняется только после успешной проверки подписи.

Пример может не работать если в указанном профайле несколько ключей для подписи.



Pavel.Zemlianykh

Цитата: Sergey от 07 Август 2014, 11:27:50
Добрый день.

Данный пример у нас отрабатывает.
Поле Content, при использования класса GostCMS, заполняется только после успешной проверки подписи.

Пример может не работать если в указанном профайле несколько ключей для подписи.


Добрый день
Спасибо за рекомендации, все заработало.

Подскажите для шифрования полученного пакета открытым ключем какие нужно выполнить манипуляции с профайлом?

Sergey

Цитата: Pavel.Zemlianykh от 07 Август 2014, 13:07:12
Подскажите для шифрования полученного пакета открытым ключем какие нужно выполнить манипуляции с профайлом?


Дополнительных манипуляций делать не надо.

Вверх