@GetMapping(value = "testVerifySign")
public JSONObject testVerifySign() {
JSONObject result = new JSONObject();
String public_key = "MIIERjCCA+mgAwIBAgIQeM8fcm+cS7mZ8PGxIG1R+jAMBggqgRzPVQGDdQUAMDQxCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDESMBAGA1UEAwwJU0hFQ0EgU00yMB4XDTIzMDkyODA1MzcyMloXDTI0MDkyODE1NTk1OVowezELMAkGA1UEBhMCQ04xEjAQBgNVBAgMCeS4iua1t+W4gjEhMB8GA1UECgwY5LiK5rW35biC5aSn5pWw5o2u5Lit5b+DMSQwIgYDVQQLDBvluILlpKfmlbDmja7kuK3lv4PkuozkuK3lv4MxDzANBgNVBAMMBumCteiKszBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IABCQQNyI7DE4nBSnt4/LDSpMs3gC4leDtO9d96DSv0C0eSYvBhnpRj34ETCKS9SVigAC76PJ/4C2mFSZ0t9/ULHyjggKSMIICjjATBgNVHSUEDDAKBggrBgEFBQcDAjCBjQYIKwYBBQUHAQEEgYAwfjA9BggrBgEFBQcwAYYxaHR0cDovL29jc3Auc2hjYS5zaC5jZWduLmNuL29jc3Avc2hlY2Evc2hlY2Eub2NzcDA9BggrBgEFBQcwAoYxaHR0cDovL2xkYXAyLnNoY2Euc2guY2Vnbi5jbi9yb290L3NoZWNhc20yc3ViLmRlcjAfBgNVHSMEGDAWgBSJMQSRe0Oqqpq/hB2bhu7wuHCZoDAdBgNVHQ4EFgQUoTnUdu06aQhizkrtr+A4wKNGIsIwCwYDVR0PBAQDAgbAMCAGCCqBHIbvOgxoBBQTEjM0MCoqKioqKioqKioqMjQyMDAJBgNVHRMEAjAAMEIGA1UdIAQ7MDkwNwYJKoEcAYbvOoEVMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly93d3cuc2hlY2EuY29tL3BvbGljeS8wOgYIKoEchu86DGkELhMsQWVNdGJSQ2lyTGZ1ZFo3U1cyOHd4L29oNWJWSEdLSXpsSmx2eTEySkhoND0wgewGA1UdHwSB5DCB4TCBn6CBnKCBmYaBlmxkYXA6Ly9sZGFwMi5zaGNhLnNoLmNlZ24uY246Mzg5L2NuPUNSTDExMS5jcmwsb3U9UkEyMDE1MDUxOSxvdT1DQTkxLG91PWNybCxvPVVuaVRydXN0P2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludDA9oDugOYY3aHR0cDovL2xkYXAyLnNoY2Euc2guY2Vnbi5jbi9DQTkxL1JBMjAxNTA1MTkvQ1JMMTExLmNybDAMBggqgRzPVQGDdQUAA0kAMEYCIQC0sJ7JgrVFz72+f9az3/uaA+WfwHQYRXfWKkBRWgBfHAIhAJ0qOtZSy25obkCTKLFGF218wrjTuUJoRikg42s/8FRY";
String sign = "MEUCIQCpJ4s7hqeVMeI66zBStqZCJZ+HrMBd0CmCuNa2FSh/EwIgEeTY8V/pO5E3NtIXBceNi/aZ6CUn5NHlk1WqR26nPLM=";
//String data = "hello";
String a = get("a", "SM3WithSM2");
String data = get("data", "hello");
String res = "fail";
FileInputStream fin = null;
try {
fin = new FileInputStream("/opt/java/sign.cer");
//fin = new FileInputStream("c:/sign.cer");
CertificateFactory f = null;
try {
try {
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
f = CertificateFactory.getInstance("X.509", "BC");
X509Certificate certificate = (X509Certificate) f.generateCertificate(fin);
PublicKey pk = certificate.getPublicKey();
//res = pk.getAlgorithm();
try {
if(EncryptService.verifyUkey(pk,a,data.getBytes(),sign.getBytes())){
res = "ok";
}
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
} catch (NoSuchProviderException e) {
throw new RuntimeException(e);
} catch (InvalidKeyException e) {
throw new RuntimeException(e);
} catch (SignatureException e) {
throw new RuntimeException(e);
}
} catch (NoSuchProviderException e) {
throw new RuntimeException(e);
}
//
} catch (CertificateException e) {
throw new RuntimeException(e);
}
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
result.put("code", 0);
result.put("res", res);
return result;
}