crypto.sign(algorithm, data, key[, callback])
algorithm
<string> | <null> | <undefined>data
<ArrayBuffer> | <Buffer> | <TypedArray> | <DataView>key
<Object> | <string> | <ArrayBuffer> | <Buffer> | <TypedArray> | <DataView> | <KeyObject> | <CryptoKey>callback
<Function>- 返回: <Buffer> 如果未提供
callback
函数。
使用给定的私钥和算法计算并返回 data
的签名。
如果 algorithm
是 null
或 undefined
,则算法取决于密钥类型(尤其是 Ed25519 和 Ed448)。
如果 key
不是 KeyObject
,则此函数的行为就像将 key
传给 crypto.createPrivateKey()
一样。
如果是对象,则可以传入以下额外属性:
-
dsaEncoding
<string> 对于 DSA 和 ECDSA,此选项指定生成签名的格式。 它可以是以下之一:'der'
(默认):DER 编码的 ASN.1 签名结构编码(r, s)
。'ieee-p1363'
: IEEE-P1363 中提议的签名格式r || s
。
-
padding
<integer> RSA 的可选填充值,以下之一:crypto.constants.RSA_PKCS1_PADDING
(默认)crypto.constants.RSA_PKCS1_PSS_PADDING
RSA_PKCS1_PSS_PADDING
将使用 MGF1 与用于签署消息的相同散列函数,如 RFC 4055 的第 3.1 节中指定的那样。 -
saltLength
<integer> 填充为RSA_PKCS1_PSS_PADDING
时的盐长度。 特殊值crypto.constants.RSA_PSS_SALTLEN_DIGEST
将盐长度设置为摘要大小,crypto.constants.RSA_PSS_SALTLEN_MAX_SIGN
(默认值)将其设置为最大允许值。
如果提供了 callback
函数,则该函数使用 libuv 的线程池。
algorithm
<string> | <null> | <undefined>data
<ArrayBuffer> | <Buffer> | <TypedArray> | <DataView>key
<Object> | <string> | <ArrayBuffer> | <Buffer> | <TypedArray> | <DataView> | <KeyObject> | <CryptoKey>callback
<Function>- Returns: <Buffer> if the
callback
function is not provided.
Calculates and returns the signature for data
using the given private key and
algorithm. If algorithm
is null
or undefined
, then the algorithm is
dependent upon the key type (especially Ed25519 and Ed448).
If key
is not a KeyObject
, this function behaves as if key
had been
passed to crypto.createPrivateKey()
. If it is an object, the following
additional properties can be passed:
-
dsaEncoding
<string> For DSA and ECDSA, this option specifies the format of the generated signature. It can be one of the following:'der'
(default): DER-encoded ASN.1 signature structure encoding(r, s)
.'ieee-p1363'
: Signature formatr || s
as proposed in IEEE-P1363.
-
padding
<integer> Optional padding value for RSA, one of the following:crypto.constants.RSA_PKCS1_PADDING
(default)crypto.constants.RSA_PKCS1_PSS_PADDING
RSA_PKCS1_PSS_PADDING
will use MGF1 with the same hash function used to sign the message as specified in section 3.1 of RFC 4055. -
saltLength
<integer> Salt length for when padding isRSA_PKCS1_PSS_PADDING
. The special valuecrypto.constants.RSA_PSS_SALTLEN_DIGEST
sets the salt length to the digest size,crypto.constants.RSA_PSS_SALTLEN_MAX_SIGN
(default) sets it to the maximum permissible value.
If the callback
function is provided this function uses libuv's threadpool.