diff --git a/src/test/java/com/sunyard/sydapi/sample/ASYMEnDeTest.java b/src/test/java/com/sunyard/sydapi/sample/ASYMEnDeTest.java deleted file mode 100644 index 17a1284..0000000 --- a/src/test/java/com/sunyard/sydapi/sample/ASYMEnDeTest.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.sunyard.sydapi.sample; - -import com.sunyard.RetWrap; -import com.sunyard.proto.Util; -import racal.sunyard.main.SydApi4j; -import racal.sunyard.main.SydApiBuilder; - -import java.io.UnsupportedEncodingException; -import java.util.Arrays; - -public class ASYMEnDeTest { - - public static void main(String[] args) throws UnsupportedEncodingException, IllegalAccessException, InstantiationException, ClassNotFoundException { - - System.out.println("非对称密钥加解密"); - byte[] testData = new byte[100]; - Arrays.fill(testData, (byte) 0x88); - - SydApi4j api = (SydApi4j) new SydApiBuilder() - .setIp("172.16.17.161") - .useDebugMode() - .build(); - - - RetWrap ret; - try { - - String rsaPk = "308189028181009AF6135A23B634E6DFE6AC1BC5E18FAAC5A4287D433C81CB520615DBD386822A20328EF064D16D4AA0ED97056BF6F387D2922834C9DAFF3BFDC5666F280EF187102A47A2CDB45E5BBE66E1F28E88335B880A7BBC5E56FCA9F460C4F2EE034393ED5258D801DC252268FE0A7A36DDFA823C133148D634E560FA3C526E18093B3D0203010001"; - String rsaSk = "0004000096E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D6429CED6878A26E7DA37C6D6E3CC99DF92CFB6208B239A6F6D452F70961413C86ABABBB97905F4D8416125D6705006E0CBBE2A55C21C5021D6D4BA6357574DAEA872F744343497FC301A0072DCB5AFFADE4E38618CF193B417465D51F55E7A05143EF22ED52B15C3D7EAB07A83442F7AA0FE0864D6FA656D35A3F8F78EE76E0623396E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D6424759813A8629F2E496E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D6429C90258F09582794C56F6F811DD07E128A0D8EF28DD2A159CBC0F638D0D1ED316BF916A04BC5AB62B95826F2387D1342EA33779526A1909FCAEB67DB6C8F1BB8550544087407462997852081DDAA22AB072EBB204A911654DC8EE988BCDAA8D36433320A1FCBB1E02932119CD6B77FFD2459B1EF170FF35FF38BA957259FBB5396E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D642F13FEACF9F953255F45DB33FFA13DABC74A15EFDC5BB956C94590170BB2473B1F381564524E001284FF13325E0E123E68C5ACC3ACF396B15DFF3CF22C24D719696E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D642E8A95E58CBA24739343ECA89FDAB1C0D16C5353ECD90C364667B1B7E3B3D8698F3E0EE4874004D7100AA57E7F2778C76DE4D0E2F79B337C06DD2E407B80351DC96E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D642ECA9E92F835FAEA4AE5B73605852635FBE67D5F472BA7BE41DF94C44F472D49FAE23C3649A842C685B5CC1A5D475D8D3B46854FD28EBE9BD72921388A98BF2F196E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D642DE755DEFD7ABBDC9A95A90262084CA8E9C69123CEBF24BFC9A82114EB8E62673EA2A2BD72D321F795A2A22A4ADB5BAA42D55FC561F09D6BB0AA3518EE7BC0B8C96E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D64296E684B99F21D642487F135CC93AA0E8A97C1DA44B6706EBA95A3CCB24D9EB2E643D6B339FF7DE3983DC16C03AF3C4A22878EF976D9D2AF4549D1D9933EAC824CB32801CC4136EDF"; - - String sm2Pk = "03420004571DE0574BACC945BE003FBA94EB3FF4000BD2C64C5D81D4463099177A5E387E583DEEF7087E988E5C84E4FE19B24566A9A130D7159CE13DC8527B8341CEA3F3"; - - String sm2Sk = "00010000EBCA3A20376AAEDA2A0B607F14ADD89CE62DFF26A115FB4C987FDDDE75E78CBB0000000000000000000000000000000000000000000000000000000000000000"; - -// ret = api.SM2OrRSAGenKeyPair(1, "", 1024); -// -// System.out.println( ret ); -// System.out.println( Util.bytes2HexString((byte[]) ret.get("PrivateKey")) ); -// System.out.println( Util.bytes2HexString((byte[]) ret.get("PublicKey")) ); - - - byte[] enData1 = api.encryptByPk(1, sm2Pk, testData); - System.out.println( new String(enData1) ); - - byte[] deData1 = api.decryptBySk(1, sm2Sk, enData1); - - // deData == testData - assert Arrays.equals( enData1, deData1 ); - System.out.println("SM2 公钥加密/私钥解密 测试通过"); -// -// -// byte[] enData = api.encryptByPk(0, rsaPk, testData); -// byte[] deData = api.decryptBySk(0, rsaSk, enData); -// -// // deData == testData -// assert Arrays.equals( enData, deData ); -// System.out.println("RSA 公钥加密/私钥解密 测试通过"); - - - -// byte[] enData1 = api.encryptBySk(1, sm2Sk, testData); -// System.out.println( new String(enData1) ); -// -// byte[] deData1 = api.decryptByPk(1, sm2Pk, enData1); -// -// // deData == testData -// assert Arrays.equals( enData1, deData1 ); -// System.out.println("SM2 私钥加密/公钥解密 测试通过"); -// -// -// byte[] enData = api.encryptBySk(0, rsaSk, testData); -// byte[] deData = api.decryptByPk(0, rsaPk, enData); -// -// // deData == testData -// assert Arrays.equals( enData, deData ); -// System.out.println("RSA 私钥加密/公钥解密 测试通过"); - - - } finally { - api.disconnect(); - } - - } - - -} diff --git a/src/test/java/com/sunyard/sydapi/sample/Build.java b/src/test/java/com/sunyard/sydapi/sample/Build.java deleted file mode 100644 index d68cdf4..0000000 --- a/src/test/java/com/sunyard/sydapi/sample/Build.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.sunyard.sydapi.sample; - -public class Build { - public static void main(String[] args) { - - } -} diff --git a/src/test/java/com/sunyard/sydapi/sample/InputOutputKeyTest.java b/src/test/java/com/sunyard/sydapi/sample/InputOutputKeyTest.java deleted file mode 100644 index fbbf4ff..0000000 --- a/src/test/java/com/sunyard/sydapi/sample/InputOutputKeyTest.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.sunyard.sydapi.sample; - -import com.sunyard.RetWrap; -import com.sunyard.SydApi; -import com.sunyard.cert.X509; -import racal.sunyard.main.SydApiBuilder; - -import java.io.UnsupportedEncodingException; -import java.util.Arrays; - - -/** - * 密钥导入导出功能测试 - * 其实就是做 lmk2zmk(A8) 转加密和 zmk2lmk(A6) 转加密 - */ -public class InputOutputKeyTest -{ - - public static void main(String[] args) throws UnsupportedEncodingException, IllegalAccessException, InstantiationException, ClassNotFoundException { - - System.out.println("密钥导入导出功能测试"); - - - SydApi api = new SydApiBuilder() - .setIp("172.16.17.161") -// .useDebugMode() -// .useEBCDMode() -// .useETEncrypt() - .build(); - - try { - - String keyType = "000"; - char sydSln = 'X'; - - - // 生成一个测试用的 zmk - RetWrap ret = api.genSymmetricKey( - "000", - 'Z' - ); - - String zmk = new String((byte[]) ret.get("lmkKey")); - System.out.println( "zmk=" + zmk); - - - // 生成一个测试用的 key - ret = api.genSymmetricKey( - keyType, - sydSln - ); - - String key = new String((byte[]) ret.get("lmkKey")); - System.out.println( "lmkKek=" + key); - - - // 将 key 转加密输出 - ret = api.outputKey(keyType, sydSln, zmk, key); - String key2 = new String((byte[]) ret.get("key")); - System.out.println( "zmkKek=" + key2); - - - // 将 key 重新导入 - ret = api.inputKey(keyType, sydSln, zmk, key2); - String key3 = new String((byte[]) ret.get("key")); - System.out.println( "*lmkKek=" + key3); - - - }finally { - api.disconnect(); - } - - } - - -} diff --git a/src/test/java/com/sunyard/sydapi/sample/MACTest.java b/src/test/java/com/sunyard/sydapi/sample/MACTest.java deleted file mode 100644 index 958e3c7..0000000 --- a/src/test/java/com/sunyard/sydapi/sample/MACTest.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.sunyard.sydapi.sample; - -import com.sunyard.SydApi; -import racal.sunyard.main.SydApiBuilder; - -public class MACTest { - - public static void main(String[] args) throws IllegalAccessException, InstantiationException, ClassNotFoundException { - - SydApi api = new SydApiBuilder() - .setIp("172.16.17.162") -// .useEBCDMode() - .useDebugMode() -// .useETEncrypt() - .build(); - - - byte[] data = new byte[10]; - byte[] mac = api.MACCalc(0, 1, 0, 2, "X12345678123456781234567812345678", data); - - System.out.println( new String( mac ) ); - - - } -} diff --git a/src/test/java/com/sunyard/sydapi/sample/RSAP1SignVerify.java b/src/test/java/com/sunyard/sydapi/sample/RSAP1SignVerify.java deleted file mode 100644 index 9d7b62d..0000000 --- a/src/test/java/com/sunyard/sydapi/sample/RSAP1SignVerify.java +++ /dev/null @@ -1,156 +0,0 @@ -package com.sunyard.sydapi.sample; - -import com.sunyard.cert.X509; -import com.sunyard.proto.Util; -import racal.sunyard.main.SydApi4j; -import racal.sunyard.main.SydApiBuilder; -import sun.security.provider.X509Factory; - -import java.io.UnsupportedEncodingException; -import java.nio.ByteBuffer; -import java.util.Base64; - -public class RSAP1SignVerify { - private static byte[] createBlock(byte type, byte[] in) { - if (2 == type && (255 & in[0]) >= 128) { - byte[] nin = new byte[in.length + 1]; - nin[0] = 0; - System.arraycopy(in, 0, nin, 1, in.length); - in = nin; - } - - int len = in.length; - ByteBuffer bb; - if (len > 128) { - int lenLen = len / 256 + 1; - bb = ByteBuffer.allocate(len + 1 + 1 + lenLen); - bb.put(type); - bb.put((byte) (128 + lenLen)); - - for (int i = 0; i < lenLen; ++i) { - bb.put((byte) (255 & len >>> 8 * (lenLen - 1 - i))); - } - } else { - bb = ByteBuffer.allocate(len + 1 + 1); - bb.put(type); - bb.put((byte) (255 & len)); - } - - bb.put(in); - return bb.array(); - } - - - public static void main(String[] args) throws IllegalAccessException, InstantiationException, ClassNotFoundException { - SydApi4j api = (SydApi4j) new SydApiBuilder() - .setIp("192.168.1.226") - .useDebugMode() - .build(); - - - try { - //model 0:通过证书序列号去签名,以及验签 - //model 1:通过证书DN去签名,以及验签 - //model 2:通过证书实体的机构号获取到公钥,通过机构号以及公钥去签名,公钥去验签 - byte model = 2; - switch (model) { - case 2: { - String cert = "-----BEGIN CERTIFICATE-----\n" + - "MIIEQjCCAyqgAwIBAgIFQAeZAyIwDQYJKoZIhvcNAQELBQAwXTELMAkGA1UEBhMC\n" + - "Q04xMDAuBgNVBAoMJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhv\n" + - "cml0eTEcMBoGA1UEAwwTQ0ZDQSBBQ1MgVEVTVCBPQ0EzMTAeFw0xOTEwMjgwODU4\n" + - "NTRaFw0yNDEwMjgwODU4NTRaMGsxCzAJBgNVBAYTAkNOMRYwFAYDVQQKDA1DRkNB\n" + - "IE9DQTMxIENBMQ4wDAYDVQQLDAVneW5zaDEZMBcGA1UECwwQT3JnYW5pemF0aW9u\n" + - "YWwtMzEZMBcGA1UEAwwQZ3luc2g5ODEwMDAwMTE1MDCCASIwDQYJKoZIhvcNAQEB\n" + - "BQADggEPADCCAQoCggEBANZhyVUufcUclty+zfbbrCsjePrTRlvvXjL0gprrSK6U\n" + - "ynyzs4h76+s3MBewAvmDcemOopddC+uvX/zfKgTzyEeyrmnee936xKXHyv1SHblW\n" + - "a4oMPR458X2o/Ej3hHzEXqj/WdUEZdx83HeaYcdhCgoHNaKcEpiqkpIjhXtIU4Ah\n" + - "L3ciTF7Y+0NWTi17dDI17i0C681Tjya5p0Srpw4pRy1Rb0dx6zkTGGq52RLCQk4g\n" + - "GVWvYEn4ST4DhWZXcgTOkVBMPMNS+qXxHNy6KLi3ky6x9U+10ldg1rqG7jOtWn1E\n" + - "HqlzcIxqdqr7iO95h5a/K0bFKiVywEq/YdlxgAbH/KUCAwEAAaOB+jCB9zA/Bggr\n" + - "BgEFBQcBAQQzMDEwLwYIKwYBBQUHMAGGI2h0dHA6Ly9vY3NwdGVzdC5jZmNhLmNv\n" + - "bS5jbjo4MC9vY3NwMB8GA1UdIwQYMBaAFJo9tK5lWPvOWgV4JqBtKwSGusbsMAwG\n" + - "A1UdEwEB/wQCMAAwNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDovLzIxMC43NC40Mi4z\n" + - "L09DQTMxL1JTQS9jcmw2NC5jcmwwDgYDVR0PAQH/BAQDAgbAMB0GA1UdDgQWBBTa\n" + - "pk33a/mKcAoX27Prs1miHQgqPTAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH\n" + - "AwQwDQYJKoZIhvcNAQELBQADggEBAK7B11CFYLThIEEIIWG4A3BDvMiQhkeJ2jDd\n" + - "xvc/pIH6SmIRJyOTWYxKhkBrI1AaKhOYfzsU973sK2gyLURjkatg1pTxg5v37sIo\n" + - "BGqMe05aUF1MQlXsx+R+mes1GJcurPXeZ+Ho3DCBPo/O1uU5QHy5OU4iVOwErrOK\n" + - "ExslrbDPFizZSes7I+y/dQcl4WkhjcSA37G/Zay6RsQuiPkHpt7dHzUGnMqF9CvW\n" + - "6SiEvhdtSRTyqvjbJFL2bP3prUBwDD6Yi3oe5uclm/iPwy/7HLbG1oGBz0sHn+80\n" + - "ac8jKPehg78CEgMaq1FKcl2zvorIixrjoLGYOSVthz6oABZ5MHk=\n" + - "-----END CERTIFICATE-----"; - - - String signCert = "MIID6DCCAtCgAwIBAgIFJnVRuPUwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UEBhMCQ04xFDAS\n" + - "BgNVBAoMC05YWTIwNDhURVNUMRgwFgYDVQQDDA9OWFkyMDQ4Uk9PVFRFU1QwHhcNMTkwNTMw\n" + - "MDAxNjI2WhcNMjQwNTI4MDAxNjI2WjB6MQswCQYDVQQGEwJDTjE3MDUGA1UECgwuUnVyYWwg\n" + - "Q3JlZGl0IEJhbmtzIEZ1bmRzIENsZWFyaW5nIENlbnRlcihURVNUKTEUMBIGA1UECwwLRW50\n" + - "ZXJwcmlzZXMxHDAaBgNVBAMMEzA2M0A2NzMzMjcwOTk5OTkwMDQwggEiMA0GCSqGSIb3DQEB\n" + - "AQUAA4IBDwAwggEKAoIBAQCEEMIed7o5R2ZCPKKZrJjQ7x7hIYsAaBd5vhAhj+HyXyCPF6O6\n" + - "3N9znR8uv+BlG2va4jIdye/rLgTGnBuuRZPEYNGvJvoTy01lFtixuInkNW1VkgEQ1CDlwW47\n" + - "TOC5dFPYHENkSMMSiDM0BLBQsZH1p4oQzSyGVtAs9YTWQhb/nWSSXgpiz5+qmlvSrsEU+Ffy\n" + - "1fYsN6RadZWL2Pegk8NTS/KTfbo9NCgE6jKFoPNzJ20fdK5aUR5ePI5JdnzxfrabkI9F9964\n" + - "tlsynsOaoWY60FMmfB+HcvJoSgSI65iNRFRwkzic8mtnmdq9EIIcPgZVz7GCEp9v3Vk30T9e\n" + - "M2/ZAgMBAAGjgbEwga4wHwYDVR0jBBgwFoAUZaX9myCvxP1gs80NCsJZtGtypMEwCQYDVR0T\n" + - "BAIwADBUBgNVHR8ETTBLMEmgR6BFpEMwQTEOMAwGA1UEAwwFY3JsMjExDDAKBgNVBAsMA2Ny\n" + - "bDEUMBIGA1UECgwLTlhZMjA0OFRFU1QxCzAJBgNVBAYTAkNOMAsGA1UdDwQEAwIHgDAdBgNV\n" + - "HQ4EFgQUdhrTivJUnKI5oZ0T2OZkSEaDkIUwDQYJKoZIhvcNAQELBQADggEBACgf34fsfPvN\n" + - "ln1Ch2Cid7jrJEw5o1AQlahxWtnJH4fzxgYldqgNpoZD3p9XOmFEIvTBHAt8wANQoCQEFJj2\n" + - "3PZvwG4T6VXwRn05/u25fMDF4R7Z9IYlNVY5hpxtisC7u8aq7VCqHwzXsjaItuCPQbOkhTCb\n" + - "2m4TVGbaMYXVWhEJiss31XrNZgAbKfrFEAmG6+KO5cRdfjXHooaY44sgeEd+Mi5aPyY+QNR1\n" + - "uio39G+ur/BjHqOCIujUEI8f3g8wAQaIFyA97rAjJW1W/BVZispRg4niG0mLQ356cTGj+kkJ\n" + - "imdxvNyhfwmMNweP6fIUnajMOtJiMomjSAdIuqdxDIw="; - String source = "操作员:800000783001CifNo800000783LoginId800000783001LoginTypeCtransactioneibs.login"; - String signatureBase64 = "CC0uWxM/YqFrPzRKqvpEDBKz5AZC2+Hp2eEWhgR+z0XR9nirrtovb8e61ahLeYywsZ5bBZgCL5lKI/YJ/mI2Nh3ntWQCXSAf8DpOD3GWkHRMfDgeiGj0F3qyTOJi7iY+wAZOFBLiOEe2P2YFCl0Luny6dfRFoBkvoxVbrrKui+8d5pusciuuwQcL+P7K0FeIPb2yjdZfm+oz+FMlq4dvSHJrnDZ3tUcS7ZzfXSHYwAm1aA5SAWNIS6ixP1pT4nwLM0W+tUdvtP1yx6q7UyZPeDaWDsTqZbLvd3Ond38jQIrPutK/ACBsg92VS2SmQDVj0C+ZrJkvjbXbRj87dn0CGw=="; - byte[] bSource = source.getBytes(); - - byte[] derCert = Util.decodeBase64(signCert); - Base64.Encoder encoder = Base64.getEncoder(); - cert = X509Factory.BEGIN_CERT + "\n" + encoder.encodeToString(derCert) + X509Factory.END_CERT; - X509 X509Cert = api.GetX509CertInfo(cert); - - byte[] signature = Util.decodeBase64(signatureBase64); - byte[] signatureDer = createBlock((byte) 4, signature); - - - // 通过传入公钥P1验签 - Boolean bRet = api.RSAVerify(0, api.DATA_ORIGIN, X509Cert.getPubKey(), bSource, signatureDer); - System.out.println("P1验签结果:" + bRet); - - -/* - - String userID = "2"; - byte[] testData = {1,2,3,45,1,2,3,45}; - // 机构号获取公钥 - String pk=api.RSAGetPublicKeyC(userID,0); - System.out.println("PK: " + pk); - - // 通过机构号获取私钥P1签名 - byte[] sign = api.RSASignC(userID,1,api.DATA_ORIGIN,testData); - System.out.println( "P1签名结果: " + Util.bytes2HexString(sign) ); - - // 通过传入公钥P1验签 - boolean bRet = api.RSAVerify(1,api.DATA_ORIGIN,Util.hexString2Bytes(pk),testData, sign ); - System.out.println("P1验签结果:"+bRet);*/ - } - break; - default: - break; - } - - } catch (Exception e) { - e.printStackTrace(); - } finally { - - if (null != api) { - api.disconnect(); - } - - } - - - } - -} diff --git a/src/test/java/com/sunyard/sydapi/sample/Test.java b/src/test/java/com/sunyard/sydapi/sample/Test.java deleted file mode 100644 index b8d0360..0000000 --- a/src/test/java/com/sunyard/sydapi/sample/Test.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.sunyard.sydapi.sample; - -import com.sunyard.RetWrap; -import com.sunyard.SydApi; -import com.sunyard.cert.X509; -import com.sunyard.proto.Util; -import racal.sunyard.main.SydApiBuilder; - -import java.io.UnsupportedEncodingException; -import java.util.Arrays; - - -public class Test -{ - - public static void main(String[] args) throws UnsupportedEncodingException, IllegalAccessException, InstantiationException, ClassNotFoundException { - - System.out.println("工银亚洲测试功能测试"); - byte[] testData = new byte[17000]; - Arrays.fill(testData, (byte) 0x88); - - SydApi api = new SydApiBuilder() - .setIp("192.168.1.226") -// .useEBCDMode() - .useDebugMode() -// .useETEncrypt() - .build(); - -// SydApi api = new SydApi4j().connect("192.168.0.222", 8889, null, 3000); - - try { - - //RetWrap ret = api.genComposeKey(new String[]{"D5B45BA5E80B4520", "187B1BFB7629DCD7"}); - //RetWrap ret = api.genSymmetricKey("000", 'X'); - //System.out.println( ret ); - - String cert2 = "-----BEGIN CERTIFICATE-----\n" + - "MIID6DCCAtCgAwIBAgIFJnVRuPUwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UEBhMCQ04xFDAS\n" + - "BgNVBAoMC05YWTIwNDhURVNUMRgwFgYDVQQDDA9OWFkyMDQ4Uk9PVFRFU1QwHhcNMTkwNTMw\n" + - "MDAxNjI2WhcNMjQwNTI4MDAxNjI2WjB6MQswCQYDVQQGEwJDTjE3MDUGA1UECgwuUnVyYWwg\n" + - "Q3JlZGl0IEJhbmtzIEZ1bmRzIENsZWFyaW5nIENlbnRlcihURVNUKTEUMBIGA1UECwwLRW50\n" + - "ZXJwcmlzZXMxHDAaBgNVBAMMEzA2M0A2NzMzMjcwOTk5OTkwMDQwggEiMA0GCSqGSIb3DQEB\n" + - "AQUAA4IBDwAwggEKAoIBAQCEEMIed7o5R2ZCPKKZrJjQ7x7hIYsAaBd5vhAhj+HyXyCPF6O6\n" + - "3N9znR8uv+BlG2va4jIdye/rLgTGnBuuRZPEYNGvJvoTy01lFtixuInkNW1VkgEQ1CDlwW47\n" + - "TOC5dFPYHENkSMMSiDM0BLBQsZH1p4oQzSyGVtAs9YTWQhb/nWSSXgpiz5+qmlvSrsEU+Ffy\n" + - "1fYsN6RadZWL2Pegk8NTS/KTfbo9NCgE6jKFoPNzJ20fdK5aUR5ePI5JdnzxfrabkI9F9964\n" + - "tlsynsOaoWY60FMmfB+HcvJoSgSI65iNRFRwkzic8mtnmdq9EIIcPgZVz7GCEp9v3Vk30T9e\n" + - "M2/ZAgMBAAGjgbEwga4wHwYDVR0jBBgwFoAUZaX9myCvxP1gs80NCsJZtGtypMEwCQYDVR0T\n" + - "BAIwADBUBgNVHR8ETTBLMEmgR6BFpEMwQTEOMAwGA1UEAwwFY3JsMjExDDAKBgNVBAsMA2Ny\n" + - "bDEUMBIGA1UECgwLTlhZMjA0OFRFU1QxCzAJBgNVBAYTAkNOMAsGA1UdDwQEAwIHgDAdBgNV\n" + - "HQ4EFgQUdhrTivJUnKI5oZ0T2OZkSEaDkIUwDQYJKoZIhvcNAQELBQADggEBACgf34fsfPvN\n" + - "ln1Ch2Cid7jrJEw5o1AQlahxWtnJH4fzxgYldqgNpoZD3p9XOmFEIvTBHAt8wANQoCQEFJj2\n" + - "3PZvwG4T6VXwRn05/u25fMDF4R7Z9IYlNVY5hpxtisC7u8aq7VCqHwzXsjaItuCPQbOkhTCb\n" + - "2m4TVGbaMYXVWhEJiss31XrNZgAbKfrFEAmG6+KO5cRdfjXHooaY44sgeEd+Mi5aPyY+QNR1\n" + - "uio39G+ur/BjHqOCIujUEI8f3g8wAQaIFyA97rAjJW1W/BVZispRg4niG0mLQ356cTGj+kkJ\n" + - "imdxvNyhfwmMNweP6fIUnajMOtJiMomjSAdIuqdxDIw=\n" + - "-----END CERTIFICATE-----\n"; - - X509 x509 = api.GetX509CertInfo( cert2 ); - - System.out.println( x509 ); - - - }finally { - api.disconnect(); - } - - } - - -} diff --git a/src/test/java/com/sunyard/sydapi/sample/Test2.java b/src/test/java/com/sunyard/sydapi/sample/Test2.java deleted file mode 100644 index 159dbf0..0000000 --- a/src/test/java/com/sunyard/sydapi/sample/Test2.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.sunyard.sydapi.sample; - -import com.sunyard.RetWrap; -import com.sunyard.SydApi; -import racal.sunyard.main.SydApiBuilder; - -import java.io.UnsupportedEncodingException; -import java.util.Arrays; - - -// S -// key=53353745304145303232443638383236 -// kcv=3641364533414331353746454631303730314132374139334446303246313938 -// s1 = 4AD6F3FCC606182A -// s2 = 2F47B4C75439C0F0 - - -/** - * S - * 53433030443432444141433331394234 - * 3031463646374141334331453532333945443237423031434136333735383530 - *

- *

- *

- * 554233453843413345304545453331374130333744353832434544454433363138 - * 334138463043 - *

- *

- *

- * SA035CDE407F5249 - * D99CABFAE8D110CD9269FB34B8CAD265 - *

- *

- * X55D9B6452E7B89BB7B266E2D02042780 - * 7AD5FB - *

- * X7B266E2D0204278055D9B6452E7B89BB - * 5A2ABC60CEFCC568 - */ -// U - -/** - 554233453843413345304545453331374130333744353832434544454433363138 - 334138463043 - */ - -// T - -/** - * - * - * SA035CDE407F5249 - * D99CABFAE8D110CD9269FB34B8CAD265 - * - */ - - -/** - * X55D9B6452E7B89BB7B266E2D02042780 - * 7AD5FB - */ - - -/** - * X7B266E2D0204278055D9B6452E7B89BB - * 5A2ABC60CEFCC568 - */ - - -/** - * X1C7B9DF464C039F2D031E0465E8F89B9 - * 10093C - */ -public class Test2 { - - public static void main(String[] args) throws UnsupportedEncodingException, IllegalAccessException, InstantiationException, ClassNotFoundException { - - System.out.println("工银亚洲测试功能测试"); - byte[] testData = new byte[17000]; - Arrays.fill(testData, (byte) 0x88); - - SydApi api = new SydApiBuilder() - .setIp("172.16.17.162") - .useDebugMode() - .build(); - -// SydApi api = new SydApi4j().connect("192.168.0.222", 8889, null, 3000); - - - RetWrap ret; - try { -// ret = api.genAndPrintSplit( -// "000", -// 'X' -// ); -// -// -// System.out.println( Util.bytes2HexString((byte[]) ret.get("lmkKey")) ); -// System.out.println( Util.bytes2HexString((byte[]) ret.get("keyCheck")) ); - - String[] splits = new String[]{"45A2863406F82135", "2314C1B6C97DF5B8"}; -// byte[] p1 = Util.hexString2Bytes( splits[0] ); -// byte[] p2 = Util.hexString2Bytes( splits[1] ); -// byte[] keybytes = new byte[p1.length + p2.length]; - -// for ( int i = 0; i < keybytes.length ; i++ ){ -// keybytes[i] = (byte) (p1[i] ^ p2[i]); -// } - -// System.arraycopy( p1, 0, keybytes, 0, p1.length ); -// System.arraycopy( p2, 0, keybytes, p1.length, p2.length ); -// - ret = api.genComposeKey("000", 'X', splits[0] + splits[1]); - - System.out.println(ret); - System.out.println(new String((byte[]) ret.get("lmkKey"))); - System.out.println(new String((byte[]) ret.get("keyCheck"))); - - } finally { - api.disconnect(); - } - - } - - -} diff --git a/src/test/java/com/sunyard/sydapi/sample/TestKeyPair.java b/src/test/java/com/sunyard/sydapi/sample/TestKeyPair.java deleted file mode 100644 index b04c469..0000000 --- a/src/test/java/com/sunyard/sydapi/sample/TestKeyPair.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.sunyard.sydapi.sample; - -import com.sunyard.RetWrap; -import com.sunyard.SydApi; -import com.sunyard.proto.Util; -import racal.sunyard.main.SydApiBuilder; - -import java.io.UnsupportedEncodingException; -import java.util.Arrays; - -public class TestKeyPair -{ - - public static void main(String[] args) throws UnsupportedEncodingException, IllegalAccessException, InstantiationException, ClassNotFoundException { - - System.out.println("非对称密钥生成"); - byte[] testData = new byte[17000]; - Arrays.fill(testData, (byte) 0x88); - - SydApi api = new SydApiBuilder() - .setIp("172.16.17.161") - .useDebugMode() - .build(); - - RetWrap ret; - try { - - // SM2 - ret = api.SM2OrRSAGenKeyPair(1, "", 0); - - System.out.println( ret ); - System.out.println( Util.bytes2HexString((byte[]) ret.get("PrivateKey")) ); - System.out.println( Util.bytes2HexString((byte[]) ret.get("PublicKey")) ); - - - // RSA - ret = api.SM2OrRSAGenKeyPair(0, "", 1152); - - System.out.println( ret ); - System.out.println( Util.bytes2HexString((byte[]) ret.get("PrivateKey")) ); - System.out.println( Util.bytes2HexString((byte[]) ret.get("PublicKey")) ); - - }finally { - api.disconnect(); - } - - } - - -} diff --git a/src/test/java/com/sunyard/sydapi/sample/TestXJMain.java b/src/test/java/com/sunyard/sydapi/sample/TestXJMain.java deleted file mode 100644 index 38fa0a5..0000000 --- a/src/test/java/com/sunyard/sydapi/sample/TestXJMain.java +++ /dev/null @@ -1,614 +0,0 @@ -package com.sunyard.sydapi.sample; - -import com.sunyard.RetWrap; -import com.sunyard.SydApi; -import com.sunyard.cert.X509; -import com.sunyard.proto.Util; -import racal.sunyard.main.SydApi4j; - -import java.io.BufferedInputStream; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.Scanner; - -/** - * 前置模拟服务 - */ -public class TestXJMain { - - public static void main(String[] args) { - String[] inputStrs; - - System.out.println("SydApi 测试程序启动"); - System.setProperty("com.sunyard.sydapi4j.debug", "true"); - SydApi4j api = null; - Scanner sc = new Scanner(System.in); - - api = apiCon(sc); - - if (api != null) { - System.out.println("连接成功"); - } - - while (true) { - - while (api == null) { - api = apiCon(sc); - } - - System.out.print("请输入指令(指令0可以查询所有指令):"); - int code = sc.nextInt(); - // 接int后面的一个换行 - String s = sc.nextLine(); - - try { - - switch (code) { - case 0: // 查询指令 - System.out.println("指令 0: 查询指令\n" + - "指令 1: 更换ip\n" + - "指令 2: PKCS#1签名验签(DN获取公私钥)\n" + - "指令 3: PKCS1签名验签(序列号获取公私钥)\n" + - "指令 4: PKCS#1签名验签(序列号获取公私钥,银联)\n" + - "指令 5: PKCS#1签名验签(ID获取私钥,外部传入公钥,自定义ID)\n" + - "指令 6: PKCS#7签名验签(DN获取私钥)\n" + - "指令 7: PKCS#7签名验签(DN获取私钥, 数据不限长)\n" + - "指令 8: PKCS#7签名(DN获取私钥)\n" + - "指令 9: 生成会话密钥并确认\n" + - "指令 10: 对称密钥加解密-ECB\n" + - "指令 11: 对称密钥加解密-CBC\n" + - "指令 12: 生成数字信封及解密数字信封(网联)\n" + - "指令 13: 通过DN获取公钥\n" + - "指令 14: 通过DN获取序列号\n" + - "指令 15: 通过DN获取公钥\n" + - "指令 16: 通过ID获取公钥\n" + - "指令 17: 通过ID获取X509证书并解析\n" + - "指令 18: 生成SM2密钥对\n" + - "指令 19: 生成SM2密钥对\n" + - "指令 20: SM2加解密\n" + - "指令 21: SM3哈希(带公钥)\n" + - "指令 22: SM3哈希\n" + - "指令 -1: 退出"); - break; - case 1: // 更换ip - apiDisCon(api); - - api = apiCon(sc); - - break; - - case 2: // PKCS#1签名验签(DN获取公私钥) - inputStrs = inputUtil(sc, "DN", "签名验签原数据"); - - testSYD_NakedVerify(api, inputStrs[0], inputStrs[1]); - break; - - case 3: // PKCS1签名验签(序列号获取公私钥) - inputStrs = inputUtil(sc, "序列号", "签名验签原数据"); - - testNetVerify(api, inputStrs[0], inputStrs[1]); - break; - - case 4: // PKCS#1签名验签(序列号获取公私钥,银联) - inputStrs = inputUtil(sc, "序列号", "签名验签原数据"); - - testSM2VerifyCustomized(api, inputStrs[0], inputStrs[1]); - break; - - case 5: // PKCS#1签名验签(ID获取私钥,外部传入公钥,自定义ID) - inputStrs = inputUtil(sc, - "使用者的 ID(生成实体时的机构号)", "id(用于计算SM3-HASH)", "原始数据"); - - testSM2Verify(api, inputStrs[0], inputStrs[1], - inputStrs[2]); - break; - case 6: // PKCS#7签名验签(DN获取私钥) - inputStrs = inputUtil(sc, "签名者证书 DN", "待签名的原始数据"); - - testSYD_DetachedVerify(api, inputStrs[0], inputStrs[1]); - break; - - case 7: // PKCS#7签名验签(DN获取私钥, 数据不限长) - inputStrs = inputUtil(sc, "sm3 hash所用的公钥", - "待签名的原始数据", "签名者证书 DN"); - - testSm3AndDetachedSign(api, inputStrs[0], - inputStrs[1], inputStrs[2]); - break; - - case 8: // PKCS#7签名(DN获取私钥) - inputStrs = inputUtil(sc, "sm3 hash所用的公钥", - "待签名的原始数据", "签名者证书 DN"); - - testDetachedSign(api, inputStrs[0], - inputStrs[1], inputStrs[2]); - break; - - case 9: // 生成会话密钥并确认 - inputStrs = inputUtil(sc, "公钥的der编码", "使用者的ID"); - - testSM2ConfirmSessionKeyC(api, inputStrs[0], inputStrs[1]); - break; - - case 10: // 对称密钥加解密-ECB - inputStrs = inputUtil(sc, "算法标识(0:3DES,1:SM4)", - "使用者的 ID(生成密钥时的机构号)", "加解密原始数据"); - - testSYMEncryptData(api, Integer.parseInt(inputStrs[0]), - inputStrs[1], inputStrs[2]); - break; - case 11: // 对称密钥加解密-CBC - inputStrs = inputUtil(sc, "算法标识(0:3DES,1:SM4)", - "使用者的 ID(生成密钥时的机构号)", "加解密原始数据"); - - testEncDecData(api, Integer.parseInt(inputStrs[0]), - inputStrs[1], inputStrs[2]); - break; - - case 12: // 生成数字信封及解密数字信封(网联) - inputStrs = inputUtil(sc, "X509证书的序列号"); - - testDecryptDE(api, inputStrs[0]); - break; - - case 13: // 通过DN获取公钥 - inputStrs = inputUtil(sc, "证书的DN", "密钥类型(0:签名公钥,1:加密公钥)"); - - testSYD_SM2_Get_Dn_PublicKey_HA(api, inputStrs[0], - Integer.parseInt(inputStrs[1])); - break; - - case 14: // 通过DN获取序列号 - inputStrs = inputUtil(sc, "证书的DN", "证书类型(0:签名证书,1:加密证书)"); - - testGetX509SN(api, inputStrs[0], - Integer.parseInt(inputStrs[1])); - break; - - case 15: // 通过DN获取公钥 - inputStrs = inputUtil(sc, "证书的DN", "证书类型(0:签名证书,1:加密证书)"); - - testGetDNPublicKey(api, inputStrs[0], - Integer.parseInt(inputStrs[1])); - break; - - case 16: // 通过ID获取公钥 - inputStrs = inputUtil(sc, "使用者的ID", "密钥类型(0:签名公钥, 1:加密公钥)"); - - testSM2GetPublicKeyC(api, inputStrs[0], - Integer.parseInt(inputStrs[1])); - break; - case 17: // 通过ID获取X509证书并解析 - inputStrs = inputUtil(sc, "使用者的ID", "证书类型(0:签名证书,1:加密证书)"); - - testGetX509CertFileC(api, inputStrs[0], - Integer.parseInt(inputStrs[1])); - break; - - case 18: // 生成SM2密钥对 - testSM2GenKeyPair(api); - break; - - case 19: // 生成SM2密钥对 - testSYD_SM2GenKeyPair(api); - break; - - case 20: // SM2加解密 - inputStrs = inputUtil(sc, "使用者的ID(生成密钥时的机构号)", "加解密原始数据"); - - testSM2DecryptC(api, inputStrs[0], inputStrs[1]); - break; - - case 21: // SM3哈希(带公钥) - inputStrs = inputUtil(sc, "公钥", "原始数据"); - - testSM3Hash(api, inputStrs[0], inputStrs[1]); - break; - - case 22: // SM3哈希 - inputStrs = inputUtil(sc, "原始数据"); - - testSM3Hash2(api, inputStrs[0]); - break; - case -1: // 退出 - System.out.print("退出程序"); - apiDisCon(api); - - System.exit(0); - default: - System.out.println("输入指令错误,请重新输入...."); - System.out.println("可以输入指令0查询所有指令...."); - } - } catch (Exception e) { - e.printStackTrace(); - continue; - } - } - } - - public static SydApi4j apiCon(Scanner sc) { - SydApi4j api; - System.out.print("请输入ip地址:"); - String ip = sc.nextLine().trim(); - try { - api = (SydApi4j) new SydApi4j().connect(ip, 8889, null, 10000); - } catch (Exception e) { - e.printStackTrace(); - System.out.println("连接未成功,请重新连接..."); - return null; - } - - return api; - } - - // 断开连接 - public static void apiDisCon(SydApi api) { - try { - api.disconnect(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public static String[] inputUtil(Scanner sc, String... strs) { - String[] retStrs = new String[strs.length]; - - for (int i = 0; i < strs.length; i++) { - System.out.print("请输入" + strs[i] + ":"); - retStrs[i] = sc.nextLine().trim(); - } - - return retStrs; - } - - - // ========================================================================== - // 对称加解密流程-ECB - public static void testSYMEncryptData(SydApi api, int alg, String userId, String orgData) { - - System.out.println("通过id获取公钥"); - String publicKey = api.SM2GetPublicKeyC(userId, 1); - System.out.println("获取的公钥为: " + publicKey); - - // 生成会话密钥 - System.out.println("生成会话密钥"); - RetWrap retWrap = api.SM2GenSessionKey(publicKey); - printRetWrap(retWrap); - String cipherKey = (String) retWrap.get("CipherKey"); - - // 确认会话密钥 - System.out.println("确认会话密钥"); - RetWrap wrap = api.SM2ConfirmSessionKeyC(userId, cipherKey); - printRetWrap(wrap); - String sessionKey = (String) wrap.get(SydApi.RET_SESSION_KEY); - - // 对称加密 - System.out.println("对称加密"); - byte[] bytes = api.SYMEncryptData(alg, sessionKey, orgData.getBytes()); - - System.out.println("对称解密"); - byte[] bytes1 = api.SYMDecryptData(alg, sessionKey, bytes); - System.out.println("解密结果: " + new String(bytes1)); - } - - // 对称加解密流程-CBC - public static void testEncDecData(SydApi api, int alg, String userId, String orgData) { - - System.out.println("通过id获取公钥"); - String publicKey = api.SM2GetPublicKeyC(userId, 1); - System.out.println("获取的公钥为: " + publicKey); - - System.out.println("生成会话密钥"); - RetWrap retWrap = api.SM2GenSessionKey(publicKey); - printRetWrap(retWrap); - String cipherKey = (String) retWrap.get("CipherKey"); - - System.out.println("确认会话密钥"); - RetWrap wrap = api.SM2ConfirmSessionKeyC(userId, cipherKey); - printRetWrap(wrap); - String sessionKey = (String) wrap.get(SydApi.RET_SESSION_KEY); - - // 对称加密 - System.out.println("对称加密"); - byte[] bytes = api.SYMEncryptDataCBC(alg, sessionKey, orgData.getBytes()); - - System.out.println("对称解密"); - byte[] bytes1 = api.SYMDecryptDataCBC(alg, sessionKey, bytes); - System.out.println("解密结果: " + new String(bytes1)); - } - - // PKCS#1签名验签(DN获取公私钥) - // 测试通过 - // 8004 - public static void testSYD_NakedVerify(SydApi api, String dn, String orgData) { - byte[] bytes = api.SYD_NakedSign(orgData.getBytes(), dn); - String sign = Util.bytes2HexString(bytes); - System.out.println("签名结果: " + sign); - - boolean b = api.SYD_NakedVerify(orgData.getBytes(), bytes, dn); - System.out.println("验签结果: " + b); - } - - // PKCS1签名验签(序列号获取公私钥) - // 测试通过 - // 6D - public static void testNetVerify(SydApi api, String sn, String orgData) { - String sign = api.netSign(sn, orgData.getBytes()); - System.out.println("签名结果: " + sign); - - boolean b = api.netVerify(sn, orgData.getBytes(), sign); - System.out.println("验签结果: " + b); - } - - // PKCS#1签名验签(序列号获取公私钥,银联) - // 测试通过 - // 81 - public static void testSM2VerifyCustomized(SydApi api, String sn, String orgData) { - String sign = api.SM2SignCustomized(sn, orgData.getBytes()); - System.out.println("签名结果: " + sign); - - boolean b = api.SM2VerifyCustomized(sn, orgData.getBytes(), sign); - System.out.println("验签结果: " + b); - } - - // PKCS#1签名验签(ID获取私钥,外部传入公钥,自定义ID) - // 测试通过 - // 75 - public static void testSM2Verify(SydApi api, String userId, - String certNo, String orgData) { - - String publicKey = api.SM2GetPublicKeyC(userId, 0); - System.out.println("获取到的公钥: " + publicKey); - - String sign = api.SM2SignC(userId, certNo, 1, - Util.hexString2Bytes(publicKey), orgData.getBytes()); - System.out.println("签名结果: " + sign); - - boolean b = api.SM2Verify(certNo, 1, - Util.hexString2Bytes(publicKey), orgData.getBytes(), sign); - System.out.println("验签结果: " + b); - } - - // PKCS#7签名验签(DN获取私钥, 数据8K以内) - // 测试通过 - // 8006 - public static void testSYD_DetachedVerify(SydApi api, String DN, - String orgData) { - String sign = api.SYD_DetachedSign(orgData.getBytes(), DN); - System.out.println("签名结果" + sign); - - boolean b = api.SYD_DetachedVerify(orgData.getBytes(), sign); - System.out.println("验签结果:" + b); - } - - // PKCS#7签名验签(DN获取私钥, 数据不限长) - // 测试通过 - // 8005 - public static void testSm3AndDetachedSign(SydApi api, String publicKey, - String orgData, String sCertDN) { - - String sign = api.sm3AndDetachedSign(orgData.getBytes(), publicKey, sCertDN); - System.out.println("签名结果: " + sign); - - boolean b = api.sm3AndDetachedVerify(orgData.getBytes(), publicKey, sign); - System.out.println("验签结果:" + b); - } - - // PKCS#7签名(DN获取私钥) - // 测试通过 - // 8005 - public static void testDetachedSign(SydApi api, String publicKey, - String orgData, String sCertDN) { - - byte[] hash = api.SM3Hash(publicKey, orgData.getBytes()); - - String sign = api.detachedSign( - SydApi.DATA_HASH, - hash, - sCertDN - ); - - System.out.println("签名结果: " + sign); - - boolean verify = api.detachedVerify( - SydApi.DATA_HASH, - hash, - sign - ); - - System.out.println("验签结果: " + verify); - } - - // 生成会话密钥并确认 - // 测试通过 - // 73 - public static void testSM2ConfirmSessionKeyC(SydApi api, - String publicKey, - String userId) { - - RetWrap retWrap = api.SM2GenSessionKey(publicKey); - printRetWrap(retWrap); - String cipherKey = (String) retWrap.get("CipherKey"); - - RetWrap retWrap1 = api.SM2ConfirmSessionKeyC(userId, cipherKey); - printRetWrap(retWrap1); - } - - // 生成数字信封及解密数字信封(网联) - // 测试通过 - // 6B - public static void testDecryptDE(SydApi api, String sn) { - - RetWrap retWrap = api.generateDE(sn, (byte) 0x30); - printRetWrap(retWrap); - String CipherKey = (String) retWrap.get("CipherKey"); - - RetWrap retWrap1 = api.decryptDE(sn, CipherKey); - printRetWrap(retWrap1); - } - - // 通过DN获取公钥 - // 测试通过 - // 7E - public static void testSYD_SM2_Get_Dn_PublicKey_HA(SydApi api, - String dn, - int keyType) { - String s = api.SYD_SM2_Get_Dn_PublicKey_HA(dn.getBytes(), keyType); - System.out.println("公钥为: " + s); - } - - // 通过DN获取序列号 - // 测试通过 - // 6E - public static void testGetX509SN(SydApi api, String dn, int keyType) { - String s = api.getX509SN(keyType, dn.getBytes()); - System.out.println("证书序列号: " + s); - } - - // 通过DN获取公钥 - // 测试通过 - // 7E - public static void testGetDNPublicKey(SydApi api, String dn, int keyType) { - String s = api.GetDNPublicKey(keyType, dn.getBytes()); - System.out.println("公钥为: " + s); - } - - // 通过ID获取公钥 - // 测试通过 - // QQ - public static void testSM2GetPublicKeyC(SydApi api, - String userId, - int keyType) { - String s = api.SM2GetPublicKeyC(userId, keyType); - System.out.println("公钥为: " + s); - } - - // 通过ID获取X509证书并解析 - // 测试通过 - // 8017 - public static void testGetX509CertFileC(SydApi api, - String userId, - int keyType) { - String s = api.GetX509CertFileC(userId, keyType); - System.out.println("证书: " + s); - - X509 x509 = api.GetX509CertInfo(s); - System.out.println("证书公钥: " + Util.bytes2HexString(x509.getPubKey())); - } - - // 生成SM2密钥对 - // 测试通过 - // E2 - public static void testSM2GenKeyPair(SydApi api) { - RetWrap retWrap = api.SM2GenKeyPair(); - printRetWrap(retWrap, true); - } - - // 生成SM2密钥对 - // 测试通过 - // QN - public static void testSYD_SM2GenKeyPair(SydApi api) { - RetWrap retWrap = api.SYD_SM2GenKeyPair(); - printRetWrap(retWrap); - } - - // SM2加解密 - // 测试通过 - // 78 - public static void testSM2DecryptC(SydApi api, - String userId, - String orgData) { - - String publicKey = api.SM2GetPublicKeyC(userId, 1); - System.out.println("获取的公钥为: " + publicKey); - - String s = api.SM2Encrypt(Util.hexString2Bytes(publicKey), orgData.getBytes()); - System.out.println("加密结果: " + s); - - byte[] bytes = api.SM2DecryptC(userId, s); - System.out.println("解密结果:" + new String(bytes)); - - } - - // SM3哈希(带公钥) - // 测试通过 - // 76 - // 带公钥 - public static void testSM3Hash(SydApi api, String publicKey, String orgData) { - byte[] hash = api.SM3Hash(publicKey, orgData.getBytes()); - - System.out.println("hash结果:" + Util.bytes2HexString(hash)); - } - - // SM3哈希 - // 测试通过 - // 76 - // 不带公钥 - public static void testSM3Hash2(SydApi api, String orgData) { - byte[] hash = api.SM3Hash(orgData.getBytes()); - - System.out.println("hash结果:" + Util.bytes2HexString(hash)); - } - - // 工具方法 - // ========================================== - - public static void printRetWrap(RetWrap rw) { - printRetWrap(rw, false); - } - - /** - * 输出 - * - * @param rw - */ - public static void printRetWrap(RetWrap rw, boolean flag) { - for (String s : rw.keySet()) { - - Object o = rw.get(s); - if (o instanceof String) { - System.out.println(s + ":" + o); - } else if (o instanceof byte[]) { - if (flag) { - System.out.println(s + ": " + Util.bytes2HexString((byte[]) o)); - } else { - System.out.println(s + ": " + new String(Util.hexString2Bytes(Util.bytes2HexString((byte[]) o)))); - } - } else { - System.out.println(s + ":" + o); - } - } - } - - // 获取证书 - public String getCertStr(String path) { - - BufferedInputStream bis = null; - try { - bis = new BufferedInputStream(new FileInputStream(path)); - - StringBuilder str = new StringBuilder(); - - int len = 0; - - while ((len = bis.read()) != -1) { - str.append((char) len); - } - - return str.toString(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - if (bis != null) { - try { - bis.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - - return null; - } - -} diff --git a/src/test/java/com/sunyard/sydapi/example/ABCNorthBranch.java b/src/test/java/com/sunyard/sydapi/test/ABCNorthBranch.java similarity index 99% rename from src/test/java/com/sunyard/sydapi/example/ABCNorthBranch.java rename to src/test/java/com/sunyard/sydapi/test/ABCNorthBranch.java index 30d3403..f2bfccc 100644 --- a/src/test/java/com/sunyard/sydapi/example/ABCNorthBranch.java +++ b/src/test/java/com/sunyard/sydapi/test/ABCNorthBranch.java @@ -1,4 +1,4 @@ -package com.sunyard.sydapi.example; +package com.sunyard.sydapi.test; import com.sunyard.RetWrap; import com.sunyard.SydApi;