changed encryptor to ArcSwap
This commit is contained in:
parent
9cba4a976d
commit
b10c721179
@ -117,7 +117,7 @@ async fn daemonize_me(
|
|||||||
|
|
||||||
let (tx, rx) = std::sync::mpsc::channel();
|
let (tx, rx) = std::sync::mpsc::channel();
|
||||||
|
|
||||||
let hostname = "118.178.229.213".to_owned();
|
let hostname = "root.punchsky.com".to_owned();
|
||||||
let host = format!("{}:80", hostname);
|
let host = format!("{}:80", hostname);
|
||||||
let mut server = String::new();
|
let mut server = String::new();
|
||||||
if let Ok(addrs) = host.to_socket_addrs() {
|
if let Ok(addrs) = host.to_socket_addrs() {
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
use arc_swap::ArcSwap;
|
||||||
use dashmap::DashMap;
|
use dashmap::DashMap;
|
||||||
use quinn::Endpoint;
|
use quinn::Endpoint;
|
||||||
use rsa::RsaPrivateKey;
|
use rsa::RsaPrivateKey;
|
||||||
@ -163,7 +164,7 @@ impl IdentityID {
|
|||||||
pub struct Node {
|
pub struct Node {
|
||||||
packet_id: AtomicU32,
|
packet_id: AtomicU32,
|
||||||
|
|
||||||
pub encryptor: RwLock<MyEncryptor>,
|
pub encryptor: ArcSwap<MyEncryptor>,
|
||||||
|
|
||||||
pub network_id: AtomicU32,
|
pub network_id: AtomicU32,
|
||||||
pub network_domain: RwLock<String>,
|
pub network_domain: RwLock<String>,
|
||||||
@ -390,7 +391,8 @@ impl Node {
|
|||||||
|
|
||||||
Self {
|
Self {
|
||||||
packet_id: AtomicU32::new(1),
|
packet_id: AtomicU32::new(1),
|
||||||
encryptor: RwLock::new(MyEncryptor::new()),
|
encryptor: ArcSwap::from(Arc::new(MyEncryptor::new())),
|
||||||
|
// encryptor: RwLock::new(MyEncryptor::new()),
|
||||||
|
|
||||||
network_id: AtomicU32::new(0),
|
network_id: AtomicU32::new(0),
|
||||||
hostname: RwLock::new(hostname),
|
hostname: RwLock::new(hostname),
|
||||||
|
|||||||
@ -861,7 +861,8 @@ async fn handle_tun_packet(
|
|||||||
|
|
||||||
// test_aes(key.as_slice());
|
// test_aes(key.as_slice());
|
||||||
|
|
||||||
let origin = eee.encryptor.read().unwrap().decrypt(&payload);
|
let origin = eee.encryptor.load().decrypt(&payload);
|
||||||
|
// let origin = eee.encryptor.read().unwrap().decrypt(&payload);
|
||||||
// let origin = aes_decrypt(&payload);
|
// let origin = aes_decrypt(&payload);
|
||||||
if let Err(_e) = origin {
|
if let Err(_e) = origin {
|
||||||
error!("failed to decrypt original data");
|
error!("failed to decrypt original data");
|
||||||
|
|||||||
@ -321,7 +321,8 @@ impl TunTapPacketHandler for Iface {
|
|||||||
}
|
}
|
||||||
let size = data.len();
|
let size = data.len();
|
||||||
|
|
||||||
let Ok(encrypted) = edge.encryptor.read().unwrap().encrypt(&data) else {
|
let Ok(encrypted) = edge.encryptor.load().encrypt(&data) else {
|
||||||
|
// let Ok(encrypted) = edge.encryptor.read().unwrap().encrypt(&data) else {
|
||||||
// let Ok(encrypted) = aes_encrypt(encrypt_key, &data) else {
|
// let Ok(encrypted) = aes_encrypt(encrypt_key, &data) else {
|
||||||
error!("failed to encrypt packet request");
|
error!("failed to encrypt packet request");
|
||||||
return Ok(());
|
return Ok(());
|
||||||
|
|||||||
@ -88,7 +88,8 @@ impl ArpWaitList {
|
|||||||
|
|
||||||
let pkt_size = packet.len();
|
let pkt_size = packet.len();
|
||||||
|
|
||||||
let Ok(encrypted) = edge.encryptor.read().unwrap().encrypt(&packet) else {
|
let Ok(encrypted) = edge.encryptor.load().encrypt(&packet) else {
|
||||||
|
// let Ok(encrypted) = edge.encryptor.read().unwrap().encrypt(&packet) else {
|
||||||
// let Ok(encrypted) = aes_encrypt(&encrypt_key, &packet) else {
|
// let Ok(encrypted) = aes_encrypt(&encrypt_key, &packet) else {
|
||||||
error!("failed to encrypt packet request");
|
error!("failed to encrypt packet request");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -133,10 +133,12 @@ async fn handle_tcp_message(msg: SdlanTcp) {
|
|||||||
|
|
||||||
match ack.algorithm.to_ascii_lowercase().as_str() {
|
match ack.algorithm.to_ascii_lowercase().as_str() {
|
||||||
"chacha20" => {
|
"chacha20" => {
|
||||||
*edge.encryptor.write().unwrap() = MyEncryptor::ChaChao20(Chacha20Encryptor::new(key, ack.region_id));
|
edge.encryptor.store(Arc::new(MyEncryptor::ChaChao20(Chacha20Encryptor::new(key, ack.region_id))))
|
||||||
|
// *edge.encryptor.write().unwrap() = MyEncryptor::ChaChao20(Chacha20Encryptor::new(key, ack.region_id));
|
||||||
}
|
}
|
||||||
"aes" => {
|
"aes" => {
|
||||||
*edge.encryptor.write().unwrap() = MyEncryptor::Aes(AesEncryptor::new(key));
|
edge.encryptor.store(Arc::new(MyEncryptor::Aes(AesEncryptor::new(key))))
|
||||||
|
// *edge.encryptor.write().unwrap() = MyEncryptor::Aes(AesEncryptor::new(key));
|
||||||
}
|
}
|
||||||
_other => {
|
_other => {
|
||||||
|
|
||||||
@ -330,7 +332,8 @@ async fn handle_tcp_message(msg: SdlanTcp) {
|
|||||||
});
|
});
|
||||||
*/
|
*/
|
||||||
edge.set_authorized(false);
|
edge.set_authorized(false);
|
||||||
*edge.encryptor.write().unwrap() = MyEncryptor::Invalid;
|
edge.encryptor.store(Arc::new(MyEncryptor::Invalid));
|
||||||
|
// *edge.encryptor.write().unwrap() = MyEncryptor::Invalid;
|
||||||
// std::process::exit(0);
|
// std::process::exit(0);
|
||||||
}
|
}
|
||||||
PacketType::Command => {
|
PacketType::Command => {
|
||||||
@ -689,7 +692,7 @@ impl ReadWriteActor {
|
|||||||
async fn on_disconnected_callback() {
|
async fn on_disconnected_callback() {
|
||||||
let edge = get_edge();
|
let edge = get_edge();
|
||||||
edge.set_authorized(false);
|
edge.set_authorized(false);
|
||||||
*edge.encryptor.write().unwrap() = MyEncryptor::Invalid;
|
edge.encryptor.store(Arc::new(MyEncryptor::Invalid));
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn on_connected_callback(local_ip: Option<IpAddr>, stream: &mut SendStream, _pkt_id: Option<u32>) {
|
async fn on_connected_callback(local_ip: Option<IpAddr>, stream: &mut SendStream, _pkt_id: Option<u32>) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user