[mio] 简化feature

This commit is contained in:
lubeilin
2024-02-29 22:12:40 +08:00
parent af5d284470
commit b57cd2ed45
2 changed files with 15 additions and 33 deletions
+4 -1
View File
@@ -21,7 +21,7 @@ mod openssl_aes_ecb;
#[cfg(any(feature = "aes_gcm", feature = "server_encrypt"))] #[cfg(any(feature = "aes_gcm", feature = "server_encrypt"))]
#[cfg(feature = "ring-cipher")] #[cfg(feature = "ring-cipher")]
mod ring_aes_gcm_cipher; mod ring_aes_gcm_cipher;
mod rsa_cipher;
#[cfg(feature = "sm4_cbc")] #[cfg(feature = "sm4_cbc")]
mod sm4_cbc; mod sm4_cbc;
pub use cipher::Cipher; pub use cipher::Cipher;
@@ -34,4 +34,7 @@ pub use cipher::CipherModel;
feature = "sm4_cbc" feature = "sm4_cbc"
))] ))]
pub use finger::Finger; pub use finger::Finger;
#[cfg(feature = "server_encrypt")]
mod rsa_cipher;
#[cfg(feature = "server_encrypt")]
pub use rsa_cipher::RsaCipher; pub use rsa_cipher::RsaCipher;
+11 -32
View File
@@ -1,32 +1,24 @@
use crate::protocol::NetPacket; use crate::protocol::NetPacket;
use std::io; use std::io;
use {
#[cfg(feature = "server_encrypt")] crate::protocol::body::{RsaSecretBody, RSA_ENCRYPTION_RESERVED},
use crate::protocol::body::{RsaSecretBody, RSA_ENCRYPTION_RESERVED}; rand::Rng,
#[cfg(feature = "server_encrypt")] rsa::pkcs8::der::Decode,
use rand::Rng; rsa::RsaPublicKey,
#[cfg(feature = "server_encrypt")] sha2::Digest,
use rsa::pkcs8::der::Decode; spki::{DecodePublicKey, EncodePublicKey},
#[cfg(feature = "server_encrypt")] };
use rsa::RsaPublicKey;
#[cfg(feature = "server_encrypt")]
use sha2::Digest;
#[cfg(feature = "server_encrypt")]
use spki::{DecodePublicKey, EncodePublicKey};
#[derive(Clone)] #[derive(Clone)]
pub struct RsaCipher { pub struct RsaCipher {
#[cfg(feature = "server_encrypt")]
inner: Inner, inner: Inner,
} }
#[cfg(feature = "server_encrypt")]
#[derive(Clone)] #[derive(Clone)]
struct Inner { struct Inner {
public_key: RsaPublicKey, public_key: RsaPublicKey,
} }
impl RsaCipher { impl RsaCipher {
#[cfg(feature = "server_encrypt")]
pub fn new(der: &[u8]) -> io::Result<Self> { pub fn new(der: &[u8]) -> io::Result<Self> {
match RsaPublicKey::from_public_key_der(der) { match RsaPublicKey::from_public_key_der(der) {
Ok(public_key) => { Ok(public_key) => {
@@ -39,11 +31,7 @@ impl RsaCipher {
)), )),
} }
} }
#[cfg(not(feature = "server_encrypt"))]
pub fn new(_der: &[u8]) -> io::Result<Self> {
unimplemented!()
}
#[cfg(feature = "server_encrypt")]
pub fn finger(&self) -> io::Result<String> { pub fn finger(&self) -> io::Result<String> {
match self.inner.public_key.to_public_key_der() { match self.inner.public_key.to_public_key_der() {
Ok(der) => match rsa::pkcs8::SubjectPublicKeyInfoRef::from_der(der.as_bytes()) { Ok(der) => match rsa::pkcs8::SubjectPublicKeyInfoRef::from_der(der.as_bytes()) {
@@ -65,21 +53,12 @@ impl RsaCipher {
)), )),
} }
} }
#[cfg(not(feature = "server_encrypt"))] pub fn public_key(&self) -> io::Result<&RsaPublicKey> {
pub fn finger(&self) -> io::Result<String> { return Ok(&self.inner.public_key);
unimplemented!()
} }
} }
impl RsaCipher { impl RsaCipher {
#[cfg(not(feature = "server_encrypt"))]
pub fn encrypt<B: AsRef<[u8]> + AsMut<[u8]>>(
&self,
_net_packet: &mut NetPacket<B>,
) -> io::Result<NetPacket<Vec<u8>>> {
unimplemented!()
}
#[cfg(feature = "server_encrypt")]
/// net_packet 必须预留足够长度 /// net_packet 必须预留足够长度
pub fn encrypt<B: AsRef<[u8]> + AsMut<[u8]>>( pub fn encrypt<B: AsRef<[u8]> + AsMut<[u8]>>(
&self, &self,