From d1356ef345288f49eb65fc3b2ac2ab8cd4e31b3c Mon Sep 17 00:00:00 2001 From: ivanlele Date: Mon, 9 Nov 2026 11:43:19 +0200 Subject: [PATCH] remove the disclosed key check --- service/src/handlers/mod.rs | 20 +------------------- service/src/handlers/tests.rs | 16 ---------------- 2 files changed, 1 insertion(+), 35 deletions(-) diff --git a/service/src/handlers/mod.rs b/service/src/handlers/mod.rs index 9b0e4e7..99a4d5b 100644 --- a/service/src/handlers/mod.rs +++ b/service/src/handlers/mod.rs @@ -12,25 +12,12 @@ use axum::{ }; use serde::Serialize; use serde_json::json; -use simplicity::elements::secp256k1_zkp::{All, PublicKey, Secp256k1, SecretKey, XOnlyPublicKey}; +use simplicity::elements::secp256k1_zkp::{All, PublicKey, Secp256k1, SecretKey}; use simplicity_unchained_core::BitcoinNetwork; use tokio::sync::Semaphore; use crate::work::{MAX_BLOCKING_JOBS, MAX_BODY_BYTES}; -// Public identity of the disclosed demo key; also reject its negation (same Taproot identity). -const DISCLOSED_DEMO_KEY: &str = "3523982d58e94be3b735731593f8225043880d53727235b566c515d24a0f7baf"; - -fn validate_signing_identity(public_key: XOnlyPublicKey) -> Result<(), String> { - if public_key.to_string() == DISCLOSED_DEMO_KEY { - return Err( - "The publicly disclosed demo signing key is not allowed; provision a new private key" - .to_string(), - ); - } - Ok(()) -} - async fn version() -> impl IntoResponse { Json(json!({ "version": env!("CARGO_PKG_VERSION") })) } @@ -99,11 +86,6 @@ impl SignerState { let secret_key = SecretKey::from_slice(&secret_key_bytes) .map_err(|e| format!("Invalid private key: {}", e))?; let secp = Secp256k1::new(); - validate_signing_identity( - PublicKey::from_secret_key(&secp, &secret_key) - .x_only_public_key() - .0, - )?; Ok(Self { secret_key, secp: Arc::new(secp), diff --git a/service/src/handlers/tests.rs b/service/src/handlers/tests.rs index 3ff5f7b..1fde132 100644 --- a/service/src/handlers/tests.rs +++ b/service/src/handlers/tests.rs @@ -1,5 +1,3 @@ -use std::str::FromStr; - use super::*; use axum::{ body::Body, @@ -14,20 +12,6 @@ fn test_state() -> SignerState { SignerState::new(&hex::encode([0xcd; 32]), BitcoinNetwork::Testnet4).unwrap() } -#[test] -fn disclosed_demo_identity_is_rejected_for_both_parities() { - for prefix in ["02", "03"] { - let public_key = PublicKey::from_str(&format!("{prefix}{DISCLOSED_DEMO_KEY}")).unwrap(); - assert!( - validate_signing_identity(public_key.x_only_public_key().0) - .unwrap_err() - .contains("publicly disclosed demo signing key") - ); - } - assert!(SignerState::new("", BitcoinNetwork::Testnet4).is_err()); - assert!(SignerState::new(&hex::encode([0; 32]), BitcoinNetwork::Testnet4).is_err()); -} - pub(super) async fn post_json( state: &SignerState, path: &str,