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
//! Asymmetric cryptography algorithms and key management.
//!
//! 非对称密码算法和密钥管理。
//!
//! ## Overview | 概述
//!
//! This module provides asymmetric (public-key) cryptographic algorithms that enable
//! secure communication without prior key exchange. It includes both traditional
//! algorithms and post-quantum cryptography for future security.
//!
//! 此模块提供非对称(公钥)密码算法,无需事先密钥交换即可实现安全通信。
//! 它包括传统算法和后量子密码学以确保未来安全。
//!
//! ## Algorithm Categories | 算法分类
//!
//! ### Key Encapsulation Mechanisms (KEM) | 密钥封装机制
//! - **RSA**: Traditional public-key cryptosystem
//! - **Kyber**: Post-quantum lattice-based KEM (NIST standard)
//!
//! ### Digital Signatures | 数字签名
//! - **Ed25519**: Edwards curve signatures (high performance)
//! - **ECDSA P-256**: NIST standard elliptic curve signatures
//! - **Dilithium**: Post-quantum lattice-based signatures (NIST standard)
//!
//! ### Key Agreement | 密钥协商
//! - **ECDH P-256**: Elliptic Curve Diffie-Hellman
//!
//! ## Security Considerations | 安全考虑
//!
//! ### Traditional vs Post-Quantum | 传统 vs 后量子
//!
//! - **Traditional algorithms** (RSA, ECDSA, ECDH): Secure against classical computers
//! - **Post-quantum algorithms** (Kyber, Dilithium): Secure against quantum computers
//!
//! - **传统算法**(RSA、ECDSA、ECDH):对经典计算机安全
//! - **后量子算法**(Kyber、Dilithium):对量子计算机安全
//!
//! ### Migration Strategy | 迁移策略
//!
//! For long-term security, consider hybrid approaches or gradual migration to
//! post-quantum algorithms as they become more widely adopted.
//!
//! 为了长期安全,考虑混合方法或随着后量子算法更广泛采用而逐步迁移。
// Digital signature algorithms | 数字签名算法
// Key encapsulation mechanisms | 密钥封装机制
// Key agreement protocols | 密钥协商协议
use KemAlgorithm;
use SignatureAlgorithm;
/// Asymmetric cryptography algorithm enumeration.
///
/// 非对称密码算法枚举。
///
/// ## Purpose | 目的
///
/// This enum serves as a unified interface for all asymmetric cryptographic
/// operations, allowing runtime algorithm selection while maintaining type safety.
///
/// 此枚举作为所有非对称密码操作的统一接口,
/// 允许运行时算法选择同时保持类型安全。
///
/// ## Usage Pattern | 使用模式
///
/// ```rust
/// use seal_crypto_wrapper::algorithms::asymmetric::AsymmetricAlgorithm;
///
/// // Key encapsulation
/// let kem = AsymmetricAlgorithm::build().kem().kyber512();
///
/// // Digital signatures
/// let sig = AsymmetricAlgorithm::build().signature().ed25519();
///
/// // Key agreement
/// let ka = AsymmetricAlgorithm::build().key_agreement().ecdh_p256();
/// ```
/// Builder for constructing asymmetric algorithm instances.
///
/// 用于构建非对称算法实例的构建器。
///
/// ## Design Pattern | 设计模式
///
/// This builder follows a fluent interface pattern, allowing method chaining
/// to construct the desired algorithm configuration. Each method returns a
/// specialized builder for that algorithm category.
///
/// 此构建器遵循流畅接口模式,允许方法链接来构建所需的算法配置。
/// 每个方法都返回该算法类别的专用构建器。
///
/// ## Algorithm Selection Guide | 算法选择指南
///
/// - **KEM**: For secure key establishment and hybrid encryption
/// - **Signatures**: For authentication and non-repudiation
/// - **Key Agreement**: For establishing shared secrets
///
/// - **KEM**: 用于安全密钥建立和混合加密
/// - **签名**: 用于认证和不可否认性
/// - **密钥协商**: 用于建立共享密钥
;