feat: rustc and clippy linting
This commit is contained in:
@@ -15,7 +15,7 @@ use arbiter_server::{
|
||||
};
|
||||
use diesel::{ExpressionMethods as _, NullableExpressionMethods as _, QueryDsl as _, insert_into};
|
||||
use diesel_async::RunQueryDsl;
|
||||
use ml_dsa::{KeyGen, MlDsa87, SigningKey, VerifyingKey, signature::Keypair as _};
|
||||
use ml_dsa::{KeyGen, MlDsa87, SigningKey, VerifyingKey, signature::Keypair};
|
||||
|
||||
use super::common::ChannelTransport;
|
||||
|
||||
@@ -27,6 +27,10 @@ fn metadata(name: &str, description: Option<&str>, version: Option<&str>) -> Cli
|
||||
}
|
||||
}
|
||||
|
||||
fn verifying_key(key: &SigningKey<MlDsa87>) -> VerifyingKey<MlDsa87> {
|
||||
<SigningKey<MlDsa87> as Keypair>::verifying_key(key)
|
||||
}
|
||||
|
||||
async fn insert_registered_client(
|
||||
db: &db::DatabasePool,
|
||||
actors: &GlobalActors,
|
||||
@@ -48,7 +52,7 @@ async fn insert_registered_client(
|
||||
.unwrap();
|
||||
let client_id: i32 = insert_into(program_client::table)
|
||||
.values((
|
||||
program_client::public_key.eq(pubkey.encode().to_vec()),
|
||||
program_client::public_key.eq(pubkey.encode().0.to_vec()),
|
||||
program_client::metadata_id.eq(metadata_id),
|
||||
))
|
||||
.returning(program_client::id)
|
||||
@@ -83,9 +87,9 @@ fn sign_client_challenge(
|
||||
|
||||
async fn insert_bootstrap_sentinel_useragent(db: &db::DatabasePool) {
|
||||
let mut conn = db.get().await.unwrap();
|
||||
let sentinel_key = MlDsa87::key_gen(&mut rand::rng())
|
||||
.verifying_key()
|
||||
let sentinel_key = verifying_key(&MlDsa87::key_gen(&mut rand::rng()))
|
||||
.encode()
|
||||
.0
|
||||
.to_vec();
|
||||
|
||||
insert_into(schema::useragent_client::table)
|
||||
@@ -114,7 +118,7 @@ async fn spawn_test_actors(db: &db::DatabasePool) -> GlobalActors {
|
||||
|
||||
#[tokio::test]
|
||||
#[test_log::test]
|
||||
pub async fn test_unregistered_pubkey_rejected() {
|
||||
pub async fn unregistered_pubkey_rejected() {
|
||||
let db = db::create_test_pool().await;
|
||||
|
||||
let (server_transport, mut test_transport) = ChannelTransport::new();
|
||||
@@ -129,7 +133,7 @@ pub async fn test_unregistered_pubkey_rejected() {
|
||||
|
||||
test_transport
|
||||
.send(auth::Inbound::AuthChallengeRequest {
|
||||
pubkey: new_key.verifying_key().into(),
|
||||
pubkey: verifying_key(&new_key).into(),
|
||||
metadata: metadata("client", Some("desc"), Some("1.0.0")),
|
||||
})
|
||||
.await
|
||||
@@ -141,18 +145,18 @@ pub async fn test_unregistered_pubkey_rejected() {
|
||||
|
||||
#[tokio::test]
|
||||
#[test_log::test]
|
||||
pub async fn test_challenge_auth() {
|
||||
pub async fn challenge_auth() {
|
||||
let db = db::create_test_pool().await;
|
||||
let actors = spawn_test_actors(&db).await;
|
||||
|
||||
let new_key = MlDsa87::key_gen(&mut rand::rng());
|
||||
|
||||
insert_registered_client(
|
||||
Box::pin(insert_registered_client(
|
||||
&db,
|
||||
&actors,
|
||||
new_key.verifying_key(),
|
||||
verifying_key(&new_key),
|
||||
&metadata("client", Some("desc"), Some("1.0.0")),
|
||||
)
|
||||
))
|
||||
.await;
|
||||
|
||||
let (server_transport, mut test_transport) = ChannelTransport::new();
|
||||
@@ -165,7 +169,7 @@ pub async fn test_challenge_auth() {
|
||||
// Send challenge request
|
||||
test_transport
|
||||
.send(auth::Inbound::AuthChallengeRequest {
|
||||
pubkey: new_key.verifying_key().into(),
|
||||
pubkey: verifying_key(&new_key).into(),
|
||||
metadata: metadata("client", Some("desc"), Some("1.0.0")),
|
||||
})
|
||||
.await
|
||||
@@ -179,7 +183,7 @@ pub async fn test_challenge_auth() {
|
||||
let challenge = match response {
|
||||
Ok(resp) => match resp {
|
||||
auth::Outbound::AuthChallenge { pubkey, nonce } => (pubkey, nonce),
|
||||
other => panic!("Expected AuthChallenge, got {other:?}"),
|
||||
other @ auth::Outbound::AuthSuccess => panic!("Expected AuthChallenge, got {other:?}"),
|
||||
},
|
||||
Err(err) => panic!("Expected Ok response, got Err({err:?})"),
|
||||
};
|
||||
@@ -208,13 +212,19 @@ pub async fn test_challenge_auth() {
|
||||
|
||||
#[tokio::test]
|
||||
#[test_log::test]
|
||||
pub async fn test_metadata_unchanged_does_not_append_history() {
|
||||
pub async fn metadata_unchanged_does_not_append_history() {
|
||||
let db = db::create_test_pool().await;
|
||||
let actors = spawn_test_actors(&db).await;
|
||||
let new_key = MlDsa87::key_gen(&mut rand::rng());
|
||||
let requested = metadata("client", Some("desc"), Some("1.0.0"));
|
||||
|
||||
insert_registered_client(&db, &actors, new_key.verifying_key(), &requested).await;
|
||||
Box::pin(insert_registered_client(
|
||||
&db,
|
||||
&actors,
|
||||
verifying_key(&new_key),
|
||||
&requested,
|
||||
))
|
||||
.await;
|
||||
|
||||
let props = ClientConnection::new(db.clone(), actors);
|
||||
|
||||
@@ -226,7 +236,7 @@ pub async fn test_metadata_unchanged_does_not_append_history() {
|
||||
|
||||
test_transport
|
||||
.send(auth::Inbound::AuthChallengeRequest {
|
||||
pubkey: new_key.verifying_key().into(),
|
||||
pubkey: verifying_key(&new_key).into(),
|
||||
metadata: requested,
|
||||
})
|
||||
.await
|
||||
@@ -235,7 +245,7 @@ pub async fn test_metadata_unchanged_does_not_append_history() {
|
||||
let response = test_transport.recv().await.unwrap().unwrap();
|
||||
let (pubkey, nonce) = match response {
|
||||
auth::Outbound::AuthChallenge { pubkey, nonce } => (pubkey, nonce),
|
||||
other => panic!("Expected AuthChallenge, got {other:?}"),
|
||||
auth::Outbound::AuthSuccess => panic!("Expected AuthChallenge, got AuthSuccess"),
|
||||
};
|
||||
let signature = sign_client_challenge(&new_key, nonce, &pubkey);
|
||||
test_transport
|
||||
@@ -265,17 +275,17 @@ pub async fn test_metadata_unchanged_does_not_append_history() {
|
||||
|
||||
#[tokio::test]
|
||||
#[test_log::test]
|
||||
pub async fn test_metadata_change_appends_history_and_repoints_binding() {
|
||||
pub async fn metadata_change_appends_history_and_repoints_binding() {
|
||||
let db = db::create_test_pool().await;
|
||||
let actors = spawn_test_actors(&db).await;
|
||||
let new_key = MlDsa87::key_gen(&mut rand::rng());
|
||||
|
||||
insert_registered_client(
|
||||
Box::pin(insert_registered_client(
|
||||
&db,
|
||||
&actors,
|
||||
new_key.verifying_key(),
|
||||
verifying_key(&new_key),
|
||||
&metadata("client", Some("old"), Some("1.0.0")),
|
||||
)
|
||||
))
|
||||
.await;
|
||||
|
||||
let props = ClientConnection::new(db.clone(), actors);
|
||||
@@ -288,7 +298,7 @@ pub async fn test_metadata_change_appends_history_and_repoints_binding() {
|
||||
|
||||
test_transport
|
||||
.send(auth::Inbound::AuthChallengeRequest {
|
||||
pubkey: new_key.verifying_key().into(),
|
||||
pubkey: verifying_key(&new_key).into(),
|
||||
metadata: metadata("client", Some("new"), Some("2.0.0")),
|
||||
})
|
||||
.await
|
||||
@@ -297,14 +307,14 @@ pub async fn test_metadata_change_appends_history_and_repoints_binding() {
|
||||
let response = test_transport.recv().await.unwrap().unwrap();
|
||||
let (pubkey, nonce) = match response {
|
||||
auth::Outbound::AuthChallenge { pubkey, nonce } => (pubkey, nonce),
|
||||
other => panic!("Expected AuthChallenge, got {other:?}"),
|
||||
auth::Outbound::AuthSuccess => panic!("Expected AuthChallenge, got AuthSuccess"),
|
||||
};
|
||||
let signature = sign_client_challenge(&new_key, nonce, &pubkey);
|
||||
test_transport
|
||||
.send(auth::Inbound::AuthChallengeSolution { signature })
|
||||
.await
|
||||
.unwrap();
|
||||
let _ = test_transport.recv().await.unwrap();
|
||||
drop(test_transport.recv().await.unwrap());
|
||||
task.await.unwrap();
|
||||
|
||||
{
|
||||
@@ -352,7 +362,7 @@ pub async fn test_metadata_change_appends_history_and_repoints_binding() {
|
||||
|
||||
#[tokio::test]
|
||||
#[test_log::test]
|
||||
pub async fn test_challenge_auth_rejects_integrity_tag_mismatch() {
|
||||
pub async fn challenge_auth_rejects_integrity_tag_mismatch() {
|
||||
let db = db::create_test_pool().await;
|
||||
let actors = spawn_test_actors(&db).await;
|
||||
|
||||
@@ -374,7 +384,7 @@ pub async fn test_challenge_auth_rejects_integrity_tag_mismatch() {
|
||||
.unwrap();
|
||||
insert_into(program_client::table)
|
||||
.values((
|
||||
program_client::public_key.eq(new_key.verifying_key().encode().to_vec()),
|
||||
program_client::public_key.eq(verifying_key(&new_key).encode().0.to_vec()),
|
||||
program_client::metadata_id.eq(metadata_id),
|
||||
))
|
||||
.execute(&mut conn)
|
||||
@@ -391,7 +401,7 @@ pub async fn test_challenge_auth_rejects_integrity_tag_mismatch() {
|
||||
|
||||
test_transport
|
||||
.send(auth::Inbound::AuthChallengeRequest {
|
||||
pubkey: new_key.verifying_key().into(),
|
||||
pubkey: verifying_key(&new_key).into(),
|
||||
metadata: requested,
|
||||
})
|
||||
.await
|
||||
@@ -401,7 +411,10 @@ pub async fn test_challenge_auth_rejects_integrity_tag_mismatch() {
|
||||
.recv()
|
||||
.await
|
||||
.expect("should receive auth rejection");
|
||||
assert!(matches!(response, Err(auth::Error::IntegrityCheckFailed)));
|
||||
assert!(matches!(
|
||||
response,
|
||||
Err(auth::ClientAuthError::IntegrityCheckFailed)
|
||||
));
|
||||
|
||||
task.await.unwrap();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user