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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
//! # LibSlug: Digital Signatures
//!
//! This module contains all the provided digital signature schemes. A digital signature is a cryptographic signature generated using a secret key, producing a signature that can be verified by the public key of the signer's.
//!
//! The following are provided:
//!
//! - [X] ED25519
//!
//! - [X] Schnorr over Ristreto
//!
//! - [X] ECDSA (Secp256k1)
//!
//! - [X] ED448
//!
//! - [X] BLS12-381
//!
//! - [X] FALCON1024
//!
//! - [X] ML-DSA (Dilithium65)
//!
//! - [X] SPHINCS+ (SHAKE256) (Level 5)
//!
//! - [ ] Lamport Signatures
//!
//! - [ ] Winternitz One-Time Signatures (WOTS)
//!
//! ## Signature Suites
//!
//! - 0x00: ShulginSigning (Hybrid),
//! - 0x01: EsphandSigning (Hybrid),
//! - 0x02: AbsolveSigning (Hybrid),
//! - 0x03: ED25519 (EdDSA)
//! - 0x04: ED448
//! - 0x05: Secp256k1 (ECDSA)
//! - 0x06: Schnorr over Ristretto
//! - 0x07: BLS12-381
//! - 0x08: Falcon1024
//! - 0x09: SPHINCS+ (SHAKE256)
//! - 0x0A: ML-DSA3 (Dilithium65)
//!
//! ### 0x00: ShulginSigning: A Hybrid SPHINCS+ (SHAKE256) and ED25519 Signing Scheme
//!
//! #### Features
//!
//! - [X] Functionality
//! - [X] Generating
//! - [X] Signing
//! - [X] Verifying
//!
//! - [X] Encodings
//! - [X] IntoEncoding
//! - [X] FromEncoding
//! - [X] X59
//! - [X] IntoX59
//! - [X] FromX59
//! - [X] PEM
//! - [X] IntoPem
//! - [X] FromPem
//!
//! ## TODO
//!
//! - [ ] Refactor Hybrid Signatures
//! - [ ] ShulginSigning
//! - [ ] EsphandSigning
//! - [ ] AbsolveSigning
//! - [ ] X59-fmt standard
/// SPHINCS+ (SHAKE256) (255bit security) (smaller signature version)
/// ED25519 Signature
/// Schnorr Digital Signature
/// ECDSA
/// FALCON1024
/// MLDSA65
/// ED448 Implementation
/// ShulginSigning (SPHINCS+ & ED25519)
/// EsphandSigning (FALCON1024 & ED25519)
/// AbsolveSigning
/// One-Time Signatures (Lamport Signatures, Winternitz-OTS)