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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
//! Digital signature algorithms for authentication and non-repudiation.
//!
//! 用于认证和不可否认性的数字签名算法。
//!
//! ## Overview | 概述
//!
//! Digital signature algorithms provide authentication, data integrity, and non-repudiation
//! through public-key cryptography. A digital signature proves that a message was created
//! by the holder of a private key, without revealing the private key itself.
//!
//! 数字签名算法通过公钥密码学提供认证、数据完整性和不可否认性。
//! 数字签名证明消息是由私钥持有者创建的,而不会泄露私钥本身。
//!
//! ## Supported Algorithms | 支持的算法
//!
//! ### Traditional Algorithms | 传统算法
//!
//! #### Ed25519 (Edwards Curve Digital Signature Algorithm)
//! - **Security Level**: 128-bit
//! - **Key Size**: 32 bytes (public), 32 bytes (private)
//! - **Signature Size**: 64 bytes
//! - **Performance**: Very high
//! - **Features**: Deterministic, no hash function needed
//!
//! #### ECDSA P-256 (Elliptic Curve Digital Signature Algorithm)
//! - **Security Level**: 128-bit
//! - **Key Size**: 32 bytes (public), 32 bytes (private)
//! - **Signature Size**: ~64 bytes (variable)
//! - **Performance**: High
//! - **Standardization**: NIST FIPS 186-4, widely supported
//!
//! ### Post-Quantum Algorithms | 后量子算法
//!
//! #### Dilithium (Lattice-based signatures)
//! - **Type**: Post-quantum secure
//! - **Security**: Based on lattice problems
//! - **NIST Status**: Standardized (FIPS 204)
//! - **Variants**: Dilithium-2, Dilithium-3, Dilithium-5
//!
//! ## Algorithm Comparison | 算法对比
//!
//! | Algorithm | Security | Key Size | Signature Size | Performance | Quantum Safe |
//! |-----------|----------|----------|----------------|-------------|--------------|
//! | Ed25519 | 128-bit | 64 bytes | 64 bytes | Very High | No |
//! | ECDSA P-256| 128-bit | 64 bytes | ~64 bytes | High | No |
//! | Dilithium-2| 128-bit | ~2.5KB | ~2.4KB | Medium | Yes |
//! | Dilithium-3| 192-bit | ~4KB | ~3.3KB | Medium | Yes |
//! | Dilithium-5| 256-bit | ~4.9KB | ~4.6KB | Medium | Yes |
//!
//! ## Security Considerations | 安全考虑
//!
//! - **Private Key Protection**: Private keys must be kept absolutely secret
//! - **Randomness Quality**: Use high-quality random number generation
//! - **Hash Function**: Use appropriate hash functions for message digests
//! - **Signature Verification**: Always verify signatures before trusting data
//! - **Key Rotation**: Implement regular key rotation policies
//!
//! - **私钥保护**: 私钥必须绝对保密
//! - **随机性质量**: 使用高质量的随机数生成
//! - **哈希函数**: 为消息摘要使用适当的哈希函数
//! - **签名验证**: 在信任数据之前始终验证签名
//! - **密钥轮换**: 实施定期密钥轮换策略
use ;
/// Dilithium security level variants.
///
/// Dilithium 安全级别变体。
///
/// ## NIST Security Categories | NIST 安全类别
///
/// These correspond to NIST post-quantum cryptography security categories:
/// - Level 2: Equivalent to AES-128 (128-bit security)
/// - Level 3: Equivalent to AES-192 (192-bit security)
/// - Level 5: Equivalent to AES-256 (256-bit security)
///
/// 这些对应于 NIST 后量子密码学安全类别:
/// - 级别 2: 等同于 AES-128(128 位安全性)
/// - 级别 3: 等同于 AES-192(192 位安全性)
/// - 级别 5: 等同于 AES-256(256 位安全性)
/// Digital signature algorithm enumeration.
///
/// 数字签名算法枚举。
///
/// ## Algorithm Selection Guide | 算法选择指南
///
/// Choose based on your requirements:
///
/// 根据您的要求选择:
///
/// - **High Performance**: Ed25519
/// - **Standards Compliance**: ECDSA P-256
/// - **Post-Quantum Security**: Dilithium variants
/// - **Long-term Security**: Dilithium-5
/// - **Balanced Approach**: Dilithium-2
///
/// - **高性能**: Ed25519
/// - **标准合规性**: ECDSA P-256
/// - **后量子安全**: Dilithium 变体
/// - **长期安全**: Dilithium-5
/// - **平衡方法**: Dilithium-2
/// Builder for constructing signature algorithm instances.
///
/// 用于构建签名算法实例的构建器。
///
/// ## Usage Pattern | 使用模式
///
/// ```rust
/// use seal_crypto_wrapper::algorithms::asymmetric::signature::SignatureAlgorithm;
///
/// // Traditional algorithms
/// let ed25519 = SignatureAlgorithm::build().ed25519();
/// let ecdsa = SignatureAlgorithm::build().ecdsa_p256();
///
/// // Post-quantum algorithms
/// let dilithium2 = SignatureAlgorithm::build().dilithium2();
/// let dilithium3 = SignatureAlgorithm::build().dilithium3();
/// let dilithium5 = SignatureAlgorithm::build().dilithium5();
/// ```
///
/// ## Algorithm Selection Guidelines | 算法选择指南
///
/// Consider these factors when choosing:
/// - **Performance Requirements**: Ed25519 > ECDSA P-256 > Dilithium
/// - **Signature Size**: Ed25519 ≈ ECDSA P-256 << Dilithium
/// - **Quantum Resistance**: Only Dilithium provides quantum resistance
/// - **Standardization**: All algorithms are well-standardized
///
/// 选择时考虑这些因素:
/// - **性能要求**: Ed25519 > ECDSA P-256 > Dilithium
/// - **签名大小**: Ed25519 ≈ ECDSA P-256 << Dilithium
/// - **量子抗性**: 只有 Dilithium 提供量子抗性
/// - **标准化**: 所有算法都经过良好标准化
;
use crateSignatureAlgorithmWrapper;