Exemplo n.º 1
0
        public void Sign_CertificatePassed_Success(string sourcePath, string destPath)
        {
            using MemoryStream stream = FileCloner.CopyFileStreamToMemoryStream(sourcePath);

            using (OpenXmlPackage openXmlPackage = Open(stream, true, sourcePath))
            {
                X509Certificate2 certificate = DigitalSignatureManager
                                               .GetSigningCertificates()
                                               .OfType <X509Certificate2>()
                                               .First();

                PackageDigitalSignature signature = OpenXmlDigitalSignatureManager.Sign(openXmlPackage, certificate);

                VerifyResult verifyResult = signature.Verify();
                Assert.Equal(VerifyResult.Success, verifyResult);
            }

            File.WriteAllBytes(destPath, stream.ToArray());
        }
        public void Sign_CertificatePassed_ExcelWorkbookSigned()
        {
            const string path = "Resources\\UnsignedWorkbook.xlsx";
            using MemoryStream stream = FileCloner.CopyFileStreamToMemoryStream(path);

            using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(stream, true))
            {
                X509Certificate2 certificate = DigitalSignatureManager
                    .GetSigningCertificates()
                    .OfType<X509Certificate2>()
                    .First();

                DigitalSignatureManager.Sign(spreadsheetDocument.Package, certificate);
            }

            using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(stream, false))
            {
                VerifyResult verifyResult = DigitalSignatureManager.VerifySignature(spreadsheetDocument.Package);
                Assert.Equal(VerifyResult.Success, verifyResult);
            }

            File.WriteAllBytes("SignedWorkbook.xlsx", stream.ToArray());
        }