{"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":"2019-11-27T10:01:55","modified_gmt":"2019-11-27T01:01:55","slug":"data-verification","status":"publish","type":"manual_documentation","link":"https:\/\/www.eformsign.com\/en\/support\/documentation\/signature-generation-verification\/verify-signature\/data-verification\/","title":{"rendered":"2.2.2.4 Data verification"},"content":{"rendered":"\n<p>&#8211; Verify the header and payload data received by the request with the public key.<\/p>\n\n\n\n<h4>Example<\/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 = \"Generated public 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 data\nString eformsign_signature = request.getHeader(\"eformsign_signature\");\n \n\/\/2.2.2.3 payload data\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\/\/Verification\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":1,"featured_media":0,"parent":11917,"menu_order":0,"template":"","manualdocumentationcategory":[44],"_links":{"self":[{"href":"https:\/\/www.eformsign.com\/en\/support\/wp-json\/wp\/v2\/manual_documentation\/11926"}],"collection":[{"href":"https:\/\/www.eformsign.com\/en\/support\/wp-json\/wp\/v2\/manual_documentation"}],"about":[{"href":"https:\/\/www.eformsign.com\/en\/support\/wp-json\/wp\/v2\/types\/manual_documentation"}],"author":[{"embeddable":true,"href":"https:\/\/www.eformsign.com\/en\/support\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":1,"href":"https:\/\/www.eformsign.com\/en\/support\/wp-json\/wp\/v2\/manual_documentation\/11926\/revisions"}],"predecessor-version":[{"id":12714,"href":"https:\/\/www.eformsign.com\/en\/support\/wp-json\/wp\/v2\/manual_documentation\/11926\/revisions\/12714"}],"up":[{"embeddable":true,"href":"https:\/\/www.eformsign.com\/en\/support\/wp-json\/wp\/v2\/manual_documentation\/11917"}],"wp:attachment":[{"href":"https:\/\/www.eformsign.com\/en\/support\/wp-json\/wp\/v2\/media?parent=11926"}],"wp:term":[{"taxonomy":"manualdocumentationcategory","embeddable":true,"href":"https:\/\/www.eformsign.com\/en\/support\/wp-json\/wp\/v2\/manualdocumentationcategory?post=11926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}