clean up warnings
This commit is contained in:
parent
a32e36be7e
commit
5cf848f7fe
@ -76,7 +76,7 @@ impl PersistentCredential for AwsBaseCredential {
|
|||||||
access_key_id,
|
access_key_id,
|
||||||
secret_key_enc,
|
secret_key_enc,
|
||||||
nonce
|
nonce
|
||||||
)
|
)
|
||||||
VALUES (?, ?, ?, ?);",
|
VALUES (?, ?, ?, ?);",
|
||||||
id, self.access_key_id, ciphertext, nonce_bytes,
|
id, self.access_key_id, ciphertext, nonce_bytes,
|
||||||
).execute(&mut **txn).await?;
|
).execute(&mut **txn).await?;
|
||||||
@ -203,19 +203,6 @@ mod tests {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_uuid() -> Uuid {
|
|
||||||
Uuid::try_parse("00000000-0000-0000-0000-000000000000").unwrap()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn test_uuid_2() -> Uuid {
|
|
||||||
Uuid::try_parse("ffffffff-ffff-ffff-ffff-ffffffffffff").unwrap()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn test_uuid_random() -> Uuid {
|
|
||||||
let bytes = Crypto::salt();
|
|
||||||
Uuid::from_slice(&bytes[..16]).unwrap()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#[sqlx::test(fixtures("aws_credentials"))]
|
#[sqlx::test(fixtures("aws_credentials"))]
|
||||||
async fn test_load(pool: SqlitePool) {
|
async fn test_load(pool: SqlitePool) {
|
||||||
@ -254,5 +241,5 @@ mod tests {
|
|||||||
|
|
||||||
assert_eq!(&creds().into_credential(), &list[0]);
|
assert_eq!(&creds().into_credential(), &list[0]);
|
||||||
assert_eq!(&creds_2().into_credential(), &list[1]);
|
assert_eq!(&creds_2().into_credential(), &list[1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -112,15 +112,16 @@ impl CredentialRecord {
|
|||||||
Ok(Self::from_parts(row, credential))
|
Ok(Self::from_parts(row, credential))
|
||||||
}
|
}
|
||||||
|
|
||||||
// pub async fn load(id: &Uuid, crypto: &Crypto, pool: &SqlitePool) -> Result<Self, LoadCredentialsError> {
|
#[cfg(test)]
|
||||||
// let row: CredentialRow = sqlx::query_as("SELECT * FROM credentials WHERE id = ?")
|
pub async fn load(id: &Uuid, crypto: &Crypto, pool: &SqlitePool) -> Result<Self, LoadCredentialsError> {
|
||||||
// .bind(id)
|
let row: CredentialRow = sqlx::query_as("SELECT * FROM credentials WHERE id = ?")
|
||||||
// .fetch_optional(pool)
|
.bind(id)
|
||||||
// .await?
|
.fetch_optional(pool)
|
||||||
// .ok_or(LoadCredentialsError::NoCredentials)?;
|
.await?
|
||||||
|
.ok_or(LoadCredentialsError::NoCredentials)?;
|
||||||
|
|
||||||
// Self::load_credential(row, crypto, pool).await
|
Self::load_credential(row, crypto, pool).await
|
||||||
// }
|
}
|
||||||
|
|
||||||
pub async fn load_by_name(name: &str, crypto: &Crypto, pool: &SqlitePool) -> Result<Self, LoadCredentialsError> {
|
pub async fn load_by_name(name: &str, crypto: &Crypto, pool: &SqlitePool) -> Result<Self, LoadCredentialsError> {
|
||||||
let row: CredentialRow = sqlx::query_as("SELECT * FROM credentials WHERE name = ?")
|
let row: CredentialRow = sqlx::query_as("SELECT * FROM credentials WHERE name = ?")
|
||||||
@ -134,7 +135,7 @@ impl CredentialRecord {
|
|||||||
|
|
||||||
pub async fn load_default(credential_type: &str, crypto: &Crypto, pool: &SqlitePool) -> Result<Self, LoadCredentialsError> {
|
pub async fn load_default(credential_type: &str, crypto: &Crypto, pool: &SqlitePool) -> Result<Self, LoadCredentialsError> {
|
||||||
let row: CredentialRow = sqlx::query_as(
|
let row: CredentialRow = sqlx::query_as(
|
||||||
"SELECT * FROM credentials
|
"SELECT * FROM credentials
|
||||||
WHERE credential_type = ? AND is_default = 1"
|
WHERE credential_type = ? AND is_default = 1"
|
||||||
).bind(credential_type)
|
).bind(credential_type)
|
||||||
.fetch_optional(pool)
|
.fetch_optional(pool)
|
||||||
@ -419,7 +420,7 @@ mod uuid_tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn test_serialize_deserialize_uuid() {
|
fn test_serialize_deserialize_uuid() {
|
||||||
let buf = Crypto::salt();
|
let buf = Crypto::salt();
|
||||||
let expected = UuidWrapper{
|
let expected = UuidWrapper{
|
||||||
id: Uuid::from_slice(&buf[..16]).unwrap()
|
id: Uuid::from_slice(&buf[..16]).unwrap()
|
||||||
};
|
};
|
||||||
let serialized = serde_json::to_string(&expected).unwrap();
|
let serialized = serde_json::to_string(&expected).unwrap();
|
||||||
|
@ -99,7 +99,7 @@ impl SshKey {
|
|||||||
let row = sqlx::query!(
|
let row = sqlx::query!(
|
||||||
"SELECT c.name
|
"SELECT c.name
|
||||||
FROM credentials c
|
FROM credentials c
|
||||||
JOIN ssh_credentials s
|
JOIN ssh_credentials s
|
||||||
ON s.id = c.id
|
ON s.id = c.id
|
||||||
WHERE s.public_key = ?",
|
WHERE s.public_key = ?",
|
||||||
pubkey
|
pubkey
|
||||||
@ -168,7 +168,7 @@ impl PersistentCredential for SshKey {
|
|||||||
let nonce = XNonce::clone_from_slice(&row.nonce);
|
let nonce = XNonce::clone_from_slice(&row.nonce);
|
||||||
let privkey_bytes = crypto.decrypt(&nonce, &row.private_key_enc)?;
|
let privkey_bytes = crypto.decrypt(&nonce, &row.private_key_enc)?;
|
||||||
|
|
||||||
|
|
||||||
let algorithm = Algorithm::new(&row.algorithm)
|
let algorithm = Algorithm::new(&row.algorithm)
|
||||||
.map_err(|_| LoadCredentialsError::InvalidData)?;
|
.map_err(|_| LoadCredentialsError::InvalidData)?;
|
||||||
let public_key = PublicKey::from_bytes(&row.public_key)
|
let public_key = PublicKey::from_bytes(&row.public_key)
|
||||||
@ -298,7 +298,6 @@ fn deserialize_algorithm<'de, D>(deserializer: D) -> Result<Algorithm, D::Error>
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use std::fs::{self, File};
|
use std::fs::{self, File};
|
||||||
use ssh_key::Fingerprint;
|
|
||||||
use sqlx::types::uuid::uuid;
|
use sqlx::types::uuid::uuid;
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
@ -341,7 +340,7 @@ mod tests {
|
|||||||
let k = rsa_plain();
|
let k = rsa_plain();
|
||||||
assert_eq!(k.algorithm.as_str(), "ssh-rsa");
|
assert_eq!(k.algorithm.as_str(), "ssh-rsa");
|
||||||
assert_eq!(&k.comment, "hello world");
|
assert_eq!(&k.comment, "hello world");
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
k.public_key.fingerprint(Default::default()),
|
k.public_key.fingerprint(Default::default()),
|
||||||
k.private_key.fingerprint(Default::default()),
|
k.private_key.fingerprint(Default::default()),
|
||||||
@ -359,7 +358,7 @@ mod tests {
|
|||||||
let k = rsa_enc();
|
let k = rsa_enc();
|
||||||
assert_eq!(k.algorithm.as_str(), "ssh-rsa");
|
assert_eq!(k.algorithm.as_str(), "ssh-rsa");
|
||||||
assert_eq!(&k.comment, "hello world");
|
assert_eq!(&k.comment, "hello world");
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
k.public_key.fingerprint(Default::default()),
|
k.public_key.fingerprint(Default::default()),
|
||||||
k.private_key.fingerprint(Default::default()),
|
k.private_key.fingerprint(Default::default()),
|
||||||
@ -377,7 +376,7 @@ mod tests {
|
|||||||
let k = ed25519_plain();
|
let k = ed25519_plain();
|
||||||
assert_eq!(k.algorithm.as_str(),"ssh-ed25519");
|
assert_eq!(k.algorithm.as_str(),"ssh-ed25519");
|
||||||
assert_eq!(&k.comment, "hello world");
|
assert_eq!(&k.comment, "hello world");
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
k.public_key.fingerprint(Default::default()),
|
k.public_key.fingerprint(Default::default()),
|
||||||
k.private_key.fingerprint(Default::default()),
|
k.private_key.fingerprint(Default::default()),
|
||||||
@ -395,7 +394,7 @@ mod tests {
|
|||||||
let k = ed25519_enc();
|
let k = ed25519_enc();
|
||||||
assert_eq!(k.algorithm.as_str(), "ssh-ed25519");
|
assert_eq!(k.algorithm.as_str(), "ssh-ed25519");
|
||||||
assert_eq!(&k.comment, "hello world");
|
assert_eq!(&k.comment, "hello world");
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
k.public_key.fingerprint(Default::default()),
|
k.public_key.fingerprint(Default::default()),
|
||||||
k.private_key.fingerprint(Default::default()),
|
k.private_key.fingerprint(Default::default()),
|
||||||
@ -447,7 +446,7 @@ mod tests {
|
|||||||
async fn test_load_db(pool: SqlitePool) {
|
async fn test_load_db(pool: SqlitePool) {
|
||||||
let crypto = Crypto::fixed();
|
let crypto = Crypto::fixed();
|
||||||
let id = uuid!("11111111-1111-1111-1111-111111111111");
|
let id = uuid!("11111111-1111-1111-1111-111111111111");
|
||||||
let k = SshKey::load(&id, &crypto, &pool).await
|
SshKey::load(&id, &crypto, &pool).await
|
||||||
.expect("Failed to load SSH key from database");
|
.expect("Failed to load SSH key from database");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,21 +44,23 @@ pub async fn load_bytes(pool: &SqlitePool, name: &str) -> Result<Option<Vec<u8>>
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// pub async fn delete(pool: &SqlitePool, name: &str) -> Result<(), sqlx::Error> {
|
// we don't have a need for this right now, but we will some day
|
||||||
// sqlx::query!("DELETE FROM kv WHERE name = ?", name)
|
#[cfg(test)]
|
||||||
// .execute(pool)
|
pub async fn delete(pool: &SqlitePool, name: &str) -> Result<(), sqlx::Error> {
|
||||||
// .await?;
|
sqlx::query!("DELETE FROM kv WHERE name = ?", name)
|
||||||
// Ok(())
|
.execute(pool)
|
||||||
// }
|
.await?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
pub async fn delete_multi(pool: &SqlitePool, names: &[&str]) -> Result<(), sqlx::Error> {
|
pub async fn delete_multi(pool: &SqlitePool, names: &[&str]) -> Result<(), sqlx::Error> {
|
||||||
let placeholder = names.iter()
|
let placeholder = names.iter()
|
||||||
.map(|_| "?")
|
.map(|_| "?")
|
||||||
.collect::<Vec<&str>>()
|
.collect::<Vec<&str>>()
|
||||||
.join(",");
|
.join(",");
|
||||||
let query = format!("DELETE FROM kv WHERE name IN ({})", placeholder);
|
let query = format!("DELETE FROM kv WHERE name IN ({})", placeholder);
|
||||||
|
|
||||||
let mut q = sqlx::query(&query);
|
let mut q = sqlx::query(&query);
|
||||||
for name in names {
|
for name in names {
|
||||||
q = q.bind(name);
|
q = q.bind(name);
|
||||||
@ -83,7 +85,7 @@ macro_rules! load_bytes_multi {
|
|||||||
(
|
(
|
||||||
// ...with one item for each repetition of $name
|
// ...with one item for each repetition of $name
|
||||||
$(
|
$(
|
||||||
// load_bytes returns Result<Option<_>>, the Result is handled by
|
// load_bytes returns Result<Option<_>>, the Result is handled by
|
||||||
// the ? and we match on the Option
|
// the ? and we match on the Option
|
||||||
match crate::kv::load_bytes($pool, $name).await? {
|
match crate::kv::load_bytes($pool, $name).await? {
|
||||||
Some(v) => v,
|
Some(v) => v,
|
||||||
@ -187,7 +189,7 @@ mod tests {
|
|||||||
async fn test_delete(pool: SqlitePool) {
|
async fn test_delete(pool: SqlitePool) {
|
||||||
delete(&pool, "test_bytes").await
|
delete(&pool, "test_bytes").await
|
||||||
.expect("Failed to delete data");
|
.expect("Failed to delete data");
|
||||||
|
|
||||||
let loaded = load_bytes(&pool, "test_bytes").await
|
let loaded = load_bytes(&pool, "test_bytes").await
|
||||||
.expect("Failed to load data");
|
.expect("Failed to load data");
|
||||||
assert_eq!(loaded, None);
|
assert_eq!(loaded, None);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user