Separate crates for server and client binaries #1

Merged
shimun merged 28 commits from split_components into master 2023-07-09 19:27:21 +02:00
19 changed files with 429 additions and 335 deletions
Showing only changes of commit cb85a87fee - Show all commits

View File

@@ -402,7 +402,7 @@ mod tests {
Ed25519Keypair::from_seed(&[1u8; 32]) Ed25519Keypair::from_seed(&[1u8; 32])
} }
fn user_cert(ca: Ed25519Keypair, user_key: PublicKey) -> Certificate { fn user_cert(ca: Ed25519Keypair, user_key: PublicKey, validity: Duration) -> Certificate {
let ca_private: PrivateKey = ca.into(); let ca_private: PrivateKey = ca.into();
let unix_time = |time: SystemTime| -> u64 { let unix_time = |time: SystemTime| -> u64 {
time.duration_since(SystemTime::UNIX_EPOCH) time.duration_since(SystemTime::UNIX_EPOCH)
@@ -413,7 +413,7 @@ mod tests {
[0u8; 16], [0u8; 16],
user_key, user_key,
unix_time(SystemTime::now()), unix_time(SystemTime::now()),
unix_time(SystemTime::now() + Duration::from_secs(30)), unix_time(SystemTime::now() + validity),
); );
builder builder
@@ -441,18 +441,43 @@ mod tests {
#[test] #[test]
fn test_certificate() { fn test_certificate() {
let valid_cert = user_cert(ca_key(), user_key().public.into()); let valid_cert = user_cert(ca_key(), user_key().public.into(), Duration::from_secs(30));
let ca_pub: PublicKey = ca_pub(); let ca_pub: PublicKey = ca_pub();
assert!(valid_cert assert!(valid_cert
.validate(&[ca_pub.fingerprint(Default::default())]) .validate(&[ca_pub.fingerprint(Default::default())])
.is_ok()); .is_ok());
} }
#[tokio::test]
async fn update_cert() {
let state = api_state();
let ca = ca_key();
let user: PublicKey = user_key().public.into();
let (cert_first, cert_newer, cert_outdated) = {
(
user_cert(ca.clone(), user.clone(), Duration::from_secs(30)),
user_cert(ca.clone(), user.clone(), Duration::from_secs(60)),
user_cert(ca.clone(), user.clone(), Duration::from_secs(3)),
)
};
let res = put_cert_update(PutCert, State(state.clone()), CertificateBody(cert_first)).await;
assert!(res.is_ok());
let res = put_cert_update(PutCert, State(state.clone()), CertificateBody(cert_newer)).await;
assert!(res.is_ok());
let res = put_cert_update(
PutCert,
State(state.clone()),
CertificateBody(cert_outdated),
)
.await;
assert!(res.is_err());
}
#[tokio::test] #[tokio::test]
async fn routes() -> anyhow::Result<()> { async fn routes() -> anyhow::Result<()> {
let state = api_state(); let state = api_state();
let valid_cert = user_cert(ca_key(), user_key().public.into()); let valid_cert = user_cert(ca_key(), user_key().public.into(), Duration::from_secs(30));
let invalid_cert = user_cert(ca_key2(), user_key().public.into()); let invalid_cert = user_cert(ca_key2(), user_key().public.into(), Duration::from_secs(30));
let res = put_cert_update( let res = put_cert_update(
PutCert, PutCert,
State(state.clone()), State(state.clone()),