save
This commit is contained in:
parent
e866887b3a
commit
25803c9d4f
@ -58,6 +58,12 @@ public class TestDemo {
|
|||||||
return signVerify;
|
return signVerify;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String sm3hash(SydApi4j api,String pk,String orgData) {
|
||||||
|
byte[] hash = api.SM3Hash(pk, orgData.getBytes());
|
||||||
|
System.out.println("hash计算:"+ Util.bytes2HexString(hash));
|
||||||
|
return Util.bytes2HexString(hash);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void testAll(SydApi4j api, String certDn, String orgData) {
|
public static void testAll(SydApi4j api, String certDn, String orgData) {
|
||||||
byte[] nakedSign = api.SYD_NakedSignAll(2, orgData.getBytes(), certDn);
|
byte[] nakedSign = api.SYD_NakedSignAll(2, orgData.getBytes(), certDn);
|
||||||
@ -120,6 +126,10 @@ public class TestDemo {
|
|||||||
case 8:
|
case 8:
|
||||||
snSignVer(api, certDn,orgData, signorenData);
|
snSignVer(api, certDn,orgData, signorenData);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 9:
|
||||||
|
sm3hash(api, certDn,orgData);
|
||||||
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
testAll(api, certDn, orgData);
|
testAll(api, certDn, orgData);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -558,7 +558,7 @@ public class SydApi4j implements SydApi {
|
|||||||
byte[] s = null;
|
byte[] s = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
sCertDN = DnUtil.verifyDn(sCertDN);
|
// sCertDN = DnUtil.verifyDn(sCertDN);
|
||||||
s = sCertDN.getBytes("GBK");
|
s = sCertDN.getBytes("GBK");
|
||||||
} catch (UnsupportedEncodingException var16) {
|
} catch (UnsupportedEncodingException var16) {
|
||||||
var16.printStackTrace();
|
var16.printStackTrace();
|
||||||
@ -600,7 +600,7 @@ public class SydApi4j implements SydApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public byte[] SYD_NakedSign_OuterHash(byte[] orgData, String sCertDN) {
|
public byte[] SYD_NakedSign_OuterHash(byte[] orgData, String sCertDN) {
|
||||||
sCertDN = DnUtil.verifyDn(sCertDN);
|
// sCertDN = DnUtil.verifyDn(sCertDN);
|
||||||
String pk = null;
|
String pk = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -709,7 +709,7 @@ public class SydApi4j implements SydApi {
|
|||||||
byte[] s = null;
|
byte[] s = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
sCertDN = DnUtil.verifyDn(sCertDN);
|
//sCertDN = DnUtil.verifyDn(sCertDN);
|
||||||
s = sCertDN.getBytes("GBK");
|
s = sCertDN.getBytes("GBK");
|
||||||
} catch (UnsupportedEncodingException var18) {
|
} catch (UnsupportedEncodingException var18) {
|
||||||
var18.printStackTrace();
|
var18.printStackTrace();
|
||||||
@ -754,7 +754,7 @@ public class SydApi4j implements SydApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean SYD_NakedVerify_OuterHash(byte[] orgData, byte[] sign, String sCertDN) {
|
public boolean SYD_NakedVerify_OuterHash(byte[] orgData, byte[] sign, String sCertDN) {
|
||||||
sCertDN = DnUtil.verifyDn(sCertDN);
|
// sCertDN = DnUtil.verifyDn(sCertDN);
|
||||||
String pk = null;
|
String pk = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -849,6 +849,7 @@ public class SydApi4j implements SydApi {
|
|||||||
public String sm3AndDetachedSign(byte[] orgData, String publicKey, String sCertDN) {
|
public String sm3AndDetachedSign(byte[] orgData, String publicKey, String sCertDN) {
|
||||||
|
|
||||||
byte[] hash = SM3Hash(publicKey, orgData);
|
byte[] hash = SM3Hash(publicKey, orgData);
|
||||||
|
System.out.println("hash为:"+Util.bytes2HexString(hash));
|
||||||
return detachedSign(DATA_HASH, hash, sCertDN);
|
return detachedSign(DATA_HASH, hash, sCertDN);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -970,6 +971,7 @@ public class SydApi4j implements SydApi {
|
|||||||
@Override
|
@Override
|
||||||
public boolean sm3AndDetachedVerify(byte[] orgData, String publicKey, String sign) {
|
public boolean sm3AndDetachedVerify(byte[] orgData, String publicKey, String sign) {
|
||||||
byte[] hash = SM3Hash(publicKey, orgData);
|
byte[] hash = SM3Hash(publicKey, orgData);
|
||||||
|
System.out.println("验签hash为:"+Util.bytes2HexString(hash));
|
||||||
return detachedVerify(DATA_HASH, hash, sign);
|
return detachedVerify(DATA_HASH, hash, sign);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -996,7 +998,7 @@ public class SydApi4j implements SydApi {
|
|||||||
byte[] dn = new byte[256];
|
byte[] dn = new byte[256];
|
||||||
byte[] s = null;
|
byte[] s = null;
|
||||||
try {
|
try {
|
||||||
sCertDN = verifyDn(sCertDN);
|
// sCertDN = verifyDn(sCertDN);
|
||||||
s = sCertDN.getBytes("GBK");
|
s = sCertDN.getBytes("GBK");
|
||||||
} catch (UnsupportedEncodingException e) {
|
} catch (UnsupportedEncodingException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@ -1357,9 +1359,9 @@ public class SydApi4j implements SydApi {
|
|||||||
|
|
||||||
public String detachedSignAll(int rFlag,byte[] orgData, String sCertDN){
|
public String detachedSignAll(int rFlag,byte[] orgData, String sCertDN){
|
||||||
try {
|
try {
|
||||||
String cert = getCertByDn(sCertDN);
|
// String cert = getCertByDn(sCertDN,0);
|
||||||
boolean sm2Cert = CertUtil.isSM2Cert(cert);
|
// boolean sm2Cert = CertUtil.isSM2Cert(cert);
|
||||||
if(!sm2Cert){//RSA
|
if(rFlag<4){//RSA
|
||||||
return detachedSignRSA(rFlag,orgData,sCertDN);
|
return detachedSignRSA(rFlag,orgData,sCertDN);
|
||||||
}else {
|
}else {
|
||||||
if (orgData.length<4096){
|
if (orgData.length<4096){
|
||||||
@ -1367,7 +1369,9 @@ public class SydApi4j implements SydApi {
|
|||||||
}else {
|
}else {
|
||||||
String pk = null;
|
String pk = null;
|
||||||
pk = this.SYD_SM2_Get_Dn_PublicKey_HA(sCertDN.getBytes("GBK"), 0);
|
pk = this.SYD_SM2_Get_Dn_PublicKey_HA(sCertDN.getBytes("GBK"), 0);
|
||||||
|
System.out.println(pk);
|
||||||
byte[] hash = this.SM3Hash(pk, orgData);
|
byte[] hash = this.SM3Hash(pk, orgData);
|
||||||
|
System.out.println("hash为:"+Util.bytes2HexString(hash));
|
||||||
return detachedSign(DATA_HASH,hash,sCertDN);
|
return detachedSign(DATA_HASH,hash,sCertDN);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,7 +20,7 @@ public class Shangqing {
|
|||||||
|
|
||||||
|
|
||||||
private String RSA ="C=cn,O=CFCA TEST CA,OU=NCS2,OU=Enterprises,CN=041@Z402451000010@ShanDong@00000001";
|
private String RSA ="C=cn,O=CFCA TEST CA,OU=NCS2,OU=Enterprises,CN=041@Z402451000010@ShanDong@00000001";
|
||||||
private byte[] orgData = new byte[8];
|
private byte[] orgData = new byte[10];
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void before() {
|
public void before() {
|
||||||
@ -116,11 +116,55 @@ public class Shangqing {
|
|||||||
|
|
||||||
System.out.println(ver);
|
System.out.println(ver);
|
||||||
|
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test8005(){
|
||||||
|
|
||||||
|
System.setProperty("com.sunyard.sydapi4j.debug", "true");
|
||||||
|
|
||||||
|
SydApi4j api1 = (SydApi4j) new SydApi4j().connect("192.168.0.100", 8889, null, 1000);
|
||||||
|
|
||||||
|
SydApi4j api2 = (SydApi4j) new SydApi4j().connect("172.16.17.82", 8889, null, 1000);
|
||||||
|
String dn = "CN=test0001,OU=zyhtest,O=sunyard,L=hz,ST=zj,C=CN";
|
||||||
|
String pk = "03420004EA1077E7D7CDA76A8470D96929866B18E57F72C12850C853904B4083656F5991EAB499F2DC32BB02BF35F8748FE7A69D76C5D08E6A23D1568344F09227C47A47";
|
||||||
|
String oData = "123456";
|
||||||
|
String s = api2.sm3AndDetachedSign(orgData,pk, dn);
|
||||||
|
System.out.println("签名:"+s);
|
||||||
|
|
||||||
|
boolean ver = api2.sm3AndDetachedVerify( orgData,pk ,s);
|
||||||
|
System.out.println("验签:"+ver);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void wuhan(){
|
||||||
|
// System.setProperty("com.sunyard.sydapi4j.debug", "true");
|
||||||
|
System.setProperty("com.sunyard.dnsort", "false");
|
||||||
|
|
||||||
|
String dn = "GN=enterprise,OU=SaaS,O=北京安证通信息科技股份有限公司/serialNumber=01,SN=1990480222222437600,CN=辽宁省鹏印刷有限公司@1990480222222437600";
|
||||||
|
String data = "123456";
|
||||||
|
|
||||||
|
SydApi4j api = (SydApi4j) new SydApi4j().connect("172.16.17.82", 8889, null, 1000);
|
||||||
|
|
||||||
|
String aa = "434E3DC1C9C4FECAA1C5F4D3A1CBA2D3D0CFDEB9ABCBBE40313939303438303232323232323433373630302C534E3D313939303438303232323232323433373630302C4F3DB1B1BEA9B0B2D6A4CDA8D0C5CFA2BFC6BCBCB9C9B7DDD3D0CFDEB9ABCBBE2F73657269616C4E756D6265723D30312C4F553D536161532C474E3D656E7465727072697365";
|
||||||
|
System.out.println(new String(Util.hexString2Bytes(aa)));
|
||||||
|
|
||||||
|
String bb = "474E3D656E74657270726973652C4F553D536161532C4F3DB1B1BEA9B0B2D6A4CDA8D0C5CFA2BFC6BCBCB9C9B7DDD3D0CFDEB9ABCBBE2F73657269616C4E756D6265723D30312C534E3D313939303438303232323232323433373630302C434E3DC1C9C4FECAA1C5F4D3A1CBA2D3D0CFDEB9ABCBBE4031393930343830323232323232343337363030";
|
||||||
|
System.out.println(new String(Util.hexString2Bytes(bb)));
|
||||||
|
|
||||||
|
byte[] sign = api.SYD_NakedSign( data.getBytes(), dn);
|
||||||
|
System.out.println("签名结果:"+Util.bytes2HexString(sign));
|
||||||
|
|
||||||
|
String s = api.detachedSign(1, data.getBytes(), dn);
|
||||||
|
System.out.println(s);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
ip=172.16.17.161
|
ip=172.16.17.161
|
||||||
port=8889
|
port=8889
|
||||||
timeout=5000
|
timeout=5000
|
||||||
#证书主题
|
#证书主题或sn或pk
|
||||||
certDn=019023EB0005
|
certDn=03420004EA1077E7D7CDA76A8470D96929866B18E57F72C12850C853904B4083656F5991EAB499F2DC32BB02BF35F8748FE7A69D76C5D08E6A23D1568344F09227C47A47
|
||||||
#验签数据或待解密数据
|
#验签数据或待解密数据
|
||||||
signorenData=oN039sEhy7bQVqRSLFet+qe7xxTKWENtPGG/bqthWbKDtkN6BSAi0/I1PhLlSVXFh3MnhQZNH4zyn/l0Nb1D5w==
|
signorenData=oN039sEhy7bQVqRSLFet+qe7xxTKWENtPGG/bqthWbKDtkN6BSAi0/I1PhLlSVXFh3MnhQZNH4zyn/l0Nb1D5w==
|
||||||
#原始数据
|
#原始数据
|
||||||
orgData=123456
|
orgData=123456
|
||||||
#交易类型 1-签名 2-验签 3-加密 4-解密 5-detach签名 6-detach验签 7-sn签名 8-sn验签 0 默认(签名验签+加密解密)
|
#交易类型 1-签名 2-验签 3-加密 4-解密 5-detach签名 6-detach验签 7-sn签名 8-sn验签 9-hash计算 0默认(签名验签+加密解密)
|
||||||
type=8
|
type=9
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user