Skip to content

Commit 020dc62

Browse files
committed
cli: honor env auth for node key exchange
1 parent e2e5be3 commit 020dc62

1 file changed

Lines changed: 59 additions & 18 deletions

File tree

crates/cli/src/main.rs

Lines changed: 59 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1522,36 +1522,77 @@ async fn main() -> Result<()> {
15221522
);
15231523
}
15241524
KeyCommands::Fetch { node_id, json } => {
1525-
let (api_base, auth_header) = resolve_user_auth()?;
1526-
let token = auth_header.strip_prefix("Bearer ").unwrap_or(&auth_header);
1527-
let platform = PlatformClient::new(&api_base).with_token(token);
1528-
let registry = prism_client::node_registry::NodeRegistryClient::new(&platform);
1529-
let response = registry.get_public_key(&node_id).await?;
1525+
let (api_base, auth) = resolve_agent_auth()?;
1526+
let client = reqwest::Client::builder()
1527+
.timeout(Duration::from_secs(30))
1528+
.build()?;
1529+
let response: serde_json::Value = auth
1530+
.apply(client.get(format!("{api_base}/nodes/{node_id}/public-key")))
1531+
.send()
1532+
.await?
1533+
.error_for_status()?
1534+
.json()
1535+
.await?;
15301536
if json {
15311537
println!("{}", serde_json::to_string_pretty(&response)?);
15321538
} else {
1533-
println!("Node: {}", response.name);
1534-
println!("Node ID: {}", response.node_id);
1535-
println!("Algorithm: {}", response.algorithm);
1536-
println!("Public key: {}", response.public_key);
1539+
println!(
1540+
"Node: {}",
1541+
value_string(&response, &["name"]).unwrap_or("unknown")
1542+
);
1543+
println!(
1544+
"Node ID: {}",
1545+
value_string(&response, &["node_id", "id"]).unwrap_or(&node_id)
1546+
);
1547+
println!(
1548+
"Algorithm: {}",
1549+
value_string(&response, &["algorithm"]).unwrap_or("x25519")
1550+
);
1551+
println!(
1552+
"Public key: {}",
1553+
value_string(&response, &["public_key"]).unwrap_or("")
1554+
);
15371555
}
15381556
}
15391557
KeyCommands::Exchange { node_id, json } => {
15401558
let (_secret, public) =
15411559
prism_node::crypto::load_or_generate_key(&paths.state_dir)?;
15421560
let our_public_key = prism_node::crypto::encode_public_key(&public);
1543-
let (api_base, auth_header) = resolve_user_auth()?;
1544-
let token = auth_header.strip_prefix("Bearer ").unwrap_or(&auth_header);
1545-
let platform = PlatformClient::new(&api_base).with_token(token);
1546-
let registry = prism_client::node_registry::NodeRegistryClient::new(&platform);
1547-
let response = registry.exchange_key(&node_id, &our_public_key).await?;
1561+
let (api_base, auth) = resolve_agent_auth()?;
1562+
let client = reqwest::Client::builder()
1563+
.timeout(Duration::from_secs(30))
1564+
.build()?;
1565+
let response: serde_json::Value = auth
1566+
.apply(client.post(format!("{api_base}/nodes/{node_id}/exchange-key")))
1567+
.json(&serde_json::json!({
1568+
"public_key": our_public_key,
1569+
}))
1570+
.send()
1571+
.await?
1572+
.error_for_status()?
1573+
.json()
1574+
.await?;
15481575
if json {
15491576
println!("{}", serde_json::to_string_pretty(&response)?);
15501577
} else {
1551-
println!("Target node ID: {}", response.target_node_id);
1552-
println!("Algorithm: {}", response.algorithm);
1553-
println!("Target public key: {}", response.target_public_key);
1554-
println!("Public key sent: {}", response.your_public_key_received);
1578+
println!(
1579+
"Target node ID: {}",
1580+
value_string(&response, &["target_node_id", "node_id", "id"])
1581+
.unwrap_or(&node_id)
1582+
);
1583+
println!(
1584+
"Algorithm: {}",
1585+
value_string(&response, &["algorithm"]).unwrap_or("x25519")
1586+
);
1587+
println!(
1588+
"Target public key: {}",
1589+
value_string(&response, &["target_public_key", "public_key"])
1590+
.unwrap_or("")
1591+
);
1592+
println!(
1593+
"Public key sent: {}",
1594+
value_string(&response, &["your_public_key_received"]).unwrap_or("")
1595+
);
15551596
}
15561597
}
15571598
},

0 commit comments

Comments
 (0)