# Module: crypto/signature

Provides functions for asymmetric signing and signature verification

Source:
  - crypto/signature.js, line 1

### Methods

#### (async, static) parseSignatureParams(algo, signature) → {Promise.<Object>}

Parse signature in binary form to get the parameters. The returned values are only padded for EdDSA, since in the other cases their expected length depends on the key params, hence we delegate the padding to the signature verification function. See RFC 4880 9.1 See RFC 4880 5.2.2.

##### Parameters:

Name | Type | Description
--- | --- | ---
`algo` | module:enums.publicKey | Public key algorithm
`signature` | Uint8Array | Data for which the signature was created

Source:
  - crypto/signature.js, line 22

##### Returns:

True if signature is valid.

Type
  Promise.<Object>

#### (async, static) sign(algo, hashAlgo, publicKeyParams, privateKeyParams, data, hashed) → {Promise.<Object>}

Creates a signature on data using specified algorithms and private key parameters. See RFC 4880 9.1 and RFC 4880 9.4 for public key and hash algorithms.

##### Parameters:

Name | Type | Description
--- | --- | ---
`algo` | module:enums.publicKey | Public key algorithm
`hashAlgo` | module:enums.hash | Hash algorithm
`publicKeyParams` | Object | Algorithm-specific public and private key parameters
`privateKeyParams` | Object | Algorithm-specific public and private key parameters
`data` | Uint8Array | Data to be signed
`hashed` | Uint8Array | The hashed data

Source:
  - crypto/signature.js, line 138

##### Returns:

Signature Object containing named signature parameters.

Type
  Promise.<Object>

#### (async, static) verify(algo, hashAlgo, signature, publicParams, data, hashed) → {Promise.<Boolean>}

Verifies the signature provided for data using specified algorithms and public key parameters. See RFC 4880 9.1 and RFC 4880 9.4 for public key and hash algorithms.

##### Parameters:

Name | Type | Description
--- | --- | ---
`algo` | module:enums.publicKey | Public key algorithm
`hashAlgo` | module:enums.hash | Hash algorithm
`signature` | Object | Named algorithm-specific signature parameters
`publicParams` | Object | Algorithm-specific public key parameters
`data` | Uint8Array | Data for which the signature was created
`hashed` | Uint8Array | The hashed data

Source:
  - crypto/signature.js, line 87

##### Returns:

True if signature is valid.

Type
  Promise.<Boolean>