protected store test
This commit is contained in:
		@@ -3,6 +3,7 @@ pub mod test_crypto;
 | 
				
			|||||||
pub mod test_dht_key;
 | 
					pub mod test_dht_key;
 | 
				
			||||||
pub mod test_envelope_receipt;
 | 
					pub mod test_envelope_receipt;
 | 
				
			||||||
pub mod test_host_interface;
 | 
					pub mod test_host_interface;
 | 
				
			||||||
 | 
					pub mod test_protected_store;
 | 
				
			||||||
pub mod test_table_store;
 | 
					pub mod test_table_store;
 | 
				
			||||||
pub mod test_veilid_config;
 | 
					pub mod test_veilid_config;
 | 
				
			||||||
pub mod test_veilid_core;
 | 
					pub mod test_veilid_core;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -429,115 +429,6 @@ pub async fn test_split_url() {
 | 
				
			|||||||
    assert_split_url_parse!("s://s");
 | 
					    assert_split_url_parse!("s://s");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub async fn test_protected_store() {
 | 
					 | 
				
			||||||
    info!("testing protected store");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
xxx move into its own test
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    let _ = intf::remove_user_secret("test", "_test_key").await;
 | 
					 | 
				
			||||||
    let _ = intf::remove_user_secret("test", "_test_broken").await;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    let d1: [u8; 0] = [];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::save_user_secret("test", "_test_key", &[2u8, 3u8, 4u8]).await,
 | 
					 | 
				
			||||||
        Ok(false)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    info!("testing saving user secret");
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::save_user_secret("test", "_test_key", &d1).await,
 | 
					 | 
				
			||||||
        Ok(true)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    info!("testing loading user secret");
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::load_user_secret("test", "_test_key").await,
 | 
					 | 
				
			||||||
        Ok(Some(d1.to_vec()))
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    info!("testing loading user secret again");
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::load_user_secret("test", "_test_key").await,
 | 
					 | 
				
			||||||
        Ok(Some(d1.to_vec()))
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    info!("testing loading broken user secret");
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::load_user_secret("test", "_test_broken").await,
 | 
					 | 
				
			||||||
        Ok(None)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    info!("testing loading broken user secret again");
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::load_user_secret("test", "_test_broken").await,
 | 
					 | 
				
			||||||
        Ok(None)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    info!("testing remove user secret");
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::remove_user_secret("test", "_test_key").await,
 | 
					 | 
				
			||||||
        Ok(true)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    info!("testing remove user secret again");
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::remove_user_secret("test", "_test_key").await,
 | 
					 | 
				
			||||||
        Ok(false)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    info!("testing remove broken user secret");
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::remove_user_secret("test", "_test_broken").await,
 | 
					 | 
				
			||||||
        Ok(false)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    info!("testing remove broken user secret again");
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::remove_user_secret("test", "_test_broken").await,
 | 
					 | 
				
			||||||
        Ok(false)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    let d2: [u8; 10] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::save_user_secret("test", "_test_key", &[2u8, 3u8, 4u8]).await,
 | 
					 | 
				
			||||||
        Ok(false)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::save_user_secret("test", "_test_key", &d2).await,
 | 
					 | 
				
			||||||
        Ok(true)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::load_user_secret("test", "_test_key").await,
 | 
					 | 
				
			||||||
        Ok(Some(d2.to_vec()))
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::load_user_secret("test", "_test_key").await,
 | 
					 | 
				
			||||||
        Ok(Some(d2.to_vec()))
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::load_user_secret("test", "_test_broken").await,
 | 
					 | 
				
			||||||
        Ok(None)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::load_user_secret("test", "_test_broken").await,
 | 
					 | 
				
			||||||
        Ok(None)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::remove_user_secret("test", "_test_key").await,
 | 
					 | 
				
			||||||
        Ok(true)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::remove_user_secret("test", "_test_key").await,
 | 
					 | 
				
			||||||
        Ok(false)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::remove_user_secret("test", "_test_broken").await,
 | 
					 | 
				
			||||||
        Ok(false)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    assert_eq!(
 | 
					 | 
				
			||||||
        intf::remove_user_secret("test", "_test_broken").await,
 | 
					 | 
				
			||||||
        Ok(false)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    let _ = intf::remove_user_secret("test", "_test_key").await;
 | 
					 | 
				
			||||||
    let _ = intf::remove_user_secret("test", "_test_broken").await;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cfg_if! {
 | 
					cfg_if! {
 | 
				
			||||||
    if #[cfg(not(target_arch = "wasm32"))] {
 | 
					    if #[cfg(not(target_arch = "wasm32"))] {
 | 
				
			||||||
        pub async fn test_network_interfaces() {
 | 
					        pub async fn test_network_interfaces() {
 | 
				
			||||||
@@ -653,5 +544,4 @@ pub async fn test_all() {
 | 
				
			|||||||
    test_eventual_value_clone().await;
 | 
					    test_eventual_value_clone().await;
 | 
				
			||||||
    test_interval().await;
 | 
					    test_interval().await;
 | 
				
			||||||
    test_timeout().await;
 | 
					    test_timeout().await;
 | 
				
			||||||
    test_protected_store().await;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										103
									
								
								veilid-core/src/tests/common/test_protected_store.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								veilid-core/src/tests/common/test_protected_store.rs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,103 @@
 | 
				
			|||||||
 | 
					use super::test_veilid_config::*;
 | 
				
			||||||
 | 
					use crate::intf::*;
 | 
				
			||||||
 | 
					use crate::xx::*;
 | 
				
			||||||
 | 
					use crate::*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn setup_veilid_core() -> VeilidCoreSetup {
 | 
				
			||||||
 | 
					    VeilidCoreSetup {
 | 
				
			||||||
 | 
					        state_change_callback: Arc::new(
 | 
				
			||||||
 | 
					            move |change: VeilidStateChange| -> SystemPinBoxFuture<()> {
 | 
				
			||||||
 | 
					                Box::pin(async move {
 | 
				
			||||||
 | 
					                    trace!("state_change_callback: {:?}", change);
 | 
				
			||||||
 | 
					                })
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        config_callback: Arc::new(config_callback),
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					async fn startup(core: VeilidCore) -> VeilidAPI {
 | 
				
			||||||
 | 
					    trace!("test_table_store: starting");
 | 
				
			||||||
 | 
					    core.startup(setup_veilid_core())
 | 
				
			||||||
 | 
					        .await
 | 
				
			||||||
 | 
					        .expect("startup failed")
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					async fn shutdown(api: VeilidAPI) {
 | 
				
			||||||
 | 
					    trace!("test_table_store: shutting down");
 | 
				
			||||||
 | 
					    api.shutdown().await;
 | 
				
			||||||
 | 
					    trace!("test_table_store: finished");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pub async fn test_protected_store(ps: ProtectedStore) {
 | 
				
			||||||
 | 
					    info!("testing protected store");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let _ = ps.remove_user_secret("_test_key").await;
 | 
				
			||||||
 | 
					    let _ = ps.remove_user_secret("_test_broken").await;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let d1: [u8; 0] = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    assert_eq!(
 | 
				
			||||||
 | 
					        ps.save_user_secret("_test_key", &[2u8, 3u8, 4u8]).await,
 | 
				
			||||||
 | 
					        Ok(false)
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					    info!("testing saving user secret");
 | 
				
			||||||
 | 
					    assert_eq!(ps.save_user_secret("_test_key", &d1).await, Ok(true));
 | 
				
			||||||
 | 
					    info!("testing loading user secret");
 | 
				
			||||||
 | 
					    assert_eq!(
 | 
				
			||||||
 | 
					        ps.load_user_secret("_test_key").await,
 | 
				
			||||||
 | 
					        Ok(Some(d1.to_vec()))
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					    info!("testing loading user secret again");
 | 
				
			||||||
 | 
					    assert_eq!(
 | 
				
			||||||
 | 
					        ps.load_user_secret("_test_key").await,
 | 
				
			||||||
 | 
					        Ok(Some(d1.to_vec()))
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					    info!("testing loading broken user secret");
 | 
				
			||||||
 | 
					    assert_eq!(ps.load_user_secret("_test_broken").await, Ok(None));
 | 
				
			||||||
 | 
					    info!("testing loading broken user secret again");
 | 
				
			||||||
 | 
					    assert_eq!(ps.load_user_secret("_test_broken").await, Ok(None));
 | 
				
			||||||
 | 
					    info!("testing remove user secret");
 | 
				
			||||||
 | 
					    assert_eq!(ps.remove_user_secret("_test_key").await, Ok(true));
 | 
				
			||||||
 | 
					    info!("testing remove user secret again");
 | 
				
			||||||
 | 
					    assert_eq!(ps.remove_user_secret("_test_key").await, Ok(false));
 | 
				
			||||||
 | 
					    info!("testing remove broken user secret");
 | 
				
			||||||
 | 
					    assert_eq!(ps.remove_user_secret("_test_broken").await, Ok(false));
 | 
				
			||||||
 | 
					    info!("testing remove broken user secret again");
 | 
				
			||||||
 | 
					    assert_eq!(ps.remove_user_secret("_test_broken").await, Ok(false));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let d2: [u8; 10] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    assert_eq!(
 | 
				
			||||||
 | 
					        ps.save_user_secret("_test_key", &[2u8, 3u8, 4u8]).await,
 | 
				
			||||||
 | 
					        Ok(false)
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					    assert_eq!(ps.save_user_secret("_test_key", &d2).await, Ok(true));
 | 
				
			||||||
 | 
					    assert_eq!(
 | 
				
			||||||
 | 
					        ps.load_user_secret("_test_key").await,
 | 
				
			||||||
 | 
					        Ok(Some(d2.to_vec()))
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					    assert_eq!(
 | 
				
			||||||
 | 
					        ps.load_user_secret("_test_key").await,
 | 
				
			||||||
 | 
					        Ok(Some(d2.to_vec()))
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					    assert_eq!(ps.load_user_secret("_test_broken").await, Ok(None));
 | 
				
			||||||
 | 
					    assert_eq!(ps.load_user_secret("_test_broken").await, Ok(None));
 | 
				
			||||||
 | 
					    assert_eq!(ps.remove_user_secret("_test_key").await, Ok(true));
 | 
				
			||||||
 | 
					    assert_eq!(ps.remove_user_secret("_test_key").await, Ok(false));
 | 
				
			||||||
 | 
					    assert_eq!(ps.remove_user_secret("_test_broken").await, Ok(false));
 | 
				
			||||||
 | 
					    assert_eq!(ps.remove_user_secret("_test_broken").await, Ok(false));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let _ = ps.remove_user_secret("_test_key").await;
 | 
				
			||||||
 | 
					    let _ = ps.remove_user_secret("_test_broken").await;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pub async fn test_all() {
 | 
				
			||||||
 | 
					    let core = VeilidCore::new();
 | 
				
			||||||
 | 
					    let api = startup(core.clone()).await;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let ps = core.protected_store();
 | 
				
			||||||
 | 
					    test_protected_store(ps.clone()).await;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    shutdown(api).await;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -167,7 +167,7 @@ pub fn config_callback(key: String) -> Result<Box<dyn core::any::Any>, String> {
 | 
				
			|||||||
        "capabilities.protocol_accept_ws" => Ok(Box::new(true)),
 | 
					        "capabilities.protocol_accept_ws" => Ok(Box::new(true)),
 | 
				
			||||||
        "capabilities.protocol_connect_wss" => Ok(Box::new(true)),
 | 
					        "capabilities.protocol_connect_wss" => Ok(Box::new(true)),
 | 
				
			||||||
        "capabilities.protocol_accept_wss" => Ok(Box::new(true)),
 | 
					        "capabilities.protocol_accept_wss" => Ok(Box::new(true)),
 | 
				
			||||||
        "tablestore.directory" => Ok(Box::new(get_table_store_path())),
 | 
					        "table_store.directory" => Ok(Box::new(get_table_store_path())),
 | 
				
			||||||
        "protected_store.allow_insecure_fallback" => Ok(Box::new(true)),
 | 
					        "protected_store.allow_insecure_fallback" => Ok(Box::new(true)),
 | 
				
			||||||
        "protected_store.always_use_insecure_storage" => Ok(Box::new(false)),
 | 
					        "protected_store.always_use_insecure_storage" => Ok(Box::new(false)),
 | 
				
			||||||
        "protected_store.insecure_fallback_directory" => Ok(Box::new(get_protected_store_path())),
 | 
					        "protected_store.insecure_fallback_directory" => Ok(Box::new(get_protected_store_path())),
 | 
				
			||||||
@@ -252,6 +252,7 @@ pub async fn test_config() {
 | 
				
			|||||||
            unreachable!();
 | 
					            unreachable!();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let inner = vc.get();
 | 
					    let inner = vc.get();
 | 
				
			||||||
    assert_eq!(inner.program_name, String::from("Veilid"));
 | 
					    assert_eq!(inner.program_name, String::from("Veilid"));
 | 
				
			||||||
    assert_eq!(inner.namespace, String::from(""));
 | 
					    assert_eq!(inner.namespace, String::from(""));
 | 
				
			||||||
@@ -271,8 +272,8 @@ pub async fn test_config() {
 | 
				
			|||||||
    );
 | 
					    );
 | 
				
			||||||
    assert_eq!(inner.network.max_connections, 16);
 | 
					    assert_eq!(inner.network.max_connections, 16);
 | 
				
			||||||
    assert_eq!(inner.network.connection_initial_timeout, 2_000_000u64);
 | 
					    assert_eq!(inner.network.connection_initial_timeout, 2_000_000u64);
 | 
				
			||||||
    assert!(inner.network.node_id.valid);
 | 
					    assert!(!inner.network.node_id.valid);
 | 
				
			||||||
    assert!(inner.network.node_id_secret.valid);
 | 
					    assert!(!inner.network.node_id_secret.valid);
 | 
				
			||||||
    assert_eq!(
 | 
					    assert_eq!(
 | 
				
			||||||
        inner.network.bootstrap,
 | 
					        inner.network.bootstrap,
 | 
				
			||||||
        vec![String::from("asdf"), String::from("qwer")]
 | 
					        vec![String::from("asdf"), String::from("qwer")]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -57,6 +57,8 @@ pub fn run_all_tests() {
 | 
				
			|||||||
    exec_test_connection_table();
 | 
					    exec_test_connection_table();
 | 
				
			||||||
    info!("TEST: exec_test_table_store");
 | 
					    info!("TEST: exec_test_table_store");
 | 
				
			||||||
    exec_test_table_store();
 | 
					    exec_test_table_store();
 | 
				
			||||||
 | 
					    info!("TEST: exec_test_protected_store");
 | 
				
			||||||
 | 
					    exec_test_protected_store();
 | 
				
			||||||
    info!("TEST: exec_test_crypto");
 | 
					    info!("TEST: exec_test_crypto");
 | 
				
			||||||
    exec_test_crypto();
 | 
					    exec_test_crypto();
 | 
				
			||||||
    info!("TEST: exec_test_envelope_receipt");
 | 
					    info!("TEST: exec_test_envelope_receipt");
 | 
				
			||||||
@@ -100,6 +102,11 @@ fn exec_test_table_store() {
 | 
				
			|||||||
        test_table_store::test_all().await;
 | 
					        test_table_store::test_all().await;
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					fn exec_test_protected_store() {
 | 
				
			||||||
 | 
					    async_std::task::block_on(async {
 | 
				
			||||||
 | 
					        test_protected_store::test_all().await;
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
fn exec_test_crypto() {
 | 
					fn exec_test_crypto() {
 | 
				
			||||||
    async_std::task::block_on(async {
 | 
					    async_std::task::block_on(async {
 | 
				
			||||||
        test_crypto::test_all().await;
 | 
					        test_crypto::test_all().await;
 | 
				
			||||||
@@ -180,6 +187,13 @@ cfg_if! {
 | 
				
			|||||||
            exec_test_table_store();
 | 
					            exec_test_table_store();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #[test]
 | 
				
			||||||
 | 
					        #[serial]
 | 
				
			||||||
 | 
					        fn run_test_protected_store() {
 | 
				
			||||||
 | 
					            setup();
 | 
				
			||||||
 | 
					            exec_test_protected_store();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        #[test]
 | 
					        #[test]
 | 
				
			||||||
        #[serial]
 | 
					        #[serial]
 | 
				
			||||||
        fn run_test_crypto() {
 | 
					        fn run_test_crypto() {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -382,10 +382,8 @@ impl VeilidConfig {
 | 
				
			|||||||
    // Get the node id from config if one is specified
 | 
					    // Get the node id from config if one is specified
 | 
				
			||||||
    // Must be done -after- protected store startup
 | 
					    // Must be done -after- protected store startup
 | 
				
			||||||
    pub async fn init_node_id(&self, protected_store: intf::ProtectedStore) -> Result<(), String> {
 | 
					    pub async fn init_node_id(&self, protected_store: intf::ProtectedStore) -> Result<(), String> {
 | 
				
			||||||
        let mut inner = self.inner.write();
 | 
					        let mut node_id = self.inner.read().network.node_id;
 | 
				
			||||||
 | 
					        let mut node_id_secret = self.inner.read().network.node_id_secret;
 | 
				
			||||||
        let mut node_id = inner.network.node_id;
 | 
					 | 
				
			||||||
        let mut node_id_secret = inner.network.node_id_secret;
 | 
					 | 
				
			||||||
        // See if node id was previously stored in the protected store
 | 
					        // See if node id was previously stored in the protected store
 | 
				
			||||||
        if !node_id.valid {
 | 
					        if !node_id.valid {
 | 
				
			||||||
            debug!("pulling node id from storage");
 | 
					            debug!("pulling node id from storage");
 | 
				
			||||||
@@ -437,8 +435,8 @@ impl VeilidConfig {
 | 
				
			|||||||
            .save_user_secret_string("node_id_secret", node_id_secret.encode().as_str())
 | 
					            .save_user_secret_string("node_id_secret", node_id_secret.encode().as_str())
 | 
				
			||||||
            .await?;
 | 
					            .await?;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        inner.network.node_id = node_id;
 | 
					        self.inner.write().network.node_id = node_id;
 | 
				
			||||||
        inner.network.node_id_secret = node_id_secret;
 | 
					        self.inner.write().network.node_id_secret = node_id_secret;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        trace!("init_node_id complete");
 | 
					        trace!("init_node_id complete");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -76,6 +76,10 @@ impl VeilidCore {
 | 
				
			|||||||
        self.inner.lock().table_store.as_ref().unwrap().clone()
 | 
					        self.inner.lock().table_store.as_ref().unwrap().clone()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pub(crate) fn protected_store(&self) -> ProtectedStore {
 | 
				
			||||||
 | 
					        self.inner.lock().protected_store.as_ref().unwrap().clone()
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pub(crate) fn crypto(&self) -> Crypto {
 | 
					    pub(crate) fn crypto(&self) -> Crypto {
 | 
				
			||||||
        self.inner.lock().crypto.as_ref().unwrap().clone()
 | 
					        self.inner.lock().crypto.as_ref().unwrap().clone()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -93,7 +93,10 @@ impl JsVeilidCore {
 | 
				
			|||||||
            "capabilities.protocol_accept_ws" => Self::value_to_bool(val),
 | 
					            "capabilities.protocol_accept_ws" => Self::value_to_bool(val),
 | 
				
			||||||
            "capabilities.protocol_connect_wss" => Self::value_to_bool(val),
 | 
					            "capabilities.protocol_connect_wss" => Self::value_to_bool(val),
 | 
				
			||||||
            "capabilities.protocol_accept_wss" => Self::value_to_bool(val),
 | 
					            "capabilities.protocol_accept_wss" => Self::value_to_bool(val),
 | 
				
			||||||
            "tablestore.directory" => Self::value_to_string(val),
 | 
					            "table_store.directory" => Self::value_to_string(val),
 | 
				
			||||||
 | 
					            "protected_store.allow_insecure_fallback" => Self::value_to_bool(val),
 | 
				
			||||||
 | 
					            "protected_store.always_use_insecure_storage" => Self::value_to_bool(val),
 | 
				
			||||||
 | 
					            "protected_store.insecure_fallback_directory" => Self::value_to_string(val),
 | 
				
			||||||
            "network.max_connections" => Self::value_to_u32(val),
 | 
					            "network.max_connections" => Self::value_to_u32(val),
 | 
				
			||||||
            "network.node_id" => Self::value_to_dht_key(val),
 | 
					            "network.node_id" => Self::value_to_dht_key(val),
 | 
				
			||||||
            "network.node_id_secret" => Self::value_to_dht_key_secret(val),
 | 
					            "network.node_id_secret" => Self::value_to_dht_key_secret(val),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,7 +36,10 @@ fn init_callbacks() {
 | 
				
			|||||||
            case "capabilities.protocol_accept_ws": return false;
 | 
					            case "capabilities.protocol_accept_ws": return false;
 | 
				
			||||||
            case "capabilities.protocol_connect_wss": return true;
 | 
					            case "capabilities.protocol_connect_wss": return true;
 | 
				
			||||||
            case "capabilities.protocol_accept_wss": return false;
 | 
					            case "capabilities.protocol_accept_wss": return false;
 | 
				
			||||||
            case "tablestore.directory": return "";
 | 
					            case "table_store.directory": return "";
 | 
				
			||||||
 | 
					            case "protected_store.allow_insecure_fallback": return true;
 | 
				
			||||||
 | 
					            case "protected_store.always_use_insecure_storage": return false;
 | 
				
			||||||
 | 
					            case "protected_store.insecure_fallback_directory": return "";
 | 
				
			||||||
            case "network.max_connections": return 16;
 | 
					            case "network.max_connections": return 16;
 | 
				
			||||||
            case "network.node_id": return "ZLd4uMYdP4qYLtxF6GqrzBb32Z6T3rE2FWMkWup1pdY";
 | 
					            case "network.node_id": return "ZLd4uMYdP4qYLtxF6GqrzBb32Z6T3rE2FWMkWup1pdY";
 | 
				
			||||||
            case "network.node_id_secret": return "s2Gvq6HJOxgQh-3xIgfWSL3I-DWZ2c1RjZLJl2Xmg2E";
 | 
					            case "network.node_id_secret": return "s2Gvq6HJOxgQh-3xIgfWSL3I-DWZ2c1RjZLJl2Xmg2E";
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user