public void CreateCadesManifest() { var cadesManifestCreator = CadesManifestCreator.CreateWithoutSignatureFile(); var digestAlgorithm = MessageDigestAlgorithm.SHA256Desig; var fileEntry = new AsicePackageEntry("my.pdf", MimeType.ForString("application/pdf"), digestAlgorithm); fileEntry.Digest = new DigestContainer(new byte[] { 0, 0, 1 }, digestAlgorithm); var entries = new[] { fileEntry }; var manifest = cadesManifestCreator.CreateManifest(entries); manifest.Should().NotBeNull() .And .BeOfType <ManifestContainer>(); manifest.Data.Should().NotBeNull(); manifest.FileName.Should().Be(AsiceConstants.CadesManifestFilename); var xmlManifest = DeserializeManifest(manifest.Data.ToArray()); xmlManifest.Should().NotBeNull(); xmlManifest.SigReference.Should().BeNull(); xmlManifest.DataObjectReference.Should().HaveCount(1); var dataObjectRef = xmlManifest.DataObjectReference[0]; dataObjectRef.Should().NotBeNull(); dataObjectRef.MimeType.Should().Be(fileEntry.Type.ToString()); dataObjectRef.DigestValue.Should().Equal(fileEntry.Digest.GetDigest()); dataObjectRef.URI.Should().Be(fileEntry.FileName); }
private static DataObjectReferenceType ToDataObject(AsicePackageEntry packageEntry) { if (packageEntry == null) { return(null); } return(new DataObjectReferenceType { MimeType = packageEntry.Type.ToString(), DigestMethod = new DigestMethodType { Algorithm = packageEntry.MessageDigestAlgorithm.Uri.ToString() }, DigestValue = packageEntry.Digest.GetDigest(), URI = packageEntry.FileName }); }
public void CreateCadesManifestIncludingSignature() { var cadesManifestCreator = CadesManifestCreator.CreateWithSignatureFile(); var fileEntry = new AsicePackageEntry("my.pdf", MimeType.ForString("application/pdf"), MessageDigestAlgorithm.SHA256); fileEntry.Digest = new DigestContainer(new byte[] { 0, 0, 1 }, MessageDigestAlgorithm.SHA256); var manifest = cadesManifestCreator.CreateManifest(new[] { fileEntry }); manifest.Should().NotBeNull() .And .BeOfType <ManifestContainer>(); manifest.FileName.Should().Be(AsiceConstants.CadesManifestFilename); var xmlManifest = DeserializeManifest(manifest.Data.ToArray()); xmlManifest.Should().NotBeNull(); xmlManifest.SigReference.Should().NotBeNull(); xmlManifest.SigReference.MimeType.Should().Be(AsiceConstants.ContentTypeSignature); xmlManifest.DataObjectReference.Should().HaveCount(1); }
public void CreateCadesManifestIncludingSignature() { var cadesManifestCreator = CadesManifestCreator.CreateWithSignatureFile(); var fileEntry = new AsicePackageEntry("P.00987654321.001.P001.65013_File1.xml", MimeType.ForString("application/xml"), MessageDigestAlgorithm.SHA256Enc); fileEntry.Digest = new DigestContainer(new byte[] { 0, 0, 1 }, MessageDigestAlgorithm.SHA256Enc); var fileEntry2 = new AsicePackageEntry("ApprovalData/ApprovalData1.xml", MimeType.ForString("application/xml"), MessageDigestAlgorithm.SHA256Desig); fileEntry2.Digest = new DigestContainer(new byte[] { 0, 0, 1 }, MessageDigestAlgorithm.SHA256Desig); var manifest = cadesManifestCreator.CreateManifest(new[] { fileEntry, fileEntry2 }); manifest.Should().NotBeNull() .And .BeOfType <ManifestContainer>(); manifest.FileName.Should().Be(AsiceConstants.CadesManifestFilename); File.WriteAllBytes(@"c:\temp\manifest.xml", manifest.Data.ToArray()); var xmlManifest = DeserializeManifest(manifest.Data.ToArray()); xmlManifest.Should().NotBeNull(); xmlManifest.SigReference.Should().NotBeNull(); xmlManifest.SigReference.MimeType.Should().Be(AsiceConstants.ContentTypeSignature); xmlManifest.DataObjectReference.Should().HaveCount(2); }