{"id":11915,"date":"2019-10-22T14:04:34","date_gmt":"2019-10-22T05:04:34","guid":{"rendered":"https:\/\/www.eformsign.com\/kr\/support\/?post_type=manual_documentation&#038;p=11915"},"modified":"2019-11-27T09:55:31","modified_gmt":"2019-11-27T00:55:31","slug":"execution-time-signature","status":"publish","type":"manual_documentation","link":"https:\/\/www.eformsign.com\/en\/support\/documentation\/signature-generation-verification\/generate-signature\/execution-time-signature\/","title":{"rendered":"2.2.1.3 execution_time signature"},"content":{"rendered":"\n<p>&#8211; Converts the server time (from <a href=\"https:\/\/www.eformsign.com\/en\/support\/documentation\/signature-generation-verification\/generate-signature\/execution-time\/\">2.2.1.2<\/a>) to String (UTF-8), signs with the private key from <a href=\"https:\/\/www.eformsign.com\/en\/support\/documentation\/signature-generation-verification\/generate-signature\/convert-private-key\/\">2.2.1.1<\/a> then converts the signature to hex string (SHA256 with ECDSA used for the signature algorithm)<\/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.PKCS8EncodedKeySpec;\nimport java.security.PrivateKey;\nimport java.security.Signature;\n \n\/\/2.2.1.1 private key\nString privateKeyHexStr = \"Generated private key(String)\";\nKeyFactory keyFact = KeyFactory.getInstance(\"EC\");\nPKCS8EncodedKeySpec psks8KeySpec = new PKCS8EncodedKeySpec(new BigInteger(privateKeyHexStr,16).toByteArray());\nPrivateKey privateKey = keyFact.generatePrivate(psks8KeySpec);\n \n\/\/2.2.1.2 execution_time\nlong execution_time = new Date().getTime();\n \nString execution_time_str = String.valueOf(execution_time);\nSignature ecdsa = Signature.getInstance(\"SHA256withECDSA\");\necdsa.initSign(privateKey);\necdsa.update(execution_time_str.getBytes(\"UTF-8\"));\nString eformsign_signature = new BigInteger(ecdsa.sign()).toString(16);<\/code><\/pre>\n","protected":false},"author":1,"featured_media":0,"parent":11909,"menu_order":0,"template":"","manualdocumentationcategory":[44],"_links":{"self":[{"href":"https:\/\/www.eformsign.com\/en\/support\/wp-json\/wp\/v2\/manual_documentation\/11915"}],"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\/11915\/revisions"}],"predecessor-version":[{"id":12709,"href":"https:\/\/www.eformsign.com\/en\/support\/wp-json\/wp\/v2\/manual_documentation\/11915\/revisions\/12709"}],"up":[{"embeddable":true,"href":"https:\/\/www.eformsign.com\/en\/support\/wp-json\/wp\/v2\/manual_documentation\/11909"}],"wp:attachment":[{"href":"https:\/\/www.eformsign.com\/en\/support\/wp-json\/wp\/v2\/media?parent=11915"}],"wp:term":[{"taxonomy":"manualdocumentationcategory","embeddable":true,"href":"https:\/\/www.eformsign.com\/en\/support\/wp-json\/wp\/v2\/manualdocumentationcategory?post=11915"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}