Например:
Код: Выделить всё
gRtgfUzWgU8u822zwm9mp2kjwEaEvezlKvNX4v/sosE=
DC=local,DC=test,CN=Test CA
1115037260598308431605600959985753049847038081
Во время проверки подписи код должен проверить, относится ли содержимое элемента xades:SigningCertificate к тому же сертификату, который находится в части подписи XML. Но когда я сравниваю информацию, считанную из элемента xades:IssuerSerial, с отличительным именем эмитента, считанным из встроенного сертификата, это эквивалентно, но отличается при кодировании DER.
Код: Выделить всё
X509Name signingCertIssuerDN = new X509Name(_issuerSerial.X509IssuerName);
Byte[] signingCertIssuerBytes = signingCertIssuerDN.GetEncoded();
X509Certificate xmldsigCert = new X509Certificate(Convert.FromBase64String(_keyInfoXml.InnerText));
X509Name dsigIssuerDN = dsigCert.IssuerDN;
Byte[] dsigIssuerBytes = dsigIssuerDN.GetEncoded();
Boolean isEquivalent = dsigIssuerDN.Equivalent(certIssuerDN); // true
Boolean isEncodedSame = dsigIssuerBytes.SequnenceEqual(signingCertIssuerBytes); // false
Подробнее здесь: https://stackoverflow.com/questions/798 ... t-the-same
Мобильная версия