Skip to content

Commit 3c4b8d2

Browse files
committed
Fix tests
1 parent ee61ae0 commit 3c4b8d2

3 files changed

Lines changed: 22 additions & 14 deletions

File tree

crates/signer/src/service.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ use cb_metrics::provider::MetricsProvider;
3535
use eyre::Context;
3636
use headers::{authorization::Bearer, Authorization};
3737
use parking_lot::RwLock as ParkingRwLock;
38-
use rustls::crypto::aws_lc_rs;
38+
use rustls::crypto::{aws_lc_rs, CryptoProvider};
3939
use tokio::sync::RwLock;
4040
use tracing::{debug, error, info, warn};
4141
use uuid::Uuid;
@@ -131,9 +131,11 @@ impl SigningService {
131131
.route_layer(middleware::from_fn(log_request))
132132
.route(STATUS_PATH, get(handle_status));
133133

134-
aws_lc_rs::default_provider()
135-
.install_default()
136-
.map_err(|_| eyre::eyre!("Failed to install TLS provider"))?;
134+
if CryptoProvider::get_default().is_none() {
135+
aws_lc_rs::default_provider()
136+
.install_default()
137+
.map_err(|_| eyre::eyre!("Failed to install TLS provider"))?;
138+
}
137139
let tls_config =
138140
RustlsConfig::from_pem(config.tls_certificates.0, config.tls_certificates.1).await?;
139141

tests/src/utils.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use std::{
22
collections::HashMap,
33
net::{Ipv4Addr, SocketAddr},
4+
path::PathBuf,
45
sync::{Arc, Once},
56
};
67

@@ -20,7 +21,6 @@ use cb_common::{
2021
};
2122
use eyre::Result;
2223
use rcgen::generate_simple_self_signed;
23-
use tempfile::env::temp_dir;
2424

2525
pub fn get_local_address(port: u16) -> String {
2626
format!("http://0.0.0.0:{port}")
@@ -112,7 +112,7 @@ pub fn get_signer_config(loader: SignerLoader) -> SignerConfig {
112112
jwt_auth_fail_limit: DEFAULT_JWT_AUTH_FAIL_LIMIT,
113113
jwt_auth_fail_timeout_seconds: DEFAULT_JWT_AUTH_FAIL_TIMEOUT_SECONDS,
114114
inner: SignerType::Local { loader, store: None },
115-
tls_certificates: temp_dir(),
115+
tls_certificates: PathBuf::new(),
116116
}
117117
}
118118

@@ -121,7 +121,7 @@ pub fn get_start_signer_config(
121121
chain: Chain,
122122
jwts: HashMap<ModuleId, String>,
123123
) -> StartSignerConfig {
124-
let tls_certificates = generate_simple_self_signed(vec!["cb_signer".to_string()])
124+
let tls_certificates = generate_simple_self_signed(vec!["localhost".to_string()])
125125
.map(|x| (x.cert.pem().as_bytes().to_vec(), x.key_pair.serialize_pem().as_bytes().to_vec()))
126126
.expect("Failed to generate TLS certificate");
127127

tests/tests/signer_jwt_auth.rs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use cb_common::{
1111
use cb_signer::service::SigningService;
1212
use cb_tests::utils::{get_signer_config, get_start_signer_config, setup_test_env};
1313
use eyre::Result;
14-
use reqwest::{Response, StatusCode};
14+
use reqwest::{Certificate, Response, StatusCode};
1515
use tracing::info;
1616

1717
const JWT_MODULE: &str = "test-module";
@@ -25,8 +25,10 @@ async fn test_signer_jwt_auth_success() -> Result<()> {
2525

2626
// Run a pubkeys request
2727
let jwt = create_jwt(&module_id, 0, JWT_SECRET)?;
28-
let client = reqwest::Client::new();
29-
let url = format!("http://{}{}", start_config.endpoint, GET_PUBKEYS_PATH);
28+
let client = reqwest::Client::builder()
29+
.add_root_certificate(Certificate::from_pem(&start_config.tls_certificates.0)?)
30+
.build()?;
31+
let url = format!("https://localhost:20100{}", GET_PUBKEYS_PATH);
3032
let response = client.get(&url).bearer_auth(&jwt).send().await?;
3133

3234
// Verify the expected pubkeys are returned
@@ -43,8 +45,10 @@ async fn test_signer_jwt_auth_fail() -> Result<()> {
4345

4446
// Run a pubkeys request - this should fail due to invalid JWT
4547
let jwt = create_jwt(&module_id, 0, "incorrect secret")?;
46-
let client = reqwest::Client::new();
47-
let url = format!("http://{}{}", start_config.endpoint, GET_PUBKEYS_PATH);
48+
let client = reqwest::Client::builder()
49+
.add_root_certificate(Certificate::from_pem(&start_config.tls_certificates.0)?)
50+
.build()?;
51+
let url = format!("https://localhost:20200{}", GET_PUBKEYS_PATH);
4852
let response = client.get(&url).bearer_auth(&jwt).send().await?;
4953
assert!(response.status() == StatusCode::UNAUTHORIZED);
5054
info!(
@@ -63,8 +67,10 @@ async fn test_signer_jwt_rate_limit() -> Result<()> {
6367

6468
// Run as many pubkeys requests as the fail limit
6569
let jwt = create_jwt(&module_id, 0, "incorrect secret")?;
66-
let client = reqwest::Client::new();
67-
let url = format!("http://{}{}", start_config.endpoint, GET_PUBKEYS_PATH);
70+
let client = reqwest::Client::builder()
71+
.add_root_certificate(Certificate::from_pem(&start_config.tls_certificates.0)?)
72+
.build()?;
73+
let url = format!("https://localhost:20300{}", GET_PUBKEYS_PATH);
6874
for _ in 0..start_config.jwt_auth_fail_limit {
6975
let response = client.get(&url).bearer_auth(&jwt).send().await?;
7076
assert!(response.status() == StatusCode::UNAUTHORIZED);

0 commit comments

Comments
 (0)