完善验证测试程序
This commit is contained in:
parent
b37b962dd5
commit
e866887b3a
@ -43,9 +43,22 @@ public class TestDemo {
|
||||
public static Boolean detachSignVer(SydApi4j api, String orgData, String sign) {
|
||||
boolean signVerify = api.detachedVerifyAll(2, orgData.getBytes(), sign);
|
||||
System.out.println("detach验签:"+ signVerify);
|
||||
return Boolean.valueOf(signVerify);
|
||||
return signVerify;
|
||||
}
|
||||
|
||||
public static String snSign(SydApi4j api, String sn, String orgData) {
|
||||
String sign = api.SM2SignCustomized(sn,orgData.getBytes());
|
||||
System.out.println("sn签名结果:"+ sign);
|
||||
return sign;
|
||||
}
|
||||
|
||||
public static Boolean snSignVer(SydApi4j api, String sn,String orgData, String sign) {
|
||||
boolean signVerify = api.SM2VerifyCustomized(sn, orgData.getBytes(), sign);
|
||||
System.out.println("sn验签:"+ signVerify);
|
||||
return signVerify;
|
||||
}
|
||||
|
||||
|
||||
public static void testAll(SydApi4j api, String certDn, String orgData) {
|
||||
byte[] nakedSign = api.SYD_NakedSignAll(2, orgData.getBytes(), certDn);
|
||||
System.out.println("签名数据:"+ Util.bytes2HexString(nakedSign));
|
||||
@ -61,6 +74,7 @@ public class TestDemo {
|
||||
System.out.println("detach签名结果:"+ sign);
|
||||
boolean signVerify = api.detachedVerifyAll(2, orgData.getBytes(), sign);
|
||||
System.out.println("detach验签:"+ signVerify);
|
||||
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws InterruptedException {
|
||||
@ -100,6 +114,12 @@ public class TestDemo {
|
||||
case 6:
|
||||
detachSignVer(api, orgData, signorenData);
|
||||
break;
|
||||
case 7:
|
||||
snSign(api, certDn, orgData);
|
||||
break;
|
||||
case 8:
|
||||
snSignVer(api, certDn,orgData, signorenData);
|
||||
break;
|
||||
case 0:
|
||||
testAll(api, certDn, orgData);
|
||||
break;
|
||||
|
||||
@ -26,7 +26,10 @@ public class Shangqing {
|
||||
public void before() {
|
||||
// 通过设置debug的属性开启debug,如果不设置则默认不打开
|
||||
System.setProperty("com.sunyard.sydapi4j.debug", "true");
|
||||
api = (SydApi4j) new SydApi4j().connect("172.16.17.196", 8889, null, 1000);
|
||||
// api = (SydApi4j) new SydApi4j().connect("172.16.17.161", 8889, null, 1000);
|
||||
api = (SydApi4j) new SydApi4j().connect("192.168.0.100", 8889, null, 1000);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@After
|
||||
@ -92,5 +95,32 @@ public class Shangqing {
|
||||
// System.out.println(s);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test80(){
|
||||
System.out.print("\n\n----- SM2 算法签名 Customized");
|
||||
String sm2sign = null;
|
||||
sm2sign = api.SM2SignCustomized(
|
||||
"019023EB0005", orgData
|
||||
);
|
||||
|
||||
System.out.print("\n\n----- SM2 算法签名 结果: ");
|
||||
System.out.println(sm2sign);
|
||||
|
||||
// String sm2sign = "m/7+qbOR2GKiCsZd6/nu9uwX4nOXP23DTd7hvO0mZAT2trr1mTjry5quQ76Me4utalD/HxfBmjV4bY+rGQt5Xg==";
|
||||
|
||||
System.out.println("\n\n----- SM2 算法验签 Customized -----");
|
||||
|
||||
boolean ver = false;
|
||||
|
||||
ver = api.SM2VerifyCustomized("019023EB0005", orgData, sm2sign);
|
||||
|
||||
System.out.println(ver);
|
||||
|
||||
|
||||
|
||||
|
||||
//
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,52 +1,57 @@
|
||||
package sample;
|
||||
|
||||
import com.sunyard.RetWrap;
|
||||
import com.sunyard.SydApiException;
|
||||
import com.sunyard.cert.X509;
|
||||
import com.sunyard.proto.Util;
|
||||
import com.sunyard.util.ASN1Util;
|
||||
import org.junit.Test;
|
||||
import racal.sunyard.main.SydApi4j;
|
||||
import racal.sunyard.main.SydApiBuilder;
|
||||
|
||||
public class sample4nx {
|
||||
public static void main(String[] args) {
|
||||
//打印调试日志
|
||||
System.setProperty("com.sunyard.sydapi4j.debug", "true");
|
||||
import java.io.IOException;
|
||||
|
||||
public class sample4nx {
|
||||
@Test
|
||||
public void nx() throws IOException {
|
||||
//设置连接
|
||||
SydApiBuilder builder = new SydApiBuilder().setIp("192.168.0.156");
|
||||
System.setProperty("com.sunyard.sydapi4j.debug", "true");
|
||||
SydApiBuilder builder = new SydApiBuilder().setIp("172.16.18.34");
|
||||
SydApi4j api = (SydApi4j) builder.build();
|
||||
|
||||
String cert = "-----BEGIN CERTIFICATE-----\n" +
|
||||
"MIIDcTCCAlmgAwIBAgIFEEcHQmgwDQYJKoZIhvcNAQEFBQAwWDELMAkGA1UEBhMC\n" +
|
||||
"Q04xMDAuBgNVBAoTJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhv\n" +
|
||||
"cml0eTEXMBUGA1UEAxMOQ0ZDQSBURVNUIE9DQTEwHhcNMjExMjEwMDgyOTA0WhcN\n" +
|
||||
"MjYxMjEwMDgyOTA0WjBoMQswCQYDVQQGEwJDTjESMBAGA1UEChMJQ0ZDQSBPQ0Ex\n" +
|
||||
"MQ8wDQYDVQQLEwZUUEMtUzMxGTAXBgNVBAsTEE9yZ2FuaXphdGlvbmFsLTExGTAX\n" +
|
||||
"BgNVBAMTEEFSQ1U1MjkxMDAwMDA3MDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ\n" +
|
||||
"AoGBAL+kPIjcWzRwQE6Q3ydtQsDaJGMxv0At2WrIQqb9ONEvqMbQZCd69qfBvsRj\n" +
|
||||
"QI/UlG3btk6P/ZBGkNc99fX43VMqPtIlVjgRozLQcQJPFbiU5cT5PPqnrxo652RU\n" +
|
||||
"KNFQhwmanPjAjmZd9woc2l0BnfF92QFDPDRprS1fWLFbKPTvAgMBAAGjgbUwgbIw\n" +
|
||||
"HwYDVR0jBBgwFoAUz3CdYeudfC6498sCQPcJnf4zdIAwOQYDVR0fBDIwMDAuoCyg\n" +
|
||||
"KoYoaHR0cDovL3VjcmwuY2ZjYS5jb20uY24vUlNBL2NybDgzMjA1LmNybDALBgNV\n" +
|
||||
"HQ8EBAMCA+gwHQYDVR0OBBYEFGey5r5CdOUDaW3KRdZ0xg19n+dhMCgGA1UdJQQh\n" +
|
||||
"MB8GCCsGAQUFBwMCBggrBgEFBQcDBAYJKoZIhvcvAQEFMA0GCSqGSIb3DQEBBQUA\n" +
|
||||
"A4IBAQChyjTNJUkdspDa/6sPYuZdE0/yPFcbd0ag4wLWrSCiRyV0J5BhJPIApdRT\n" +
|
||||
"3kCIem2jRbq3H/W1vUYi1JeGHcrvTOOMQb9yfgCzfQLvAdv0at4zupy1uXL6uE1S\n" +
|
||||
"WL1v6Vub630tJ0A45KsVESB5Fb+UZ/cvdJIMHjcYYzPw+HHH6q9e3R0QUMz3Mxpl\n" +
|
||||
"DCg66HQBL/jKSl/w13QTdRPL9dSDBtpzDqZH5JQK4rbZSdFnbC2TQs+ljsKd5TCg\n" +
|
||||
"52HcC92peeCXCEsb3Zw0js5nTbX+1da8FgqDQTeKIItgXBvQIRJUeelKga6opRNM\n" +
|
||||
"QM0Egoc/dBdM45jVnxzpreRKzsDQ\n" +
|
||||
"-----END CERTIFICATE-----";
|
||||
String odata = "<?xml version=\"1.0\" encoding=\"utf-8\"?><SignData><TradeType name=\"银行账号转账\" authLevel=\"0\">BankAcctTransfer</TradeType><Timestamp>1710469760912</Timestamp><Fields><AcctType>INNERDEBIT</AcctType><PayerSubAcSeq></PayerSubAcSeq><PayerBankAcType>96</PayerBankAcType><PayerAcNo>6229539600100010640</PayerAcNo><PayerAcName>王二类</PayerAcName><PayerCurrency>156</PayerCurrency><PayeeAcNo name=\"收款人账号:\">6217788308301020599</PayeeAcNo><PayeeAcName name=\"收款人名称:\">王二类</PayeeAcName><Amount name=\"转账金额:\">1</Amount><PayeeBankCode>402/402361018886</PayeeBankCode><PayeeBankName>安徽农金</PayeeBankName><ProvinceCode></ProvinceCode><ProvinceName></ProvinceName><CityCode></CityCode><CityName></CityName><UnionDeptId></UnionDeptId><UnionDeptName></UnionDeptName><TransType>0</TransType><Remark></Remark><Fee>0.00</Fee><CRFlag>1</CRFlag><TransTypeFlag>0</TransTypeFlag><TrsRouteType>0</TrsRouteType><AddPayeeBookFlag>1</AddPayeeBookFlag></Fields></SignData>";
|
||||
String signRsa = "0564FC7C0E3FDAF225295BBD0E32BF16081D561B4C262B5E095E04E828DC8AAC71723F849B615A41AA012FB9B532017D382919A498A93EAD35CB3AA80BA29510C174BF61B6E5DCEA78DF9AF7C3B80513BA82F82030347F463C03826C90CC9C207012BD456C21D9DF4E2C79EE042B8BE229EA3C40F232AF661BE63E61A07DC2A3";
|
||||
String data = "eyJzZW5kb3JnYW5pemF0aW9uIjoiMDAwMCIsInNlbmRpZGVudGlmaWNhdGlvbiI6IkRFTVAiLCJyZWN2b3JnYW5pemF0aW9uIjoiMDAwMCIsInJlY3ZpZGVudGlmaWNhdGlvbiI6IkRFTVAiLCJjZXJ0Y2hndHlwZSI6IkNDMDAifQ==";
|
||||
String sign = "MIIDyAYKKoEcz1UGAQQCAqCCA7gwggO0AgEBMQ4wDAYIKoEcz1UBgxEFADAMBgoqgRzPVQYBBAIBoIICuTCCArUwggJZoAMCAQICBSBUdABBMAwGCCqBHM9VAYN1BQAwXTELMAkGA1UEBhMCQ04xMDAuBgNVBAoMJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEcMBoGA1UEAwwTQ0ZDQSBURVNUIFNNMiBPQ0ExMTAeFw0yMjA0MTQwMTUwNDhaFw0yNDA3MzExNTU5NTlaMGsxCzAJBgNVBAYTAmNuMRUwEwYDVQQKDAxDRkNBIFRFU1QgQ0ExDTALBgNVBAsMBERFTVAxFDASBgNVBAsMC0VudGVycHJpc2VzMSAwHgYDVQQDDBcwNDFAWjAwMDBAREVNUEAwMDAwMDA0OTBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IABLKA4YpNpmq+f156Bxq8573+GWfvyFPyfpbWbOr/MROM0bM+Zzu35ygRBGY170Lb50F4EOhkbi/C91I1T7POecCjgfUwgfIwHwYDVR0jBBgwFoAUvqZ+TT18j6BV5sEvCS4sIEOzQn8wSAYDVR0gBEEwPzA9BghggRyG7yoBAjAxMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmNmY2EuY29tLmNuL3VzL3VzLTE1Lmh0bTA6BgNVHR8EMzAxMC+gLaArhilodHRwOi8vMjEwLjc0LjQyLjMvT0NBMTEvU00yL2NybDE4MDcwLmNybDALBgNVHQ8EBAMCA+gwHQYDVR0OBBYEFL6S9JFZX4aCWpd10bDHk43aXmXYMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAMBggqgRzPVQGDdQUAA0gAMEUCIQDlc0JB0kTQb+seK7XkBovtdode7qChIkTFy49HGl5NpwIgVbklyQWaJ2EX6ZX+cl2w9B6AczrDPwOK9ZScVXj/y1AxgdMwgdACAQEwZjBdMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRwwGgYDVQQDDBNDRkNBIFRFU1QgU00yIE9DQTExAgUgVHQAQTAMBggqgRzPVQGDEQUAMA0GCSqBHM9VAYItAQUABEYwRAIgdSjzv1eik3TCLw2KU+QmpzG5AIgy5iwS6VGsQjRtEi0CIAIUD4WTeYoypK7eYsw4b0pSscv07Z/qlYuEWMtB9n04";
|
||||
// X509 x509 = api.detachedVerifyAndGetX509(1, data.getBytes(), sign);
|
||||
// System.out.println(x509.getCert());
|
||||
|
||||
try {
|
||||
String rsaDn = "C=CN,O=CFCA OCA1,OU=TPC-S3,OU=Organizational-1,CN=ARCU529100000701";
|
||||
boolean nakedVerify2 = api.SYD_NakedVerifyAll4NX(cert,2,odata.getBytes(), Util.hexString2Bytes(signRsa),rsaDn);
|
||||
System.out.println("RSA数据验签:"+nakedVerify2 );
|
||||
//解析p7签名内容,从detach签名中获取证书段
|
||||
RetWrap retWrap = ASN1Util.takeOutOriginDataFromPKCS7Sign(sign);
|
||||
String cert = (String) retWrap.get("cert");
|
||||
System.out.println(cert);
|
||||
|
||||
|
||||
} catch (SydApiException e) {
|
||||
e.printStackTrace();
|
||||
//完善证书为标准格式,具有头尾
|
||||
String pemCert;
|
||||
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;
|
||||
}
|
||||
|
||||
//证书导入设备,待验签使用
|
||||
// api.importCert(pemCert.getBytes(),null);
|
||||
|
||||
//detach验签
|
||||
boolean ver = api.detachedVerifyAll(4,data.getBytes(),sign);
|
||||
System.out.println("验签结果:"+ver);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
ip=172.16.18.34
|
||||
ip=172.16.17.161
|
||||
port=8889
|
||||
timeout=5000
|
||||
#证书主题
|
||||
certDn=C=CN,ST=zj,L=hz,O=sunyard,CN=welkin
|
||||
certDn=019023EB0005
|
||||
#验签数据或待解密数据
|
||||
signorenData=XXXX
|
||||
signorenData=oN039sEhy7bQVqRSLFet+qe7xxTKWENtPGG/bqthWbKDtkN6BSAi0/I1PhLlSVXFh3MnhQZNH4zyn/l0Nb1D5w==
|
||||
#原始数据
|
||||
orgData=123456
|
||||
#交易类型 1-签名 2-验签 3-加密 4-解密 0 默认(签名验签+加密解密)
|
||||
type=0
|
||||
#交易类型 1-签名 2-验签 3-加密 4-解密 5-detach签名 6-detach验签 7-sn签名 8-sn验签 0 默认(签名验签+加密解密)
|
||||
type=8
|
||||
|
||||
Loading…
Reference in New Issue
Block a user