# lowSrs

> **lowSrs**(`signature`): [`Uint8Array`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array)

Defined in: [derive.ts:206](https://github.com/FilOzone/synapse-sdk/blob/68e30a2a5457180e60a5579eb5ecff90b65894b3/packages/keysmith/src/derive.ts#L206)

Canonicalize signature:`r‖s` with `s` normalised to the low half, and `v` dropped.

Only a plain secp256k1 ECDSA signature is accepted. A contract account or
smart wallet answers `signTypedData` with an ABI-encoded blob whose leading
bytes are structure rather than secret; deriving from those would mint a
key an attacker could enumerate, so anything that is not 64 or 65 bytes with
`r, s ∈ [1, n−1]` is refused.

## Parameters

| Parameter | Type |
| ------ | ------ |
| `signature` | `` `0x${string}` `` |

## Returns

[`Uint8Array`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array)