GeezerVison is showing github.com — doc: add example using algorithms not directly exposed · nodejs/node@440d117
File tree
Expand file treeCollapse file tree
Open diff view settings
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboardExpand all lines: doc/api/crypto.markdown +22Lines changed: 22 additions & 0 deletions - Display the source diff
- Display the rich diff
| Original file line number | Diff line number | Diff line change |
|---|
@@ -719,6 +719,28 @@ console.log(sign.sign(private_key, 'hex')); |
719 | 719 | // Prints the calculated signature |
720 | 720 | ``` |
721 | 721 |
|
| 722 | +A [`sign`][] instance can also be created by just passing in the digest |
| 723 | +algorithm name, in which case OpenSSL will infer the full signature algorithm |
| 724 | +from the type of the PEM-formatted private key, including algorithms that |
| 725 | +do not have directly exposed name constants, e.g. 'ecdsa-with-SHA256'. |
| 726 | + |
| 727 | +Example: signing using ECDSA with SHA256 |
| 728 | + |
| 729 | +```js |
| 730 | +const crypto = require('crypto'); |
| 731 | +const sign = crypto.createSign('sha256'); |
| 732 | + |
| 733 | +sign.update('some data to sign'); |
| 734 | + |
| 735 | +const private_key = '-----BEGIN EC PRIVATE KEY-----\n' + |
| 736 | + 'MHcCAQEEIF+jnWY1D5kbVYDNvxxo/Y+ku2uJPDwS0r/VuPZQrjjVoAoGCCqGSM49\n' + |
| 737 | + 'AwEHoUQDQgAEurOxfSxmqIRYzJVagdZfMMSjRNNhB8i3mXyIMq704m2m52FdfKZ2\n' + |
| 738 | + 'pQhByd5eyj3lgZ7m7jbchtdgyOF8Io/1ng==\n' + |
| 739 | + '-----END EC PRIVATE KEY-----\n'; |
| 740 | + |
| 741 | +console.log(sign.sign(private_key).toString('hex')); |
| 742 | +``` |
| 743 | + |
722 | 744 | ### sign.sign(private_key[, output_format]) |
723 | 745 |
|
724 | 746 | Calculates the signature on all the data passed through using either |
|