doc: add example using algorithms not directly exposed
authorBrad Hill <hillbrad@gmail.com>
Thu, 7 Apr 2016 22:38:00 +0000 (15:38 -0700)
committerMyles Borins <mborins@us.ibm.com>
Mon, 11 Apr 2016 16:44:09 +0000 (12:44 -0400)
PR-URL: https://github.com/nodejs/node/pull/6108
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
doc/api/crypto.markdown

index d176a48..a8920ad 100644 (file)
@@ -719,6 +719,28 @@ console.log(sign.sign(private_key, 'hex'));
   // Prints the calculated signature
 ```
 
+A [`sign`][] instance can also be created by just passing in the digest
+algorithm name, in which case OpenSSL will infer the full signature algorithm
+from the type of the PEM-formatted private key, including algorithms that
+do not have directly exposed name constants, e.g. 'ecdsa-with-SHA256'.
+
+Example: signing using ECDSA with SHA256
+
+```js
+const crypto = require('crypto');
+const sign = crypto.createSign('sha256');
+
+sign.update('some data to sign');
+
+const private_key = '-----BEGIN EC PRIVATE KEY-----\n' +
+        'MHcCAQEEIF+jnWY1D5kbVYDNvxxo/Y+ku2uJPDwS0r/VuPZQrjjVoAoGCCqGSM49\n' +
+        'AwEHoUQDQgAEurOxfSxmqIRYzJVagdZfMMSjRNNhB8i3mXyIMq704m2m52FdfKZ2\n' +
+        'pQhByd5eyj3lgZ7m7jbchtdgyOF8Io/1ng==\n' +
+        '-----END EC PRIVATE KEY-----\n';
+
+console.log(sign.sign(private_key).toString('hex'));
+```
+
 ### sign.sign(private_key[, output_format])
 
 Calculates the signature on all the data passed through using either