diff --git a/dss-spi/src/test/java/eu/europa/esig/dss/x509/KeyStoreCertificateSourceTest.java b/dss-spi/src/test/java/eu/europa/esig/dss/x509/KeyStoreCertificateSourceTest.java
index 9bc4ed2e..5e1f5428 100644
--- a/dss-spi/src/test/java/eu/europa/esig/dss/x509/KeyStoreCertificateSourceTest.java
+++ b/dss-spi/src/test/java/eu/europa/esig/dss/x509/KeyStoreCertificateSourceTest.java
@@ -19,10 +19,24 @@ public class KeyStoreCertificateSourceTest {
 	private static final String KEYSTORE_PASSWORD = "dss-password";
 	private static final String KEYSTORE_TYPE = "JKS";
 	private static final String KEYSTORE_FILEPATH = "src/test/resources/keystore.jks";
+	private static final String PKCS12_KEYSTORE_TYPE = "PKCS12";
+	private static final String PKCS12_KEYSTORE_FILEPATH = "src/test/resources/keystore.p12";
 
 	@Test
 	public void testLoadAddAndDelete() throws IOException {
 		KeyStoreCertificateSource kscs = new KeyStoreCertificateSource(new File(KEYSTORE_FILEPATH), KEYSTORE_TYPE, KEYSTORE_PASSWORD);
+
+		testAddAndDelete(kscs);
+	}
+
+	@Test
+	public void testLoadAddAndDeletePkcs12() throws IOException {
+		KeyStoreCertificateSource kscs = new KeyStoreCertificateSource(new File(PKCS12_KEYSTORE_FILEPATH), PKCS12_KEYSTORE_TYPE, KEYSTORE_PASSWORD);
+
+		testAddAndDelete(kscs);
+	}
+
+	private void testAddAndDelete(KeyStoreCertificateSource kscs) throws DSSException {
 		assertNotNull(kscs);
 
 		int startSize = Utils.collectionSize(kscs.getCertificates());
@@ -32,7 +46,7 @@ public class KeyStoreCertificateSourceTest {
 		kscs.addCertificateToKeyStore(token);
 
 		int sizeAfterAdd = Utils.collectionSize(kscs.getCertificates());
-		assertEquals(sizeAfterAdd,startSize + 1);
+		assertEquals(startSize + 1, sizeAfterAdd);
 		String tokenId = token.getDSSIdAsString();
 
 		CertificateToken certificate = kscs.getCertificate(tokenId);
@@ -44,6 +58,7 @@ public class KeyStoreCertificateSourceTest {
 		assertEquals(sizeAfterDelete,startSize);
 	}
 
+
 	@Test
 	public void testCreateNewKeystore() throws IOException {
 		KeyStoreCertificateSource kscs = new KeyStoreCertificateSource(KEYSTORE_TYPE, KEYSTORE_PASSWORD);
@@ -56,6 +71,18 @@ public class KeyStoreCertificateSourceTest {
 		assertEquals(1, Utils.collectionSize(kscs2.getCertificates()));
 	}
 
+	@Test
+	public void testCreateNewKeystorePkcs12() throws IOException {
+		KeyStoreCertificateSource kscs = new KeyStoreCertificateSource(PKCS12_KEYSTORE_TYPE, KEYSTORE_PASSWORD);
+		CertificateToken token = DSSUtils.loadCertificate(new File("src/test/resources/citizen_ca.cer"));
+		kscs.addCertificateToKeyStore(token);
+
+		kscs.store(new FileOutputStream("target/new_keystore.p12"));
+
+		KeyStoreCertificateSource kscs2 = new KeyStoreCertificateSource("target/new_keystore.p12", PKCS12_KEYSTORE_TYPE, KEYSTORE_PASSWORD);
+		assertEquals(1, Utils.collectionSize(kscs2.getCertificates()));
+	}
+
 	@Test(expected = DSSException.class)
 	public void wrongPassword() throws IOException {
 		KeyStoreCertificateSource kscs = new KeyStoreCertificateSource(new File(KEYSTORE_FILEPATH), KEYSTORE_TYPE, "wrong password");
