Skip to content

Commit 4a4b2a8

Browse files
committed
feat: Populate codebase
1 parent 8d52284 commit 4a4b2a8

79 files changed

Lines changed: 9315 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Cargo.lock

Lines changed: 3537 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
[workspace]
2+
members = [
3+
"./lambda-auth",
4+
"./lambda-sdk/*",
5+
"./lambda-lib",
6+
"./*/crates/*",
7+
]
8+
9+
default-members = [
10+
"./lambda-auth",
11+
"./lambda-sdk/*",
12+
"./*/crates/*",
13+
]
14+
15+
[workspace.dependencies]
16+
lambda-auth.path = "./lambda-auth"
17+
lambda-sdk.path = "./lambda-sdk/lambda-sdk"
18+
lambda-rt.path = "./lambda-sdk/lambda-rt"
19+
20+
actix-web = { version = "4.3", default-features = false, features = ["compress-brotli", "compress-gzip", "compress-zstd", "rustls"] }
21+
anyhow = { version = "1", default-features = false, features = ["std"] }
22+
aes-gcm = { version = "0.10.1", default-features = false, features = ["aes", "std", "zeroize"] }
23+
argon2 = { version = "0.5", default-features = false }
24+
bytes = { version = "1.4", default-features = false, features = ["std"] }
25+
clap = { version = "4.3", features = ["derive"] }
26+
data-encoding = { version = "2.3", default-features = false, features = ["alloc"] }
27+
ed25519-dalek = { version = "2.0.0-rc.2", default-features = false, features = ["serde", "std", "zeroize"] }
28+
hkdf = { version = "0.12.3", default-features = false, features = ["std"] }
29+
opaque-ke = { version = "3.0.0-pre.2", default-features = false, features = ["argon2", "serde", "std", "ristretto255-voprf"] }
30+
postcard = { version = "1", default-features = false, features = ["alloc"] }
31+
rand = { version = "0.8.5", default-features = false }
32+
rand_core = { version = "0.6.4", default-features = false, features = ["getrandom"] }
33+
reqwest = { version = "0.11.18", default-features = false, features = ["brotli", "deflate", "gzip", "rustls-tls"] }
34+
serde = { version = "1", default-features = false }
35+
sha2 = { version = "0.10.7", default-features = false }
36+
sqlx = { version = "0.7.0-alpha.3", default-features = false, features = ["postgres", "runtime-tokio-rustls"] }
37+
subtle = { version = "2.4", default-features = false }
38+
time = { version = "0.3.21", default-features = false, features = ["serde"] }
39+
thiserror = { version = "1", default-features = false }
40+
tokio = { version = "1.28", default-features = false }
41+
toml = { version = "0.7.3", default-features = false, features = ["parse"] }
42+
wasmtime = { version = "9", default-features = false }
43+
zeroize = { version = "1.6", default-features = false, features = ["alloc"] }
44+
45+
[patch.crates-io]
46+
opaque-ke = { git = "https://github.com/facebook/opaque-ke", revision = "deb7ca3dc0984e7e7c52b86c7cdfca85b7036d41" }
47+
48+
[profile.release]
49+
lto = "fat"
50+
opt-level = 3

Lambda_Lib.http

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
POST http://localhost:8080/service/lambda_lib
2+
Authorization: EwR1c2Vyzh+jAQc5CaTy5RMAAAAI7v8nG4TGKJkC9OV/zpmEFwRBD+OjVXngnIlJmFCkYV3OaOT+qsejFIXx2cFULAGvehke1d5Tm+0f8cjmPgIK
3+
4+
123
5+
6+
> {%
7+
client.assert(response.status == 200);
8+
%}

config.toml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
[database]
2+
host = "192.168.99.2"
3+
port = 5432
4+
database = "lambda_stack"
5+
6+
[global.requests]
7+
max_concurrent = 512
8+
9+
[global.instances]
10+
min_pool_size = 4
11+
max_idle_pool_size = 32
12+
13+
[[bind]]
14+
host = "localhost"
15+
port = 8080
16+
17+
[[module]]
18+
id = "lambda_lib"
19+
path = "./target/wasm32-unknown-unknown/release/lambda_lib.wasm"
20+
21+
[[route]]
22+
path = "lambda_lib"
23+
module = "lambda_lib"

justfile

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
set windows-shell := ["cmd", "/c"]
2+
3+
alias b := build
4+
alias r := release
5+
6+
update:
7+
cargo update
8+
9+
fix:
10+
cargo fix --allow-dirty --allow-staged
11+
cargo fmt
12+
13+
fmt:
14+
cargo fmt
15+
16+
lib: update
17+
cargo build --release -p lambda-lib --target wasm32-unknown-unknown
18+
19+
build: update
20+
cargo build
21+
22+
release: update
23+
cargo build --release

lambda-auth/Cargo.toml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
[package]
2+
name = "lambda-auth"
3+
version = "0.1.0"
4+
edition = "2021"
5+
6+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7+
8+
[dependencies.actix-web]
9+
workspace = true
10+
features = ["macros"]
11+
12+
[dependencies.aes-gcm]
13+
workspace = true
14+
15+
[dependencies.argon2]
16+
workspace = true
17+
18+
[dependencies.data-encoding]
19+
workspace = true
20+
21+
[dependencies.ed25519-dalek]
22+
workspace = true
23+
24+
[dependencies.hkdf]
25+
workspace = true
26+
27+
[dependencies.opaque-ke]
28+
workspace = true
29+
30+
[dependencies.postcard]
31+
workspace = true
32+
33+
[dependencies.rand_core]
34+
workspace = true
35+
36+
[dependencies.serde]
37+
workspace = true
38+
features = ["derive", "std"]
39+
40+
[dependencies.sha2]
41+
workspace = true
42+
43+
[dependencies.subtle]
44+
workspace = true
45+
46+
[dependencies.thiserror]
47+
workspace = true
48+
49+
[dependencies.time]
50+
workspace = true
51+
52+
[dependencies.zeroize]
53+
workspace = true
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
[package]
2+
name = "lambda-auth-gen-keys"
3+
version = "0.1.0"
4+
edition = "2021"
5+
6+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7+
8+
[dependencies.anyhow]
9+
workspace = true
10+
11+
[dependencies.clap]
12+
workspace = true
13+
14+
[dependencies.ed25519-dalek]
15+
workspace = true
16+
features = ["std", "rand_core"]
17+
18+
[dependencies.lambda-auth]
19+
workspace = true
20+
21+
[dependencies.opaque-ke]
22+
workspace = true
23+
24+
[dependencies.postcard]
25+
workspace = true
26+
27+
[dependencies.rand]
28+
workspace = true
29+
30+
[dependencies.zeroize]
31+
workspace = true
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
use clap::Parser;
2+
3+
#[derive(Parser)]
4+
pub enum Args {
5+
Auth {
6+
#[clap(short, long, default_value = "auth.key")]
7+
output: String,
8+
},
9+
Signing {
10+
#[clap(long, default_value = "signing.key")]
11+
signing: String,
12+
#[clap(long, default_value = "verifying.key")]
13+
verifying: String,
14+
},
15+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#![forbid(rust_2018_compatibility, deprecated_in_future)]
2+
#![deny(rust_2021_compatibility, warnings)]
3+
4+
use std::fs;
5+
6+
use clap::Parser as _;
7+
use ed25519_dalek::{SecretKey, SigningKey};
8+
use opaque_ke::ServerSetup;
9+
use rand::{rngs::OsRng, Fill as _};
10+
use zeroize::Zeroizing;
11+
12+
use lambda_auth::AuthCipherSuite;
13+
14+
use self::args::Args;
15+
16+
mod args;
17+
18+
fn main() -> anyhow::Result<()> {
19+
let args: Args = Args::parse();
20+
21+
match args {
22+
Args::Auth { output } => {
23+
fs::write(
24+
output,
25+
postcard::to_allocvec(
26+
ServerSetup::<AuthCipherSuite>::new(&mut OsRng)
27+
.keypair()
28+
.private(),
29+
)?,
30+
)?;
31+
}
32+
Args::Signing {
33+
signing: output,
34+
verifying,
35+
} => {
36+
let signing_key: Zeroizing<SecretKey> = {
37+
let mut signing_key: Zeroizing<SecretKey> = Zeroizing::new(SecretKey::default());
38+
39+
signing_key.try_fill(&mut OsRng)?;
40+
41+
signing_key
42+
};
43+
44+
fs::write(output, signing_key.as_slice())?;
45+
46+
fs::write(
47+
verifying,
48+
SigningKey::from_bytes(&*signing_key)
49+
.verifying_key()
50+
.to_bytes(),
51+
)?;
52+
}
53+
}
54+
55+
Ok(())
56+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
[package]
2+
name = "lambda-auth-init"
3+
version = "0.1.0"
4+
edition = "2021"
5+
6+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7+
8+
[dependencies.anyhow]
9+
workspace = true
10+
11+
[dependencies.clap]
12+
workspace = true
13+
14+
[dependencies.lambda-auth]
15+
workspace = true
16+
17+
[dependencies.opaque-ke]
18+
workspace = true
19+
20+
[dependencies.postcard]
21+
workspace = true
22+
23+
[dependencies.sqlx]
24+
workspace = true
25+
26+
[dependencies.tokio]
27+
workspace = true
28+
features = ["io-std", "io-util", "net", "macros", "sync", "rt-multi-thread"]
29+
30+
[dependencies.rand_core]
31+
workspace = true
32+
33+
[dependencies.zeroize]
34+
workspace = true

0 commit comments

Comments
 (0)