# Module: crypto/public_key/dsa

A Digital signature algorithm implementation

Source:
  - crypto/public_key/dsa.js, line 18

### Members

#### (inner) x

Re-derive public key y' = g ** x mod p Expect y == y'

Blinded exponentiation computes g**{rq + x} to compare to y

Source:
  - crypto/public_key/dsa.js, line 190

### Methods

#### (async, static) sign(hashAlgo, hashed, g, p, q, x) → {Promise.<{r: Uint8Array, s: Uint8Array}>}

DSA Sign function

##### Parameters:

Name | Type | Description
--- | --- | ---
`hashAlgo` | Integer |
`hashed` | Uint8Array |
`g` | Uint8Array |
`p` | Uint8Array |
`q` | Uint8Array |
`x` | Uint8Array |

Source:
  - crypto/public_key/dsa.js, line 43

##### Returns:

Type
  Promise.<{r: Uint8Array, s: Uint8Array}>

#### (async, static) validateParams(p, q, g, y, x) → {Promise.<Boolean>}

Validate DSA parameters

##### Parameters:

Name | Type | Description
--- | --- | ---
`p` | Uint8Array | DSA prime
`q` | Uint8Array | DSA group order
`g` | Uint8Array | DSA sub-group generator
`y` | Uint8Array | DSA public key
`x` | Uint8Array | DSA private key

Source:
  - crypto/public_key/dsa.js, line 147

##### Returns:

Whether params are valid.

Type
  Promise.<Boolean>

#### (async, static) verify(hashAlgo, r, s, hashed, g, p, q, y) → {boolean}

DSA Verify function

##### Parameters:

Name | Type | Description
--- | --- | ---
`hashAlgo` | Integer |
`r` | Uint8Array |
`s` | Uint8Array |
`hashed` | Uint8Array |
`g` | Uint8Array |
`p` | Uint8Array |
`q` | Uint8Array |
`y` | Uint8Array |

Source:
  - crypto/public_key/dsa.js, line 103

##### Returns:

Type
  boolean