mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
823d86c47c
This commit makes multiple important changes: 1. A new key object API is introduced. The KeyObject class itself is not exposed to users, instead, several new APIs can be used to construct key objects: createSecretKey, createPrivateKey and createPublicKey. The new API also allows to convert between different key formats, and even though the API itself is not compatible to the WebCrypto standard in any way, it makes interoperability much simpler. 2. Key objects can be used instead of the raw key material in all relevant crypto APIs. 3. The handling of asymmetric keys has been unified and greatly improved. Node.js now fully supports both PEM-encoded and DER-encoded public and private keys. 4. Conversions between buffers and strings have been moved to native code for sensitive data such as symmetric keys due to security considerations such as zeroing temporary buffers. 5. For compatibility with older versions of the crypto API, this change allows to specify Buffers and strings as the "passphrase" option when reading or writing an encoded key. Note that this can result in unexpected behavior if the password contains a null byte. PR-URL: https://github.com/nodejs/node/pull/24234 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> |
||
---|---|---|
.. | ||
addon-verify.js | ||
allhtml.js | ||
alljson.js | ||
apilinks.js | ||
common.js | ||
generate.js | ||
html.js | ||
json.js | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
README.md | ||
type-parser.js |
Here's how the node docs work.
1:1 relationship from lib/<module>.js
to doc/api/<module>.md
.
Each type of heading has a description block.
# module
<!--introduced_in=v0.10.0-->
> Stability: 2 - Stable
A description and examples.
## module.property
<!-- YAML
added: v0.10.0
-->
* {type}
A description of the property.
## module.someFunction(x, y, [z=100])
<!-- YAML
added: v0.10.0
-->
* `x` {string} The description of the string.
* `y` {boolean} Should I stay or should I go?
* `z` {number} How many zebras to bring. **Default:** `100`.
A description of the function.
## module.someNewFunction(x)
<!-- YAML
added: REPLACEME
-->
* `x` {string} The description of the string.
This feature is not in a release yet.
## Event: 'blerg'
<!-- YAML
added: v0.10.0
-->
* `anArg` {type} A description of the listener argument.
Modules don't usually raise events on themselves. `cluster` is the
only exception.
## Class: SomeClass
<!-- YAML
added: v0.10.0
-->
A description of the class.
### SomeClass.classMethod(anArg)
<!-- YAML
added: v0.10.0
-->
* `anArg` {Object} Just an argument.
* `field` {string} `anArg` can have this field.
* `field2` {boolean} Another field. **Default:** `false`.
* Returns: {boolean} `true` if it worked.
A description of the method for humans.
### SomeClass.nextSibling()
<!-- YAML
added: v0.10.0
-->
* Returns: {SomeClass | null} The next `SomeClass` in line.
`SomeClass` must be registered in `tools/doc/type-parser.js`
to be properly parsed in `{type}` fields.
### SomeClass.someProperty
<!-- YAML
added: v0.10.0
-->
* {string}
The indication of what `someProperty` is.
### Event: 'grelb'
<!-- YAML
added: v0.10.0
-->
* `isBlerg` {boolean}
This event is emitted on instances of `SomeClass`, not on the module itself.
- Classes have (description, Properties, Methods, Events).
- Events have (list of listener arguments, description).
- Functions have (list of arguments, returned value if defined, description).
- Methods have (list of arguments, returned value if defined, description).
- Modules have (description, Properties, Functions, Classes, Examples).
- Properties have (type, description).