Search in sources :

Example 16 with SM2

use of cn.hutool.crypto.asymmetric.SM2 in project hutool by looly.

the class SM2Test method sm2CustomKeyTest.

@Test
public void sm2CustomKeyTest() {
    KeyPair pair = SecureUtil.generateKeyPair("SM2");
    byte[] privateKey = pair.getPrivate().getEncoded();
    byte[] publicKey = pair.getPublic().getEncoded();
    SM2 sm2 = SmUtil.sm2(privateKey, publicKey);
    sm2.setMode(SM2Engine.Mode.C1C2C3);
    // 公钥加密,私钥解密
    byte[] encrypt = sm2.encrypt(StrUtil.bytes("我是一段测试aaaa", CharsetUtil.CHARSET_UTF_8), KeyType.PublicKey);
    byte[] decrypt = sm2.decrypt(encrypt, KeyType.PrivateKey);
    Assert.assertEquals("我是一段测试aaaa", StrUtil.str(decrypt, CharsetUtil.CHARSET_UTF_8));
}
Also used : KeyPair(java.security.KeyPair) SM2(cn.hutool.crypto.asymmetric.SM2) Test(org.junit.Test)

Example 17 with SM2

use of cn.hutool.crypto.asymmetric.SM2 in project hutool by looly.

the class SM2Test method sm2SignAndVerifyTest.

@Test
public void sm2SignAndVerifyTest() {
    String content = "我是Hanley.";
    final SM2 sm2 = SmUtil.sm2();
    byte[] sign = sm2.sign(StrUtil.utf8Bytes(content));
    boolean verify = sm2.verify(StrUtil.utf8Bytes(content), sign);
    Assert.assertTrue(verify);
}
Also used : SM2(cn.hutool.crypto.asymmetric.SM2) Test(org.junit.Test)

Example 18 with SM2

use of cn.hutool.crypto.asymmetric.SM2 in project hutool by looly.

the class SM2Test method sm2PlainWithPointTest2.

@Test
public void sm2PlainWithPointTest2() {
    String d = "4BD9A450D7E68A5D7E08EB7A0BFA468FD3EB32B71126246E66249A73A9E4D44A";
    String q = "04970AB36C3B870FBC04041087DB1BC36FB4C6E125B5EA406DB0EC3E2F80F0A55D8AFF28357A0BB215ADC2928BE76F1AFF869BF4C0A3852A78F3B827812C650AD3";
    String data = "123456";
    final SM2 sm2 = new SM2(d, q);
    sm2.setMode(SM2Engine.Mode.C1C2C3);
    final String encryptHex = sm2.encryptHex(data, KeyType.PublicKey);
    final String decryptStr = sm2.decryptStr(encryptHex, KeyType.PrivateKey);
    Assert.assertEquals(data, decryptStr);
}
Also used : SM2(cn.hutool.crypto.asymmetric.SM2) Test(org.junit.Test)

Example 19 with SM2

use of cn.hutool.crypto.asymmetric.SM2 in project hutool by looly.

the class SM2Test method readPublicKeyTest.

@Test
public void readPublicKeyTest() {
    String priKey = "MHcCAQEEIE29XqAFV/rkJbnJzCoQRJLTeAHG2TR0h9ZCWag0+ZMEoAoGCCqBHM9VAYItoUQDQgAESkOzNigIsH5ehFvr9y" + "QNQ66genyOrm+Q4umCA4aWXPeRzmcTAWSlTineiReTFN2lqor2xaulT8u3a4w3AM/F6A==";
    String pubKey = "MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAESkOzNigIsH5ehFvr9yQNQ66genyOrm+Q4umCA4aWXPeRzmcTAWSlTineiReTFN2lqor2xaulT8u3a4w3AM/F6A==";
    SM2 sm2 = SmUtil.sm2(priKey, pubKey);
    String src = "Sm2Test中文";
    byte[] data = sm2.encrypt(src, KeyType.PublicKey);
    byte[] sign = sm2.sign(src.getBytes(StandardCharsets.UTF_8));
    Assert.assertTrue(sm2.verify(src.getBytes(StandardCharsets.UTF_8), sign));
    byte[] dec = sm2.decrypt(data, KeyType.PrivateKey);
    Assert.assertArrayEquals(dec, src.getBytes(StandardCharsets.UTF_8));
}
Also used : SM2(cn.hutool.crypto.asymmetric.SM2) Test(org.junit.Test)

Aggregations

SM2 (cn.hutool.crypto.asymmetric.SM2)19 Test (org.junit.Test)19 KeyPair (java.security.KeyPair)3 PrivateKey (java.security.PrivateKey)3 PublicKey (java.security.PublicKey)1 ECPrivateKeyParameters (org.bouncycastle.crypto.params.ECPrivateKeyParameters)1 OpenSSHPrivateKeySpec (org.bouncycastle.jcajce.spec.OpenSSHPrivateKeySpec)1 Ignore (org.junit.Ignore)1