Add Lox-utils
This commit is contained in:
parent
e65c16ab0b
commit
af9fc6dfd1
|
@ -0,0 +1,26 @@
|
|||
[package]
|
||||
name = "lox-utils"
|
||||
version = "0.1.0"
|
||||
authors = ["The Tor Project, Inc.", "Lindsey Tulloch <onyinyang@torproject.org"]
|
||||
edition = "2021"
|
||||
rust-version = "1.65"
|
||||
homepage = "https://gitlab.torproject.org/tpo/anti-censorship/lox/-/wikis/home"
|
||||
description = "General helpers used by Lox"
|
||||
keywords = ["tor", "lox"]
|
||||
# We must put *something* here and this will do
|
||||
categories = ["rust-patterns"]
|
||||
repository = "https://gitlab.torproject.org/tpo/anti-censorship/lox.git/"
|
||||
|
||||
[dependencies]
|
||||
lox = {path = "../lox-library", version = "0.1.0"}
|
||||
serde = "1"
|
||||
serde_with = "3.0.0"
|
||||
|
||||
|
||||
[features]
|
||||
full = []
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
all-features = true
|
||||
rustdoc-args = ["--cfg", "docsrs"]
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
use lox::IssuerPubKey;
|
||||
use lox::proto;
|
||||
use lox::cred::{Lox, Invitation};
|
||||
use lox::bridge_table::{ENC_BUCKET_BYTES, BridgeLine};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_with::{serde_as};
|
||||
|
||||
#[derive(Deserialize, Serialize)]
|
||||
pub struct OpenReqState {
|
||||
pub request: proto::open_invite::Request,
|
||||
pub state:proto::open_invite::State,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize)]
|
||||
pub struct TrustReqState {
|
||||
pub request: proto::trust_promotion::Request,
|
||||
pub state:proto::trust_promotion::State,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize)]
|
||||
pub struct MigReqState {
|
||||
pub request: proto::migration::Request,
|
||||
pub state:proto::migration::State,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize)]
|
||||
pub struct LevelupReqState {
|
||||
pub request: proto::level_up::Request,
|
||||
pub state:proto::level_up::State,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize)]
|
||||
pub struct IssueInviteReqState {
|
||||
pub request: proto::issue_invite::Request,
|
||||
pub state:proto::issue_invite::State,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize)]
|
||||
pub struct RedeemReqState {
|
||||
pub request: proto::redeem_invite::Request,
|
||||
pub state:proto::redeem_invite::State,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize)]
|
||||
pub struct CheckBlockageReqState {
|
||||
pub request: proto::check_blockage::Request,
|
||||
pub state:proto::check_blockage::State,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize)]
|
||||
pub struct BlockageMigReqState {
|
||||
pub request: proto::blockage_migration::Request,
|
||||
pub state:proto::blockage_migration::State,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
pub struct PubKeys {
|
||||
pub lox_pub: IssuerPubKey,
|
||||
pub migration_pub: IssuerPubKey,
|
||||
pub migrationkey_pub: IssuerPubKey,
|
||||
pub reachability_pub: IssuerPubKey,
|
||||
pub 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)]
|
||||
pub struct LoxCredential {
|
||||
pub lox_credential: Lox,
|
||||
pub bridgeline: Option<BridgeLine>,
|
||||
pub invitation: Option<Invitation>,
|
||||
}
|
Loading…
Reference in New Issue