Skip to main content

encryption/asymmetric/
mod.rs

1// Copyright (c) 2026 erik <erik@erik.xyz> — https://erik.xyz
2
3//! 非对称实现:RSA-OAEP 加密,以及 ECDSA / Ed25519 签名与 ECDH / X25519 密钥协商。
4//!
5//! - [`rsa`]:RSA-OAEP(SHA-256,RFC 8017),实现 [`crate::contract::AsymmetricCipher`];
6//! - [`ecdsa`]:ECDSA P-256(SHA-256)/ P-384(SHA-384)/ secp256k1(SHA-256),
7//!   实现 [`crate::contract::Signer`];
8//! - [`ed25519`]:Ed25519(RFC 8032),实现 [`crate::contract::Signer`];
9//! - [`ecdh`]:P-256 / P-384 / secp256k1 的静态 ECDH,实现 [`crate::contract::KeyAgreement`];
10//! - [`x25519`]:X25519(RFC 7748),实现 [`crate::contract::KeyAgreement`]。
11//!
12//! 各模块的十六进制长度约定见模块文档;密钥生成一律使用系统 CSPRNG。
13
14pub mod ecdh;
15pub mod ecdsa;
16pub mod ed25519;
17pub mod rsa;
18pub mod x25519;
19
20pub use rsa::{RsaOaepSha256Cipher, RsaOaepSha256Service};
21
22/// 非对称密钥对(十六进制):私钥与公钥的具体格式随算法(见各模块文档)。
23#[derive(Debug, Clone, PartialEq, Eq)]
24pub struct KeyPairHex {
25    pub private_key_hex: String,
26    pub public_key_hex: String,
27}