routing work

This commit is contained in:
John Smith
2023-02-23 21:07:46 -05:00
parent ed8703e507
commit 4823c979ab
8 changed files with 288 additions and 191 deletions

View File

@@ -33,7 +33,7 @@ pub trait CryptoSystem {
fn validate_hash_reader(
&self,
reader: &mut dyn std::io::Read,
dht_key: &PublicKey,
key: &PublicKey,
) -> Result<bool, VeilidAPIError>;
// Distance Metric
@@ -42,13 +42,13 @@ pub trait CryptoSystem {
// Authentication
fn sign(
&self,
dht_key: &PublicKey,
dht_key_secret: &SecretKey,
key: &PublicKey,
secret: &SecretKey,
data: &[u8],
) -> Result<Signature, VeilidAPIError>;
fn verify(
&self,
dht_key: &PublicKey,
key: &PublicKey,
data: &[u8],
signature: &Signature,
) -> Result<(), VeilidAPIError>;

View File

@@ -40,6 +40,6 @@ pub fn bytes_to_cache(bytes: &[u8], cache: &mut DHCache) {
let v = DHCacheValue {
shared_secret: SharedSecret::new(d[64..96].try_into().expect("asdf")),
};
cache.insert(k, v);
cache.insert(k, v, |_k, _v| {});
}
}

View File

@@ -269,10 +269,13 @@ impl Crypto {
secret: &SecretKey,
) -> Result<SharedSecret, VeilidAPIError> {
Ok(
match self.inner.lock().dh_cache.entry(DHCacheKey {
key: *key,
secret: *secret,
}) {
match self.inner.lock().dh_cache.entry(
DHCacheKey {
key: *key,
secret: *secret,
},
|_k, _v| {},
) {
Entry::Occupied(e) => e.get().shared_secret,
Entry::Vacant(e) => {
let shared_secret = vcrypto.compute_dh(key, secret)?;