{"id":11926,"date":"2019-10-22T14:43:23","date_gmt":"2019-10-22T05:43:23","guid":{"rendered":"https:\/\/www.eformsign.com\/kr\/support\/?post_type=manual_documentation&#038;p=11926"},"modified":"2020-12-15T13:41:35","modified_gmt":"2020-12-15T04:41:35","slug":"data-verification","status":"publish","type":"manual_documentation","link":"https:\/\/www.eformsign.com\/jp\/support\/documentation\/signature-generation-verification\/verify-signature\/data-verification\/","title":{"rendered":"2.2.2.4 \u30c7\u30fc\u30bf\u306e\u691c\u8a3c"},"content":{"rendered":"\n<p>&#8211; request \u306b\u6e21\u3055\u308c\u305f Header \u3068 payload \u306e\u5024\u3092\u516c\u958b\u9375\u3067\u691c\u8a3c\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4>\u4f8b\u984c<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.security.KeyFactory;\nimport java.security.spec.X509EncodedKeySpec;\nimport java.security.PublicKey;\n  \n\/\/2.2.2.1 public key\nString publicKeyHexStr = \"\u767a\u884c\u3057\u305fpublic key(String)\";\nKeyFactory keyFact = KeyFactory.getInstance(\"EC\");\nX509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(new BigInteger(publicKeyHexStr,16).toByteArray());\nPublicKey publicKey = keyFact.generatePublic(x509KeySpec);\n \n\/\/2.2.2.2 header\u30c7\u30fc\u30bf\nString eformsign_signature = request.getHeader(\"eformsign_signature\");\n \n\/\/2.2.2.3 payload\u30c7\u30fc\u30bf\nStringBuffer jsonSB = new StringBuffer();\nString line = null;\ntry {\n        BufferedReader reader = request.getReader();\n        while((line = reader.readLine()) != null) {\n            jsonSB.append(line);\n        }\n   \n    }catch(Exception e) {\n        System.out.println(\"Error reading JSON string: \" + e.toString());\n    }\n  \n  \n\/\/{\"webhook_id\": \"3912875fd02bbfb1fc77ac1f7a16b23b\",\"webhook_name\": \"my webhook event\",\"company_id\": \"3912875fd02bbfb1fc77ac1f7a16b23b\"  \u2026 , \"update_date\": 1532658278638}}\nString responseDataJsonStr = jsonSB.toString();\n \n \n\/\/\u691c\u8a3c\nSignature signature = Signature.getInstance(\"SHA256withECDSA\");\nsignature.initVerify(publicKey);\nsignature.update(responseDataJsonStr.getBytes(\"UTF-8\"));\nif(signature.verify(new BigInteger(eformsign_signature,16).toByteArray())){\n{\n    \/\/verify success\n     System.out.println(\"verify success\");\n}else{\n    \/\/verify fail\n     System.out.println(\"verify fail\");\n}<\/code><\/pre>\n","protected":false},"author":5,"featured_media":0,"parent":11917,"menu_order":0,"template":"","manualdocumentationcategory":[16],"_links":{"self":[{"href":"https:\/\/www.eformsign.com\/jp\/support\/wp-json\/wp\/v2\/manual_documentation\/11926"}],"collection":[{"href":"https:\/\/www.eformsign.com\/jp\/support\/wp-json\/wp\/v2\/manual_documentation"}],"about":[{"href":"https:\/\/www.eformsign.com\/jp\/support\/wp-json\/wp\/v2\/types\/manual_documentation"}],"author":[{"embeddable":true,"href":"https:\/\/www.eformsign.com\/jp\/support\/wp-json\/wp\/v2\/users\/5"}],"version-history":[{"count":2,"href":"https:\/\/www.eformsign.com\/jp\/support\/wp-json\/wp\/v2\/manual_documentation\/11926\/revisions"}],"predecessor-version":[{"id":18366,"href":"https:\/\/www.eformsign.com\/jp\/support\/wp-json\/wp\/v2\/manual_documentation\/11926\/revisions\/18366"}],"up":[{"embeddable":true,"href":"https:\/\/www.eformsign.com\/jp\/support\/wp-json\/wp\/v2\/manual_documentation\/11917"}],"wp:attachment":[{"href":"https:\/\/www.eformsign.com\/jp\/support\/wp-json\/wp\/v2\/media?parent=11926"}],"wp:term":[{"taxonomy":"manualdocumentationcategory","embeddable":true,"href":"https:\/\/www.eformsign.com\/jp\/support\/wp-json\/wp\/v2\/manualdocumentationcategory?post=11926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}