增加二维码、条形码签名验签测试

This commit is contained in:
yihzhou
2024-11-21 10:56:01 +08:00
parent 25803c9d4f
commit db80b1dd83
17 changed files with 1353 additions and 68 deletions
+91
View File
@@ -0,0 +1,91 @@
package sample;
import com.sunyard.RetWrap;
import com.sunyard.proto.Util;
import com.sunyard.util.ASN1Util;
import com.sunyard.util.CertUtil;
import org.bouncycastle.asn1.ASN1Sequence;
import org.junit.Test;
import java.io.IOException;
import java.security.NoSuchProviderException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import static org.bouncycastle.cms.SydCmsUtil.readContentInfo;
public class GetHash {
public static void main(String[] args) throws IOException, CertificateException, NoSuchProviderException {
String sign = "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";
RetWrap retWrap = ASN1Util.takeOutOriginDataFromPKCS7Sign(sign);
String cert =(String) retWrap.get("cert");
System.out.println(cert);
String pemCert = null;
if(cert.contains("-----BEGIN CERTIFICATE-----")){
pemCert =cert;
}else {
String cert_begin = "-----BEGIN CERTIFICATE-----\n";
String end_cert = "\n-----END CERTIFICATE-----";
pemCert = cert_begin + cert + end_cert;
}
System.out.println(pemCert);
X509Certificate certificate = CertUtil.convertToX509Cert(pemCert);
String sigAlgName = certificate.getSigAlgName();
System.out.println(sigAlgName);
System.out.println(sigAlgName.toUpperCase().contains("SHA1"));
}
@Test
public void getDn() throws CertificateException, NoSuchProviderException {
String cert = "-----BEGIN CERTIFICATE-----\n" +
"MIIFNzCCBB+gAwIBAgIQewelBvoQTWilE9UF5pwiBDANBgkqhkiG9w0BAQsFADAz\n" +
"MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxETAPBgNVBAMMCFNIRUNB\n" +
"IEcyMB4XDTIzMDkwNzA3NTQ1MloXDTI2MDkwNzE1NTk1OVowge8xQjBABgNVBAMM\n" +
"Oea1i+ivleS4reWbveWGnOS4mumTtuihjOiCoeS7veaciemZkOWFrOWPuOS4iua1\n" +
"t+W4guWIhuihjDE8MDoGA1UECwwz5Lit5Zu95Yac5Lia6ZO26KGM6IKh5Lu95pyJ\n" +
"6ZmQ5YWs5Y+45LiK5rW35biC5YiG6KGMMTwwOgYDVQQKDDPkuK3lm73lhpzkuJrp\n" +
"k7booYzogqHku73mnInpmZDlhazlj7jkuIrmtbfluILliIbooYwxDzANBgNVBAcM\n" +
"BuS4iua1tzEPMA0GA1UECAwG5LiK5rW3MQswCQYDVQQGEwJDTjCCASIwDQYJKoZI\n" +
"hvcNAQEBBQADggEPADCCAQoCggEBAL6d0aFiewo3RkYA0sb3kMaH6bvlUNCw+FFN\n" +
"ZMWwqFCt5K2FrwRkfZjtNWVuF6MXVBX605D/mML85+hbCrKs/Rj6rq3V3ur1mYja\n" +
"2duNTBlT9WzrKSCdPP1ae9kSM8Fwde2w0tAGqn41kjQgn3nw8twPSqnG/mqDlzkV\n" +
"OCwaZoxNqHouOCL3OYTATDOj48e9c4Q9In5NXbUFeu16JP8Y9SSlusfZof7v8umq\n" +
"XlMfzIyw5tpA9hQGrBtmFRY41gM1j1JwO2/BjFtDVHDe4QxG2cmzc9T3YT2bN2+h\n" +
"tSAEZKbOxY4G3AUlPhgkxEJuzdFEN1zpgctAUnrUmDTy4chk6W8CAwEAAaOCAYgw\n" +
"ggGEMBQGA1UdJQQNMAsGCSqGSIb3LwEBBTB9BggrBgEFBQcBAQRxMG8wOAYIKwYB\n" +
"BQUHMAGGLGh0dHA6Ly9vY3NwMy5zaGVjYS5jb20vb2NzcC9zaGVjYS9zaGVjYS5v\n" +
"Y3NwMDMGCCsGAQUFBzAChidodHRwOi8vbGRhcDIuc2hlY2EuY29tL3Jvb3Qvc2hl\n" +
"Y2FnMi5kZXIwHwYDVR0jBBgwFoAUVoje4xhDgrdypCbrRKli0IfErCYwHQYDVR0O\n" +
"BBYEFK6AF/JiY5AhOi04JSg6KltgUy69MA4GA1UdDwEB/wQEAwIGwDAhBgkqgRyG\n" +
"7zoLgVIEFBMSOTEzMTAwMDAxMzIyMDI1MjhMMAwGA1UdEwEB/wQCMAAwIgYDVR0g\n" +
"BBswGTAKBggqgRyG7zoBAzALBgkqgRyG7zoBAgQwSAYDVR0fBEEwPzA9oDugOYY3\n" +
"aHR0cDovL2xkYXAyLnNoZWNhLmNvbS9DQTIwMDExL1JBMTIwNTAxMDAvQ1JMMTAw\n" +
"MDc0LmNybDANBgkqhkiG9w0BAQsFAAOCAQEAaNG0Zl2W4RlCM934eaZFp30Sj3kx\n" +
"EHBtZ4x1FXrjS0Vq+Jzflcb+3lVhfmt/FiaPA+ShF1vxy0UOO9tszs3Wj8gWX6p8\n" +
"W2uNaOdq9PCk6Y0N4x8U0LEzWGBj0dXfEK8UZxMrorzsZWN8LO1imUFVbu+WV+9M\n" +
"eRP7RIF3Y9Ah8QCozMvzHk7z4JRMgRoe6GtE0ehevph93YFNdTamulLTjt5hZaFU\n" +
"SFZL028+RVa7k2DhQetZuUdD1/DBLTrlz8DqGHYHptifDtZapPALGr4nx94YChMT\n" +
"OsOvFugFTrtg0H3vWTRX4Al5mftx356VE8nt9A/6DYA7sGnFRKDPMoIPCg==\n" +
"-----END CERTIFICATE-----\n";
X509Certificate certificate = CertUtil.convertToX509Cert(cert);
String sigAlgName = certificate.getSubjectDN().toString();
System.out.println(sigAlgName);
System.out.println(certificate.getSubjectDN().toString());
System.out.println(sigAlgName.toUpperCase().contains("SHA1"));
}
@Test
public void getOID(){
String sign = "MIIBOwYJKoZIhvcNAQcDoIIBLDCCASgCAQAxgdUwgdICAQAwQzA5MQswCQYDVQQGEwJDTjEOMAwGA1UECgwFR01TU0wxGjAYBgNVBAMMEU1pZGRsZUNBIGZvciBUZXN0AgYBkZGPx4AwCwYJKoEcz1UBgi0DBHsweQIgfLZlDgJJ9201wsYsQ9S4KNvOlgrX0WtZGPQBXPKRTG0CIQD2PthXQ7hHnxN287jAbHqQXaeDuVC3ohQ06Pv+eMzruQQgG8iD0R2vtl//q1JkdWjIwibgL3ZdNWkrJEEiNw2NqEkEEHT7hJTar0bnrKlE5BxCIJIwSwYKKoEcz1UGAQQCATAbBgcqgRzPVQFoBBAT1Kuxlcocuacphn3Iadr6gCB26bmHVsH8aQrj7tTACj2PmdMxALYkI2eUKmiJTH/96Q==";
Object pkContent = readContentInfo( Util.decodeBase64(sign) );
ASN1Sequence pkSeq = ASN1Sequence.getInstance( pkContent );
}
}