use super::{Signer, SignerError};
pub struct GcpKmsSigner {
key_id: String,
}
impl GcpKmsSigner {
pub fn from_env(_role: &str) -> Result<Self, SignerError> {
let key_id = std::env::var("SBO3L_GCP_KMS_KEY_NAME")
.map_err(|_| SignerError::MissingEnv("SBO3L_GCP_KMS_KEY_NAME"))?;
if key_id.is_empty() {
return Err(SignerError::MissingEnv("SBO3L_GCP_KMS_KEY_NAME"));
}
Ok(Self { key_id })
}
}
impl Signer for GcpKmsSigner {
fn sign_hex(&self, _message: &[u8]) -> Result<String, SignerError> {
Err(SignerError::Kms(format!(
"gcp_kms backend ({}) not yet implemented; live integration is a nightly task",
self.key_id
)))
}
fn verifying_key_hex(&self) -> Result<String, SignerError> {
Err(SignerError::Kms(format!(
"gcp_kms backend ({}) not yet implemented; live integration is a nightly task",
self.key_id
)))
}
fn key_id(&self) -> &str {
&self.key_id
}
}