Separate crates for server and client binaries #1
@@ -402,7 +402,7 @@ mod tests {
|
||||
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 unix_time = |time: SystemTime| -> u64 {
|
||||
time.duration_since(SystemTime::UNIX_EPOCH)
|
||||
@@ -413,7 +413,7 @@ mod tests {
|
||||
[0u8; 16],
|
||||
user_key,
|
||||
unix_time(SystemTime::now()),
|
||||
unix_time(SystemTime::now() + Duration::from_secs(30)),
|
||||
unix_time(SystemTime::now() + validity),
|
||||
);
|
||||
|
||||
builder
|
||||
@@ -441,18 +441,43 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
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();
|
||||
assert!(valid_cert
|
||||
.validate(&[ca_pub.fingerprint(Default::default())])
|
||||
.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]
|
||||
async fn routes() -> anyhow::Result<()> {
|
||||
let state = api_state();
|
||||
let valid_cert = user_cert(ca_key(), user_key().public.into());
|
||||
let invalid_cert = user_cert(ca_key2(), 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(), Duration::from_secs(30));
|
||||
let res = put_cert_update(
|
||||
PutCert,
|
||||
State(state.clone()),
|
||||
|
Reference in New Issue
Block a user