Nano Hash - криптовалюты, майнинг, программирование

Как получить информацию из цифровой подписи xml (файл .cer) в С#?

Я использую сервис, который возвращает XML-подпись. теперь моя задача состоит в том, чтобы определить имя подписывающей стороны из подписи ответа xml.

Формат подписи ответа XML:

<?xml version="1.0" encoding="UTF-8"?>
<EsignResp errCode="NA" errMsg="NA" resCode="XXXXXXXXXXXXXXXXXXXXXXXX" status="1" ts="2019-05-02T15:15:13" txn="XXXXXXXXXXXXXXXXXXXXXXXX">
   <UserX509Certificate>XXXXXXXXXXXXXXXXXXXXXXXX</UserX509Certificate>
   <Signatures>
      <DocSignature error="" id="1" sigHashAlgorithm="SHA256">XXXXXXXXXXXXXXXXXXXXXXXX</DocSignature>
   </Signatures>
   <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
      <SignedInfo>
         <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
         <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
         <Reference URI="">
            <Transforms>
               <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
            </Transforms>
            <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
            <DigestValue>XXXXXXXXXXXXXXXXXXXXXXXX</DigestValue>
         </Reference>
      </SignedInfo>
      <SignatureValue>XXXXXXXXXXXXXXXXXXXXXXXX</SignatureValue>
      <KeyInfo>
         <KeyValue>
            <RSAKeyValue>
               <Modulus>XXXXXXXXXXXXXXXXXXXXXXXX</Modulus>
               <Exponent>AQAB</Exponent>
            </RSAKeyValue>
         </KeyValue>
         <X509Data>
            <X509SubjectName>XXXXXXXXXXXXXXXXXXXXXXXX</X509SubjectName>
            <X509Certificate>XXXXXXXXXXXXXXXXXXXXXXXX</X509Certificate>
         </X509Data>
      </KeyInfo>
   </Signature>
</EsignResp>

В теге <UserX509Certificate> я получаю сведения о сертификате, такие как Кому выдан, Кем выдан, Действителен от.

Есть ли способ получить эту информацию с помощью itextsharp (С#).


  • Вы сказали, что можете получить сведения о сертификате, такие как «Кому выдан», «Кем выдан», «Действителен от» из сертификата. Каким образом ? 02.05.2019
  • Я имею в виду, как мне получить эту информацию из подписи xml 02.05.2019
  • при создании файла .cer из Userx509Certificate я вижу эту информацию в разделе информации о подписи 02.05.2019

Ответы:


1

Вам не нужен itestsharp для обработки и разбора сертификатов. Это все о pdf и не требуется для xml.

Вы можете преобразовать строку Base64 в тип X509Certificate2, используя приведенный ниже код.

byte[] bytes = Convert.FromBase64String("MII<...>==");
var cert = new X509Certificate2(bytes);

Тогда переменная cert выше будет иметь такие свойства, как

cert.Issuer or cert.IssuerName
cert.Subject or cert.SubjectName

Содержимое может быть проанализировано с помощью split(',').split('=') в соответствии с вашими требованиями.

04.05.2019
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..