1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//! The two backend traits. Bring your own signatures.
/// Produces a signature over arbitrary bytes.
///
/// The bytes handed to [`Signer::sign`] are already the pre-authentication
/// encoding; an implementation must sign them as given and must not re-encode,
/// hash-and-truncate, or otherwise reinterpret them.
/// Checks a signature over arbitrary bytes.
///
/// An implementation must be total: any input, including a signature of the
/// wrong length or a malformed encoding, yields `false` rather than a panic.