Move credential helpers out of lox-wasm
This commit is contained in:
parent
5ac0fc7bef
commit
b016bc9742
|
@ -898,11 +898,9 @@ dependencies = [
|
||||||
"julianday",
|
"julianday",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"lox",
|
"lox",
|
||||||
|
"lox_utils",
|
||||||
"rand 0.7.3",
|
"rand 0.7.3",
|
||||||
"serde",
|
|
||||||
"serde-wasm-bindgen",
|
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"serde_with",
|
|
||||||
"time 0.3.21",
|
"time 0.3.21",
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
"zkp",
|
"zkp",
|
||||||
|
@ -915,6 +913,7 @@ dependencies = [
|
||||||
"lox",
|
"lox",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_with",
|
"serde_with",
|
||||||
|
"zkp",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -1524,17 +1523,6 @@ dependencies = [
|
||||||
"serde_derive",
|
"serde_derive",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "serde-wasm-bindgen"
|
|
||||||
version = "0.5.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e"
|
|
||||||
dependencies = [
|
|
||||||
"js-sys",
|
|
||||||
"serde",
|
|
||||||
"wasm-bindgen",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde_bytes"
|
name = "serde_bytes"
|
||||||
version = "0.11.9"
|
version = "0.11.9"
|
||||||
|
|
|
@ -15,6 +15,7 @@ repository = "https://gitlab.torproject.org/tpo/anti-censorship/lox.git/"
|
||||||
lox = {path = "../lox-library", version = "0.1.0"}
|
lox = {path = "../lox-library", version = "0.1.0"}
|
||||||
serde = "1"
|
serde = "1"
|
||||||
serde_with = "3.0.0"
|
serde_with = "3.0.0"
|
||||||
|
zkp = "0.8.0"
|
||||||
|
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
@ -22,5 +23,4 @@ full = []
|
||||||
|
|
||||||
[package.metadata.docs.rs]
|
[package.metadata.docs.rs]
|
||||||
all-features = true
|
all-features = true
|
||||||
rustdoc-args = ["--cfg", "docsrs"]
|
rustdoc-args = ["--cfg", "docsrs"]
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
|
/*! A small util library for Lox credential helpers
|
||||||
|
useful across many Lox crates
|
||||||
|
*/
|
||||||
use lox::bridge_table::{BridgeLine, ENC_BUCKET_BYTES};
|
use lox::bridge_table::{BridgeLine, ENC_BUCKET_BYTES};
|
||||||
use lox::cred::{Invitation, Lox};
|
use lox::cred::{Invitation, Lox};
|
||||||
use lox::proto;
|
|
||||||
use lox::IssuerPubKey;
|
use lox::IssuerPubKey;
|
||||||
|
use lox::{proto, scalar_u32};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_with::serde_as;
|
use serde_with::serde_as;
|
||||||
|
|
||||||
|
|
|
@ -13,12 +13,10 @@ crate-type = ["cdylib"]
|
||||||
julianday = "1.2.0"
|
julianday = "1.2.0"
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
lox = { path = "../lox-library", version = "0.1.0" }
|
lox = { path = "../lox-library", version = "0.1.0" }
|
||||||
|
lox_utils = { path = "../lox-utils", version = "0.1.0" }
|
||||||
wasm-bindgen = "0.2"
|
wasm-bindgen = "0.2"
|
||||||
time = "0.3.21"
|
time = "0.3.21"
|
||||||
serde_json = "1.0.87"
|
serde_json = "1.0.87"
|
||||||
serde = "1"
|
|
||||||
serde_with = "3.0.0"
|
|
||||||
serde-wasm-bindgen = "0.5.0"
|
|
||||||
|
|
||||||
console_error_panic_hook = "0.1.7"
|
console_error_panic_hook = "0.1.7"
|
||||||
js-sys = "0.3.61"
|
js-sys = "0.3.61"
|
||||||
|
|
|
@ -1,90 +1,17 @@
|
||||||
use chrono::{Duration, Utc};
|
use chrono::{Duration, Utc};
|
||||||
use julianday::JulianDay;
|
use julianday::JulianDay;
|
||||||
use lox::bridge_table::{from_scalar, BridgeLine, BridgeTable, ENC_BUCKET_BYTES};
|
use lox::bridge_table::{from_scalar, BridgeTable};
|
||||||
use lox::cred::{BucketReachability, Invitation, Lox, Migration};
|
use lox::cred::{BucketReachability, Invitation, Lox, Migration};
|
||||||
use lox::proto::{
|
use lox::proto::{
|
||||||
blockage_migration, check_blockage, issue_invite, level_up, migration, open_invite,
|
blockage_migration, check_blockage, issue_invite, level_up, migration, open_invite,
|
||||||
redeem_invite, trust_promotion,
|
redeem_invite, trust_promotion,
|
||||||
};
|
};
|
||||||
use lox::{scalar_u32, IssuerPubKey, OPENINV_LENGTH};
|
use lox::{scalar_u32, OPENINV_LENGTH};
|
||||||
use serde::{Deserialize, Serialize};
|
|
||||||
use serde_with::serde_as;
|
|
||||||
use std::array::TryFromSliceError;
|
use std::array::TryFromSliceError;
|
||||||
use std::panic;
|
use std::panic;
|
||||||
use wasm_bindgen::prelude::*;
|
use wasm_bindgen::prelude::*;
|
||||||
use zkp::ProofError;
|
use zkp::ProofError;
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize)]
|
|
||||||
struct OpenReqState {
|
|
||||||
request: open_invite::Request,
|
|
||||||
state: open_invite::State,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize)]
|
|
||||||
struct TrustReqState {
|
|
||||||
request: trust_promotion::Request,
|
|
||||||
state: trust_promotion::State,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize)]
|
|
||||||
struct MigReqState {
|
|
||||||
request: migration::Request,
|
|
||||||
state: migration::State,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize)]
|
|
||||||
struct LevelupReqState {
|
|
||||||
request: level_up::Request,
|
|
||||||
state: level_up::State,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize)]
|
|
||||||
struct IssueInviteReqState {
|
|
||||||
request: issue_invite::Request,
|
|
||||||
state: issue_invite::State,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize)]
|
|
||||||
struct RedeemReqState {
|
|
||||||
request: redeem_invite::Request,
|
|
||||||
state: redeem_invite::State,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize)]
|
|
||||||
struct CheckBlockageReqState {
|
|
||||||
request: check_blockage::Request,
|
|
||||||
state: check_blockage::State,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize)]
|
|
||||||
struct BlockageMigReqState {
|
|
||||||
request: blockage_migration::Request,
|
|
||||||
state: blockage_migration::State,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize)]
|
|
||||||
struct PubKeys {
|
|
||||||
lox_pub: IssuerPubKey,
|
|
||||||
migration_pub: IssuerPubKey,
|
|
||||||
migrationkey_pub: IssuerPubKey,
|
|
||||||
reachability_pub: IssuerPubKey,
|
|
||||||
invitation_pub: IssuerPubKey,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[serde_as]
|
|
||||||
#[derive(Serialize, Deserialize)]
|
|
||||||
pub struct EncBridgeTable {
|
|
||||||
#[serde_as(as = "Vec<[_; ENC_BUCKET_BYTES]>")]
|
|
||||||
pub etable: Vec<[u8; ENC_BUCKET_BYTES]>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize)]
|
|
||||||
struct LoxCredential {
|
|
||||||
lox_credential: Lox,
|
|
||||||
bridgeline: Option<BridgeLine>,
|
|
||||||
invitation: Option<Invitation>,
|
|
||||||
}
|
|
||||||
|
|
||||||
fn today() -> u32 {
|
fn today() -> u32 {
|
||||||
let naive_now = Utc::now().date_naive();
|
let naive_now = Utc::now().date_naive();
|
||||||
JulianDay::from(naive_now).inner().try_into().unwrap()
|
JulianDay::from(naive_now).inner().try_into().unwrap()
|
||||||
|
@ -133,7 +60,7 @@ pub fn open_invite(invite: &[u8]) -> Result<String, JsValue> {
|
||||||
Err(e) => return Err(JsValue::from(e.to_string())),
|
Err(e) => return Err(JsValue::from(e.to_string())),
|
||||||
};
|
};
|
||||||
let (request, state) = open_invite::request(&token);
|
let (request, state) = open_invite::request(&token);
|
||||||
let req_state = OpenReqState { request, state };
|
let req_state = lox_utils::OpenReqState { request, state };
|
||||||
unsafe {
|
unsafe {
|
||||||
log(&format!(
|
log(&format!(
|
||||||
"Formatted open invite request: {}",
|
"Formatted open invite request: {}",
|
||||||
|
@ -149,10 +76,10 @@ pub fn handle_new_lox_credential(
|
||||||
open_lox_response: String,
|
open_lox_response: String,
|
||||||
lox_pub: String,
|
lox_pub: String,
|
||||||
) -> Result<String, JsValue> {
|
) -> Result<String, JsValue> {
|
||||||
let req_state: OpenReqState = serde_json::from_str(&open_lox_result).unwrap();
|
let req_state: lox_utils::OpenReqState = serde_json::from_str(&open_lox_result).unwrap();
|
||||||
let deserialized_state = req_state.state;
|
let deserialized_state = req_state.state;
|
||||||
let deserialized_response = serde_json::from_str(&open_lox_response).unwrap();
|
let deserialized_response = serde_json::from_str(&open_lox_response).unwrap();
|
||||||
let pubkeys: PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
let pubkeys: lox_utils::PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
||||||
let lox_cred = match open_invite::handle_response(
|
let lox_cred = match open_invite::handle_response(
|
||||||
deserialized_state,
|
deserialized_state,
|
||||||
deserialized_response,
|
deserialized_response,
|
||||||
|
@ -164,7 +91,7 @@ pub fn handle_new_lox_credential(
|
||||||
return Err(JsValue::from(e.to_string()));
|
return Err(JsValue::from(e.to_string()));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let lox_cred = LoxCredential {
|
let lox_cred = lox_utils::LoxCredential {
|
||||||
lox_credential: lox_cred.0,
|
lox_credential: lox_cred.0,
|
||||||
bridgeline: Some(lox_cred.1),
|
bridgeline: Some(lox_cred.1),
|
||||||
invitation: None,
|
invitation: None,
|
||||||
|
@ -184,8 +111,8 @@ pub fn handle_new_lox_credential(
|
||||||
|
|
||||||
#[wasm_bindgen]
|
#[wasm_bindgen]
|
||||||
pub fn trust_promotion(open_lox_cred: String, lox_pub: String) -> Result<String, JsValue> {
|
pub fn trust_promotion(open_lox_cred: String, lox_pub: String) -> Result<String, JsValue> {
|
||||||
let lox_cred: LoxCredential = serde_json::from_str(&open_lox_cred).unwrap();
|
let lox_cred: lox_utils::LoxCredential = serde_json::from_str(&open_lox_cred).unwrap();
|
||||||
let pubkeys: PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
let pubkeys: lox_utils::PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
||||||
// To test creation of the credential we need to advance the day to 30
|
// To test creation of the credential we need to advance the day to 30
|
||||||
// in production this should just use the today() function
|
// in production this should just use the today() function
|
||||||
log(&format!(
|
log(&format!(
|
||||||
|
@ -201,7 +128,7 @@ pub fn trust_promotion(open_lox_cred: String, lox_pub: String) -> Result<String,
|
||||||
return Err(JsValue::from(e.to_string()));
|
return Err(JsValue::from(e.to_string()));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let req_state = TrustReqState {
|
let req_state = lox_utils::TrustReqState {
|
||||||
request: tp_result.0,
|
request: tp_result.0,
|
||||||
state: tp_result.1,
|
state: tp_result.1,
|
||||||
};
|
};
|
||||||
|
@ -219,7 +146,7 @@ pub fn handle_trust_promotion(
|
||||||
trust_promo_request: String,
|
trust_promo_request: String,
|
||||||
trust_promo_response: String,
|
trust_promo_response: String,
|
||||||
) -> Result<String, JsValue> {
|
) -> Result<String, JsValue> {
|
||||||
let req_state: TrustReqState = serde_json::from_str(&trust_promo_request).unwrap();
|
let req_state: lox_utils::TrustReqState = serde_json::from_str(&trust_promo_request).unwrap();
|
||||||
let deserialized_state = req_state.state;
|
let deserialized_state = req_state.state;
|
||||||
let deserialized_response = serde_json::from_str(&trust_promo_response).unwrap();
|
let deserialized_response = serde_json::from_str(&trust_promo_response).unwrap();
|
||||||
let migration_cred =
|
let migration_cred =
|
||||||
|
@ -245,8 +172,8 @@ pub fn trust_migration(
|
||||||
trust_promo_cred: String,
|
trust_promo_cred: String,
|
||||||
lox_pub: String,
|
lox_pub: String,
|
||||||
) -> Result<String, JsValue> {
|
) -> Result<String, JsValue> {
|
||||||
let lox_cred: LoxCredential = serde_json::from_str(&open_lox_cred).unwrap();
|
let lox_cred: lox_utils::LoxCredential = serde_json::from_str(&open_lox_cred).unwrap();
|
||||||
let pubkeys: PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
let pubkeys: lox_utils::PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
||||||
let mig_cred: Migration = serde_json::from_str(&trust_promo_cred).unwrap();
|
let mig_cred: Migration = serde_json::from_str(&trust_promo_cred).unwrap();
|
||||||
let tm_result = match migration::request(
|
let tm_result = match migration::request(
|
||||||
&lox_cred.lox_credential,
|
&lox_cred.lox_credential,
|
||||||
|
@ -260,7 +187,7 @@ pub fn trust_migration(
|
||||||
return Err(JsValue::from(e.to_string()));
|
return Err(JsValue::from(e.to_string()));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let req_state = MigReqState {
|
let req_state = lox_utils::MigReqState {
|
||||||
request: tm_result.0,
|
request: tm_result.0,
|
||||||
state: tm_result.1,
|
state: tm_result.1,
|
||||||
};
|
};
|
||||||
|
@ -279,8 +206,8 @@ pub fn handle_trust_migration(
|
||||||
trust_migration_response: String,
|
trust_migration_response: String,
|
||||||
lox_pub: String,
|
lox_pub: String,
|
||||||
) -> Result<String, JsValue> {
|
) -> Result<String, JsValue> {
|
||||||
let pubkeys: PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
let pubkeys: lox_utils::PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
||||||
let req_state: MigReqState = serde_json::from_str(&trust_migration_request).unwrap();
|
let req_state: lox_utils::MigReqState = serde_json::from_str(&trust_migration_request).unwrap();
|
||||||
let deserialized_state = req_state.state;
|
let deserialized_state = req_state.state;
|
||||||
let deserialized_response = serde_json::from_str(&trust_migration_response).unwrap();
|
let deserialized_response = serde_json::from_str(&trust_migration_response).unwrap();
|
||||||
let level_one_cred = match migration::handle_response(
|
let level_one_cred = match migration::handle_response(
|
||||||
|
@ -288,7 +215,7 @@ pub fn handle_trust_migration(
|
||||||
deserialized_response,
|
deserialized_response,
|
||||||
&pubkeys.lox_pub,
|
&pubkeys.lox_pub,
|
||||||
) {
|
) {
|
||||||
Ok(level_1_cred) => LoxCredential {
|
Ok(level_1_cred) => lox_utils::LoxCredential {
|
||||||
lox_credential: level_1_cred,
|
lox_credential: level_1_cred,
|
||||||
bridgeline: None,
|
bridgeline: None,
|
||||||
invitation: None,
|
invitation: None,
|
||||||
|
@ -309,7 +236,7 @@ pub fn handle_trust_migration(
|
||||||
|
|
||||||
fn generate_reachability_cred(lox_cred: &Lox, encrypted_table: String) -> BucketReachability {
|
fn generate_reachability_cred(lox_cred: &Lox, encrypted_table: String) -> BucketReachability {
|
||||||
let (id, key) = from_scalar(lox_cred.bucket).unwrap();
|
let (id, key) = from_scalar(lox_cred.bucket).unwrap();
|
||||||
let enc_buckets: EncBridgeTable = serde_json::from_str(&encrypted_table).unwrap();
|
let enc_buckets: lox_utils::EncBridgeTable = serde_json::from_str(&encrypted_table).unwrap();
|
||||||
let bucket = BridgeTable::decrypt_bucket(id, &key, &enc_buckets.etable[id as usize]).unwrap();
|
let bucket = BridgeTable::decrypt_bucket(id, &key, &enc_buckets.etable[id as usize]).unwrap();
|
||||||
bucket.1.unwrap()
|
bucket.1.unwrap()
|
||||||
}
|
}
|
||||||
|
@ -320,8 +247,8 @@ pub fn level_up(
|
||||||
encrypted_table: String,
|
encrypted_table: String,
|
||||||
lox_pub: String,
|
lox_pub: String,
|
||||||
) -> Result<String, JsValue> {
|
) -> Result<String, JsValue> {
|
||||||
let lox_cred: LoxCredential = serde_json::from_str(&level_one_cred).unwrap();
|
let lox_cred: lox_utils::LoxCredential = serde_json::from_str(&level_one_cred).unwrap();
|
||||||
let pubkeys: PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
let pubkeys: lox_utils::PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
||||||
let reach_cred = generate_reachability_cred(&lox_cred.lox_credential, encrypted_table);
|
let reach_cred = generate_reachability_cred(&lox_cred.lox_credential, encrypted_table);
|
||||||
|
|
||||||
// To test level up of the credential we need to advance the day to the correct interval
|
// To test level up of the credential we need to advance the day to the correct interval
|
||||||
|
@ -350,7 +277,7 @@ pub fn level_up(
|
||||||
return Err(JsValue::from(e.to_string()));
|
return Err(JsValue::from(e.to_string()));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let req_state = LevelupReqState {
|
let req_state = lox_utils::LevelupReqState {
|
||||||
request: lu_result.0,
|
request: lu_result.0,
|
||||||
state: lu_result.1,
|
state: lu_result.1,
|
||||||
};
|
};
|
||||||
|
@ -369,8 +296,8 @@ pub fn handle_level_up(
|
||||||
levelup_response: String,
|
levelup_response: String,
|
||||||
lox_pub: String,
|
lox_pub: String,
|
||||||
) -> Result<String, JsValue> {
|
) -> Result<String, JsValue> {
|
||||||
let pubkeys: PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
let pubkeys: lox_utils::PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
||||||
let req_state: LevelupReqState = serde_json::from_str(&levelup_request).unwrap();
|
let req_state: lox_utils::LevelupReqState = serde_json::from_str(&levelup_request).unwrap();
|
||||||
let deserialized_state = req_state.state;
|
let deserialized_state = req_state.state;
|
||||||
let deserialized_response = serde_json::from_str(&levelup_response).unwrap();
|
let deserialized_response = serde_json::from_str(&levelup_response).unwrap();
|
||||||
let level_up_cred = match level_up::handle_response(
|
let level_up_cred = match level_up::handle_response(
|
||||||
|
@ -378,7 +305,7 @@ pub fn handle_level_up(
|
||||||
deserialized_response,
|
deserialized_response,
|
||||||
&pubkeys.lox_pub,
|
&pubkeys.lox_pub,
|
||||||
) {
|
) {
|
||||||
Ok(level_up_cred) => LoxCredential {
|
Ok(level_up_cred) => lox_utils::LoxCredential {
|
||||||
lox_credential: level_up_cred,
|
lox_credential: level_up_cred,
|
||||||
bridgeline: None,
|
bridgeline: None,
|
||||||
invitation: None,
|
invitation: None,
|
||||||
|
@ -403,8 +330,8 @@ pub fn issue_invite(
|
||||||
encrypted_table: String,
|
encrypted_table: String,
|
||||||
lox_pub: String,
|
lox_pub: String,
|
||||||
) -> Result<String, JsValue> {
|
) -> Result<String, JsValue> {
|
||||||
let lox_cred: LoxCredential = serde_json::from_str(&trusted_cred).unwrap();
|
let lox_cred: lox_utils::LoxCredential = serde_json::from_str(&trusted_cred).unwrap();
|
||||||
let pubkeys: PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
let pubkeys: lox_utils::PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
||||||
let reach_cred = generate_reachability_cred(&lox_cred.lox_credential, encrypted_table);
|
let reach_cred = generate_reachability_cred(&lox_cred.lox_credential, encrypted_table);
|
||||||
|
|
||||||
let issue_result = match issue_invite::request(
|
let issue_result = match issue_invite::request(
|
||||||
|
@ -420,7 +347,7 @@ pub fn issue_invite(
|
||||||
return Err(JsValue::from(e.to_string()));
|
return Err(JsValue::from(e.to_string()));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let req_state = IssueInviteReqState {
|
let req_state = lox_utils::IssueInviteReqState {
|
||||||
request: issue_result.0,
|
request: issue_result.0,
|
||||||
state: issue_result.1,
|
state: issue_result.1,
|
||||||
};
|
};
|
||||||
|
@ -439,8 +366,9 @@ pub fn handle_issue_invite(
|
||||||
issue_invite_response: String,
|
issue_invite_response: String,
|
||||||
lox_pub: String,
|
lox_pub: String,
|
||||||
) -> Result<String, JsValue> {
|
) -> Result<String, JsValue> {
|
||||||
let pubkeys: PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
let pubkeys: lox_utils::PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
||||||
let req_state: IssueInviteReqState = serde_json::from_str(&issue_invite_request).unwrap();
|
let req_state: lox_utils::IssueInviteReqState =
|
||||||
|
serde_json::from_str(&issue_invite_request).unwrap();
|
||||||
let deserialized_state = req_state.state;
|
let deserialized_state = req_state.state;
|
||||||
let deserialized_response = serde_json::from_str(&issue_invite_response).unwrap();
|
let deserialized_response = serde_json::from_str(&issue_invite_response).unwrap();
|
||||||
let issue_invite_cred = match issue_invite::handle_response(
|
let issue_invite_cred = match issue_invite::handle_response(
|
||||||
|
@ -455,7 +383,7 @@ pub fn handle_issue_invite(
|
||||||
return Err(JsValue::from(e.to_string()));
|
return Err(JsValue::from(e.to_string()));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let invitation_cred = LoxCredential {
|
let invitation_cred = lox_utils::LoxCredential {
|
||||||
lox_credential: issue_invite_cred.0,
|
lox_credential: issue_invite_cred.0,
|
||||||
bridgeline: None,
|
bridgeline: None,
|
||||||
invitation: Some(issue_invite_cred.1),
|
invitation: Some(issue_invite_cred.1),
|
||||||
|
@ -473,7 +401,7 @@ pub fn handle_issue_invite(
|
||||||
// Separate Trusted Invite from credential prior to passing it to friend
|
// Separate Trusted Invite from credential prior to passing it to friend
|
||||||
#[wasm_bindgen]
|
#[wasm_bindgen]
|
||||||
pub fn prepare_invite(invitation_cred: String) -> String {
|
pub fn prepare_invite(invitation_cred: String) -> String {
|
||||||
let cred: LoxCredential = serde_json::from_str(&invitation_cred).unwrap();
|
let cred: lox_utils::LoxCredential = serde_json::from_str(&invitation_cred).unwrap();
|
||||||
log(&format!(
|
log(&format!(
|
||||||
"Prepared Invitation: {}",
|
"Prepared Invitation: {}",
|
||||||
serde_json::to_string(&cred.invitation).unwrap()
|
serde_json::to_string(&cred.invitation).unwrap()
|
||||||
|
@ -485,7 +413,7 @@ pub fn prepare_invite(invitation_cred: String) -> String {
|
||||||
#[wasm_bindgen]
|
#[wasm_bindgen]
|
||||||
pub fn redeem_invite(invitation: String, lox_pub: String) -> Result<String, JsValue> {
|
pub fn redeem_invite(invitation: String, lox_pub: String) -> Result<String, JsValue> {
|
||||||
let invitation_cred: Invitation = serde_json::from_str(&invitation).unwrap();
|
let invitation_cred: Invitation = serde_json::from_str(&invitation).unwrap();
|
||||||
let pubkeys: PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
let pubkeys: lox_utils::PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
||||||
let redeem_result =
|
let redeem_result =
|
||||||
match redeem_invite::request(&invitation_cred, &pubkeys.invitation_pub, test_today(371)) {
|
match redeem_invite::request(&invitation_cred, &pubkeys.invitation_pub, test_today(371)) {
|
||||||
Ok(redeem_result) => redeem_result,
|
Ok(redeem_result) => redeem_result,
|
||||||
|
@ -494,7 +422,7 @@ pub fn redeem_invite(invitation: String, lox_pub: String) -> Result<String, JsVa
|
||||||
return Err(JsValue::from(e.to_string()));
|
return Err(JsValue::from(e.to_string()));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let req_state = RedeemReqState {
|
let req_state = lox_utils::RedeemReqState {
|
||||||
request: redeem_result.0,
|
request: redeem_result.0,
|
||||||
state: redeem_result.1,
|
state: redeem_result.1,
|
||||||
};
|
};
|
||||||
|
@ -513,8 +441,9 @@ pub fn handle_redeem_invite(
|
||||||
redeem_invite_response: String,
|
redeem_invite_response: String,
|
||||||
lox_pub: String,
|
lox_pub: String,
|
||||||
) -> Result<String, JsValue> {
|
) -> Result<String, JsValue> {
|
||||||
let pubkeys: PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
let pubkeys: lox_utils::PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
||||||
let req_state: RedeemReqState = serde_json::from_str(&redeem_invite_request).unwrap();
|
let req_state: lox_utils::RedeemReqState =
|
||||||
|
serde_json::from_str(&redeem_invite_request).unwrap();
|
||||||
let deserialized_state = req_state.state;
|
let deserialized_state = req_state.state;
|
||||||
let deserialized_response = serde_json::from_str(&redeem_invite_response).unwrap();
|
let deserialized_response = serde_json::from_str(&redeem_invite_response).unwrap();
|
||||||
let redeem_invite_cred = match redeem_invite::handle_response(
|
let redeem_invite_cred = match redeem_invite::handle_response(
|
||||||
|
@ -522,7 +451,7 @@ pub fn handle_redeem_invite(
|
||||||
deserialized_response,
|
deserialized_response,
|
||||||
&pubkeys.lox_pub,
|
&pubkeys.lox_pub,
|
||||||
) {
|
) {
|
||||||
Ok(issue_invite_cred) => LoxCredential {
|
Ok(issue_invite_cred) => lox_utils::LoxCredential {
|
||||||
lox_credential: issue_invite_cred,
|
lox_credential: issue_invite_cred,
|
||||||
bridgeline: None,
|
bridgeline: None,
|
||||||
invitation: None,
|
invitation: None,
|
||||||
|
@ -543,8 +472,8 @@ pub fn handle_redeem_invite(
|
||||||
|
|
||||||
#[wasm_bindgen]
|
#[wasm_bindgen]
|
||||||
pub fn check_blockage(lox_cred: String, lox_pub: String) -> Result<String, JsValue> {
|
pub fn check_blockage(lox_cred: String, lox_pub: String) -> Result<String, JsValue> {
|
||||||
let lox: LoxCredential = serde_json::from_str(&lox_cred).unwrap();
|
let lox: lox_utils::LoxCredential = serde_json::from_str(&lox_cred).unwrap();
|
||||||
let pubkeys: PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
let pubkeys: lox_utils::PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
||||||
let cb_result = match check_blockage::request(&lox.lox_credential, &pubkeys.lox_pub) {
|
let cb_result = match check_blockage::request(&lox.lox_credential, &pubkeys.lox_pub) {
|
||||||
Ok(cb_result) => cb_result,
|
Ok(cb_result) => cb_result,
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
|
@ -552,7 +481,7 @@ pub fn check_blockage(lox_cred: String, lox_pub: String) -> Result<String, JsVal
|
||||||
return Err(JsValue::from(e.to_string()));
|
return Err(JsValue::from(e.to_string()));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let req_state = CheckBlockageReqState {
|
let req_state = lox_utils::CheckBlockageReqState {
|
||||||
request: cb_result.0,
|
request: cb_result.0,
|
||||||
state: cb_result.1,
|
state: cb_result.1,
|
||||||
};
|
};
|
||||||
|
@ -570,7 +499,8 @@ pub fn handle_check_blockage(
|
||||||
check_blockage_request: String,
|
check_blockage_request: String,
|
||||||
check_blockage_response: String,
|
check_blockage_response: String,
|
||||||
) -> Result<String, JsValue> {
|
) -> Result<String, JsValue> {
|
||||||
let req_state: CheckBlockageReqState = serde_json::from_str(&check_blockage_request).unwrap();
|
let req_state: lox_utils::CheckBlockageReqState =
|
||||||
|
serde_json::from_str(&check_blockage_request).unwrap();
|
||||||
let deserialized_state = req_state.state;
|
let deserialized_state = req_state.state;
|
||||||
let deserialized_response = serde_json::from_str(&check_blockage_response).unwrap();
|
let deserialized_response = serde_json::from_str(&check_blockage_response).unwrap();
|
||||||
let migration_cred =
|
let migration_cred =
|
||||||
|
@ -596,8 +526,8 @@ pub fn blockage_migration(
|
||||||
check_migration_cred: String,
|
check_migration_cred: String,
|
||||||
lox_pub: String,
|
lox_pub: String,
|
||||||
) -> Result<String, JsValue> {
|
) -> Result<String, JsValue> {
|
||||||
let lox_cred: LoxCredential = serde_json::from_str(&lox_cred).unwrap();
|
let lox_cred: lox_utils::LoxCredential = serde_json::from_str(&lox_cred).unwrap();
|
||||||
let pubkeys: PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
let pubkeys: lox_utils::PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
||||||
let mig_cred: Migration = serde_json::from_str(&check_migration_cred).unwrap();
|
let mig_cred: Migration = serde_json::from_str(&check_migration_cred).unwrap();
|
||||||
let bm_result = match blockage_migration::request(
|
let bm_result = match blockage_migration::request(
|
||||||
&lox_cred.lox_credential,
|
&lox_cred.lox_credential,
|
||||||
|
@ -611,7 +541,7 @@ pub fn blockage_migration(
|
||||||
return Err(JsValue::from(e.to_string()));
|
return Err(JsValue::from(e.to_string()));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let req_state = BlockageMigReqState {
|
let req_state = lox_utils::BlockageMigReqState {
|
||||||
request: bm_result.0,
|
request: bm_result.0,
|
||||||
state: bm_result.1,
|
state: bm_result.1,
|
||||||
};
|
};
|
||||||
|
@ -630,8 +560,9 @@ pub fn handle_blockage_migration(
|
||||||
blockage_migration_response: String,
|
blockage_migration_response: String,
|
||||||
lox_pub: String,
|
lox_pub: String,
|
||||||
) -> Result<String, JsValue> {
|
) -> Result<String, JsValue> {
|
||||||
let pubkeys: PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
let pubkeys: lox_utils::PubKeys = serde_json::from_str(&lox_pub).unwrap();
|
||||||
let req_state: BlockageMigReqState = serde_json::from_str(&blockage_migration_request).unwrap();
|
let req_state: lox_utils::BlockageMigReqState =
|
||||||
|
serde_json::from_str(&blockage_migration_request).unwrap();
|
||||||
let deserialized_state = req_state.state;
|
let deserialized_state = req_state.state;
|
||||||
let deserialized_response = serde_json::from_str(&blockage_migration_response).unwrap();
|
let deserialized_response = serde_json::from_str(&blockage_migration_response).unwrap();
|
||||||
let lox_cred = match blockage_migration::handle_response(
|
let lox_cred = match blockage_migration::handle_response(
|
||||||
|
@ -639,7 +570,7 @@ pub fn handle_blockage_migration(
|
||||||
deserialized_response,
|
deserialized_response,
|
||||||
&pubkeys.lox_pub,
|
&pubkeys.lox_pub,
|
||||||
) {
|
) {
|
||||||
Ok(lox_cred) => LoxCredential {
|
Ok(lox_cred) => lox_utils::LoxCredential {
|
||||||
lox_credential: lox_cred,
|
lox_credential: lox_cred,
|
||||||
bridgeline: None,
|
bridgeline: None,
|
||||||
invitation: None,
|
invitation: None,
|
||||||
|
|
Loading…
Reference in New Issue