{"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-10-22T14:43:23","modified_gmt":"2019-10-22T05:43:23","slug":"data-verification","status":"publish","type":"manual_documentation","link":"https:\/\/www.eformsign.com\/kr\/support\/documentation\/signature-generation-verification\/verify-signature\/data-verification\/","title":{"rendered":"2.2.2.4 \ub370\uc774\ud130 \uac80\uc99d"},"content":{"rendered":"\r\n<p>&#8211; request\ub85c \ub118\uc5b4\uc628 Header \uc640 payload \uac12\uc744 public key\ub85c \uac80\uc99d \ud569\ub2c8\ub2e4.<\/p>\r\n\r\n\r\n\r\n<h4>Example<\/h4>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>import java.security.KeyFactory;\r\nimport java.security.spec.X509EncodedKeySpec;\r\nimport java.security.PublicKey;\r\n  \r\n\/\/2.2.2.1 public key\r\nString publicKeyHexStr = \"\ubc1c\uae09 \ubc1b\uc740 public key(String)\";\r\nKeyFactory keyFact = KeyFactory.getInstance(\"EC\");\r\nX509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(new BigInteger(publicKeyHexStr,16).toByteArray());\r\nPublicKey publicKey = keyFact.generatePublic(x509KeySpec);\r\n \r\n\/\/2.2.2.2 header \ub370\uc774\ud130\r\nString eformsign_signature = request.getHeader(\"eformsign_signature\");\r\n \r\n\/\/2.2.2.3 payload \ub370\uc774\ud130\r\nStringBuffer jsonSB = new StringBuffer();\r\nString line = null;\r\ntry {\r\n        BufferedReader reader = request.getReader();\r\n        while((line = reader.readLine()) != null) {\r\n            jsonSB.append(line);\r\n        }\r\n   \r\n    }catch(Exception e) {\r\n        System.out.println(\"Error reading JSON string: \" + e.toString());\r\n    }\r\n  \r\n  \r\n\/\/{\"webhook_id\": \"3912875fd02bbfb1fc77ac1f7a16b23b\",\"webhook_name\": \"my webhook event\",\"company_id\": \"3912875fd02bbfb1fc77ac1f7a16b23b\"  \u2026 , \"update_date\": 1532658278638}}\r\nString responseDataJsonStr = jsonSB.toString();\r\n \r\n \r\n\/\/\uac80\uc99d\r\nSignature signature = Signature.getInstance(\"SHA256withECDSA\");\r\nsignature.initVerify(publicKey);\r\nsignature.update(responseDataJsonStr.getBytes(\"UTF-8\"));\r\nif(signature.verify(new BigInteger(eformsign_signature,16).toByteArray())){\r\n{\r\n    \/\/verify success\r\n     System.out.println(\"verify success\");\r\n}else{\r\n    \/\/verify fail\r\n     System.out.println(\"verify fail\");\r\n}<\/code><\/pre>\r\n","protected":false},"author":1,"featured_media":0,"parent":11917,"menu_order":0,"template":"","manualdocumentationcategory":[44],"_links":{"self":[{"href":"https:\/\/www.eformsign.com\/kr\/support\/wp-json\/wp\/v2\/manual_documentation\/11926"}],"collection":[{"href":"https:\/\/www.eformsign.com\/kr\/support\/wp-json\/wp\/v2\/manual_documentation"}],"about":[{"href":"https:\/\/www.eformsign.com\/kr\/support\/wp-json\/wp\/v2\/types\/manual_documentation"}],"author":[{"embeddable":true,"href":"https:\/\/www.eformsign.com\/kr\/support\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":1,"href":"https:\/\/www.eformsign.com\/kr\/support\/wp-json\/wp\/v2\/manual_documentation\/11926\/revisions"}],"predecessor-version":[{"id":11927,"href":"https:\/\/www.eformsign.com\/kr\/support\/wp-json\/wp\/v2\/manual_documentation\/11926\/revisions\/11927"}],"up":[{"embeddable":true,"href":"https:\/\/www.eformsign.com\/kr\/support\/wp-json\/wp\/v2\/manual_documentation\/11917"}],"wp:attachment":[{"href":"https:\/\/www.eformsign.com\/kr\/support\/wp-json\/wp\/v2\/media?parent=11926"}],"wp:term":[{"taxonomy":"manualdocumentationcategory","embeddable":true,"href":"https:\/\/www.eformsign.com\/kr\/support\/wp-json\/wp\/v2\/manualdocumentationcategory?post=11926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}