{"id":11928,"date":"2019-10-22T14:46:44","date_gmt":"2019-10-22T05:46:44","guid":{"rendered":"https:\/\/www.eformsign.com\/kr\/support\/?post_type=manual_documentation&#038;p=11928"},"modified":"2019-10-22T14:46:44","modified_gmt":"2019-10-22T05:46:44","slug":"sample-key","status":"publish","type":"manual_documentation","link":"https:\/\/www.eformsign.com\/kr\/support\/documentation\/signature-generation-verification\/sample-key\/","title":{"rendered":"2.2.3 \uac80\uc99d \ud14c\uc2a4\ud2b8\uc6a9 \uc0d8\ud50c \ud0a4"},"content":{"rendered":"\r\n<p>\uc544\ub798\uc758 \ud0a4\ub85c \uc11c\uba85 \ubc0f \uac80\uc99d \ud14c\uc2a4\ud2b8\ub97c \ud574\ubcf4\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>String privateKeyHex = \"3041020100301306072a8648ce3d020106082a8648ce3d0301070427302502010104207eae51d5e4272ebb3fe2701d25026a8c2850965981fb2efa68c8db48b32ede07\";\r\nString publicKeyHex = \"3059301306072a8648ce3d020106082a8648ce3d030107034200045ac8a472cee38601e99b2a2d731c958e738eee1ee6aca28f6f5637f231e9a8444f3cb80d9ce6c5bace1d0e71167673ff81743e0ea811ebd999f2f314f1d0a676\";     \/\/private key      \r\nKeyFactory privateKeyFact = KeyFactory.getInstance(\"EC\");\r\nPKCS8EncodedKeySpec psks8KeySpec = new PKCS8EncodedKeySpec(new BigInteger(privateKeyHex,16).toByteArray());\r\nPrivateKey privateKey = privateKeyFact.generatePrivate(psks8KeySpec);\r\n \r\n\/\/signature\r\nString testData = \"{\\\"test\\\":\\\"signature test\\\"}\";\r\nSignature ecdsa = Signature.getInstance(\"SHA256withECDSA\");\r\necdsa.initSign(privateKey);\r\necdsa.update(testData.getBytes(\"UTF-8\"));\r\nString eformsign_signature = new BigInteger(ecdsa.sign()).toString(16);\r\nSystem.out.println(\"data : \"+testData);\r\nSystem.out.println(\"eformsign_signature : \"+eformsign_signature);\r\n \r\n\/\/public key\r\nKeyFactory publicKeyFact = KeyFactory.getInstance(\"EC\");\r\nX509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(new BigInteger(publicKeyHex,16).toByteArray());\r\nPublicKey publicKey = publicKeyFact.generatePublic(x509KeySpec);\r\n \r\n \r\n\/\/verify\r\nSignature signature = Signature.getInstance(\"SHA256withECDSA\");\r\nsignature.initVerify(publicKey);\r\nsignature.update(testData.getBytes(\"UTF-8\"));\r\nif(signature.verify(new BigInteger(eformsign_signature,16).toByteArray())){\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":11907,"menu_order":0,"template":"","manualdocumentationcategory":[44],"_links":{"self":[{"href":"https:\/\/www.eformsign.com\/kr\/support\/wp-json\/wp\/v2\/manual_documentation\/11928"}],"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\/11928\/revisions"}],"predecessor-version":[{"id":11929,"href":"https:\/\/www.eformsign.com\/kr\/support\/wp-json\/wp\/v2\/manual_documentation\/11928\/revisions\/11929"}],"up":[{"embeddable":true,"href":"https:\/\/www.eformsign.com\/kr\/support\/wp-json\/wp\/v2\/manual_documentation\/11907"}],"wp:attachment":[{"href":"https:\/\/www.eformsign.com\/kr\/support\/wp-json\/wp\/v2\/media?parent=11928"}],"wp:term":[{"taxonomy":"manualdocumentationcategory","embeddable":true,"href":"https:\/\/www.eformsign.com\/kr\/support\/wp-json\/wp\/v2\/manualdocumentationcategory?post=11928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}