package org.opensc.test.pkcs11; import java.io.IOException; import java.security.Provider; import java.security.Security; import java.util.Random; import org.opensc.pkcs11.PKCS11Provider; import junit.framework.TestCase; public abstract class PKCS11ProviderTestCase extends TestCase { protected PKCS11Provider provider; protected byte[] testData; public PKCS11ProviderTestCase() { super(); } public void setUp() throws IOException { // Add provider "SunPKCS11-OpenSC" String pkcs11_path; if (System.getProperty("os.name").contains("Windows")) pkcs11_path = System.getenv("ProgramFiles")+"\\Smart Card Bundle\\opensc-pkcs11.dll"; else pkcs11_path = "/usr/lib/opensc-pkcs11.so"; this.provider = new PKCS11Provider(pkcs11_path); Security.addProvider(this.provider); Provider providers[] = Security.getProviders(); for (Provider p : providers) System.out.println("Found provider: " + p.getName()); this.testData = new byte[199]; Random random = new Random(System.currentTimeMillis()); random.nextBytes(this.testData); } public void tearDown() { this.provider.cleanup(); this.provider = null; this.testData = null; Security.removeProvider("OpenSC-PKCS11"); } }