package eu.europa.esig.dss.asic.signature.asics; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import eu.europa.esig.dss.DSSDocument; import eu.europa.esig.dss.DSSUtils; import eu.europa.esig.dss.DigestAlgorithm; import eu.europa.esig.dss.InMemoryDocument; import eu.europa.esig.dss.asic.ASiCParameters; import eu.europa.esig.dss.utils.Utils; public class DataToSignASiCSWithXAdESFromFilesTest { private static final Logger LOG = LoggerFactory.getLogger(DataToSignASiCSWithXAdESFromFilesTest.class); @Test public void zipContentEquals() throws Exception { Date now = new Date(); ASiCParameters asicParameters = new ASiCParameters(); List<DSSDocument> filesToBeSigned = new ArrayList<DSSDocument>(); filesToBeSigned.add(new InMemoryDocument("Hello".getBytes(), "test.xml")); filesToBeSigned.add(new InMemoryDocument("Bye".getBytes(), "test2.xml")); DataToSignASiCSWithXAdESFromFiles dataToSign = new DataToSignASiCSWithXAdESFromFiles(filesToBeSigned, now, asicParameters); assertNotNull(dataToSign); List<DSSDocument> toBeSigned = dataToSign.getToBeSigned(); assertEquals(1, toBeSigned.size()); DSSDocument dssDocument = toBeSigned.get(0); assertEquals("package.zip", dssDocument.getName()); byte[] byteArray = DSSUtils.toByteArray(dssDocument); LOG.info(new String(byteArray)); String base64 = Utils.toBase64(byteArray); LOG.info(base64); String digest = dssDocument.getDigest(DigestAlgorithm.SHA256); LOG.info(digest); Thread.sleep(2000); DataToSignASiCSWithXAdESFromFiles dataToSign2 = new DataToSignASiCSWithXAdESFromFiles(filesToBeSigned, now, asicParameters); DSSDocument twice = dataToSign2.getToBeSigned().get(0); String digestTwice = twice.getDigest(DigestAlgorithm.SHA256); String base64twice = Utils.toBase64(DSSUtils.toByteArray(twice)); LOG.info(base64twice); LOG.info(digestTwice); assertEquals(base64, base64twice); assertTrue(Utils.areStringsEqual(digest, digestTwice)); } }