Browse Source

Add tests for Distinguished name comparison.

DEVSIX-9014

Autoported commit.
Original commit hash: [a57dd49bf]
pull/37/head
Glenn Volckaert 3 months ago
committed by iText Software
parent
commit
fa35e9f3cb
  1. 35
      itext.tests/itext.sign.tests/itext/signatures/CertificateInfoTest.cs
  2. 8
      itext.tests/itext.sign.tests/resources/itext/signatures/CertificateInfoTest/signatureWithNameEncodingDifferences.pdf
  3. 2
      port-hash

35
itext.tests/itext.sign.tests/itext/signatures/CertificateInfoTest.cs

@ -24,8 +24,12 @@ using System;
using System.Collections.Generic;
using iText.Bouncycastleconnector;
using iText.Commons.Bouncycastle;
using iText.Commons.Bouncycastle.Asn1.X500;
using iText.Commons.Bouncycastle.Cert;
using iText.Commons.Utils;
using iText.Kernel.Exceptions;
using iText.Kernel.Pdf;
using iText.Signatures.Testutils;
using iText.Test;
namespace iText.Signatures {
@ -36,6 +40,14 @@ namespace iText.Signatures {
private static readonly String EXPECTED_EXCEPTION_MESSAGE = FACTORY.GetBouncyCastleFactoryTestUtil().GetCertificateInfoTestConst
();
private const String ENCODED_DN = "MD0xCzAJBgNVBAYMAkJFMQ4wDAYDVQQKDAVpVGV4dDEeMBwGA1UEAwwVaVRleHRUZXN0SW50ZXJtZWRpYXRl";
private static readonly String CERTS_SRC = iText.Test.TestUtil.GetParentProjectDirectory(NUnit.Framework.TestContext
.CurrentContext.TestDirectory) + "/resources/itext/signatures/certs/";
private static readonly String SOURCE_FOLDER = iText.Test.TestUtil.GetParentProjectDirectory(NUnit.Framework.TestContext
.CurrentContext.TestDirectory) + "/resources/itext/signatures" + "/CertificateInfoTest/";
[NUnit.Framework.Test]
public virtual void X500InvalidDirectoryConstructorTest() {
NUnit.Framework.Assert.Catch(typeof(ArgumentException), () => new CertificateInfo.X500Name("some_dir"));
@ -86,5 +98,28 @@ namespace iText.Signatures {
new byte[] { 4, 8, 15, 16, 23, 42 }));
NUnit.Framework.Assert.AreEqual(EXPECTED_EXCEPTION_MESSAGE, exception.InnerException.Message);
}
[NUnit.Framework.Test]
public virtual void DistinguishedNameEncodingAndComparisonTest() {
IX509Certificate cert = (IX509Certificate)PemFileHelper.ReadFirstChain(CERTS_SRC + "intermediate.pem")[0];
IX500Name name = FACTORY.CreateX500Name(cert);
IX500Name differentlyEncodedName = FACTORY.CreateX500Name(FACTORY.CreateASN1Sequence(Convert.FromBase64String
(ENCODED_DN)));
NUnit.Framework.Assert.IsTrue(differentlyEncodedName.Equals(name));
NUnit.Framework.Assert.IsTrue(name.Equals(differentlyEncodedName));
}
[NUnit.Framework.Test]
public virtual void DistinguishedNameEncodingAndComparisonIntegrationTest() {
NUnit.Framework.Assert.DoesNotThrow(() => {
PdfDocument doc = new PdfDocument(new PdfReader(SOURCE_FOLDER + "signatureWithNameEncodingDifferences.pdf"
));
SignatureUtil signUtil = new SignatureUtil(doc);
IList<String> signNames = signUtil.GetSignatureNames();
PdfPKCS7 pkcs7 = signUtil.ReadSignatureData(signNames[0]);
NUnit.Framework.Assert.IsNotNull(pkcs7);
}
);
}
}
}

8
itext.tests/itext.sign.tests/resources/itext/signatures/CertificateInfoTest/signatureWithNameEncodingDifferences.pdf

@ -0,0 +1,8 @@
Hello World!
Digitally signed by
iTextTestRsaCert01
Date: 2025.04.23 16:53:03 +02:00
Reason: Test 1
Location: TestCity

2
port-hash

@ -1 +1 @@
0d8eb131608fed1576fd00603cfb4797f36a77fc
a57dd49bf5d453f6e84783e27122aef1f9ceb483
Loading…
Cancel
Save