package com.dgex.offspring.update;
import java.io.File;
import java.io.IOException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.jar.JarFile;
import org.junit.Test;
public class TestJarVerifier {
public File cert1 = new File("res/TestJarVerifier/offspring-cert1.crt");
public File jar1 = new File("res/TestJarVerifier/plugin-cert1.jar");
public File cert2 = new File("res/TestJarVerifier/offspring-cert2.crt");
public File jar2 = new File("res/TestJarVerifier/plugin-cert2.jar");
public File certEclipse = new File("res/TestJarVerifier/eclipse.crt");
public File jarEclipse = new File("res/TestJarVerifier/eclipse.jar");
File cert3 = new File(
"res/TestJarVerifier/DigiCertHighAssuranceCodeSigningCA-1.crt");
File jar3 = new File("res/TestJarVerifier/javax.inject_1.0.0.v20091030.jar");
File cert4 = new File("res/TestJarVerifier/offspring.crt");
File jar4 = new File(
"res/TestJarVerifier/com.dgex.offspring.wallet_1.0.0.201402161933.jar");
public void verify(File cert, File jarFile) throws Exception {
X509Certificate certificate = X509CertificateFile.getCertificate(cert);
try {
JarVerifier.verify(new JarFile(jarFile),
new X509Certificate[] { certificate });
}
catch (CertificateException e) {
throw e;
}
catch (IOException e) {
throw new Exception(e);
}
}
@Test
public void testCorrect() throws Exception {
verify(cert1, jar1);
verify(cert2, jar2);
}
@Test
public void testEclipse() throws Exception {
verify(cert3, jar3);
}
@Test
public void testOffspring() throws Exception {
verify(cert4, jar4);
}
@Test(expected = SecurityException.class)
public void testWrongCert() throws Exception {
verify(cert2, jar1);
}
@Test(expected = SecurityException.class)
public void testWrongPlugin() throws Exception {
verify(cert1, jar2);
}
@Test(expected = SecurityException.class)
public void testWrongCert2() throws Exception {
verify(cert1, jar2);
}
@Test(expected = SecurityException.class)
public void testWrongPlugin2() throws Exception {
verify(cert2, jar1);
}
}