Open rarnu opened 5 months ago
https://github.com/GmSSL/GmSSL-Java/blob/main/src/test/java/org/gmssl/Sm2Test.java
具体原因是因为 @beforeTest 每次都重新生成key
@Before public void beforeTest(){ sm2_key = new Sm2Key(); sm2_key.generateKey(); }
需要将key固化到磁盘,然后在其他的测试用例内加载,即可解决问题
class TestSm2 { private val sm2Key = Sm2Key(has_private_key = true) @Test fun generateKeys() { sm2Key.generateKey() sm2Key.exportPublicKeyInfoPem("publickey.pem") sm2Key.exportEncryptedPrivateKeyInfoPem("12345678", "privatekey.pk8") } private fun loadKeys() { sm2Key.importPublicKeyInfoPem("publickey.pem") sm2Key.importEncryptedPrivateKeyInfoPem("12345678", "privatekey.pk8") } @Test fun testEncrypt() { loadKeys() val testStr = "gmssl" val ciphertext = sm2Key.encrypt(testStr.toByteArray()) val textHex = HexUtil.byteToHex(ciphertext) println(textHex) } @Test fun testDecrypt() { loadKeys() val textHex = "306f0221008d769703b894dbf832409e2497f87a52bd203d83e7d56616a95ff8597ee0b5fb022100befc69ee3141f53e94ddfa2155f1bd3289e5c7b6cdc828bd4b7fdd49f4360d0f04206300ec08d80eab55c7999fb5c114da7398d76d575bc20ddf881627497fd14aa404051136b536c6" val ciphertext = HexUtil.hexToByte(textHex) val plaintext = sm2Key.decrypt(ciphertext) val plaintextStr = String(plaintext) println(plaintextStr) } }
https://github.com/GmSSL/GmSSL-Java/blob/main/src/test/java/org/gmssl/Sm2Test.java
具体原因是因为 @beforeTest 每次都重新生成key
需要将key固化到磁盘,然后在其他的测试用例内加载,即可解决问题