diff --git a/crates/router/src/consts.rs b/crates/router/src/consts.rs index adde413730cb..228d02e1ddac 100644 --- a/crates/router/src/consts.rs +++ b/crates/router/src/consts.rs @@ -41,7 +41,6 @@ pub(crate) const APPLEPAY_VALIDATION_URL: &str = pub(crate) const QR_IMAGE_DATA_SOURCE_STRING: &str = "data:image/png;base64"; // OID (Object Identifier) for the merchant ID field extension. -#[cfg(feature = "kms")] pub(crate) const MERCHANT_ID_FIELD_EXTENSION_ID: &str = "1.2.840.113635.100.6.32"; pub(crate) const METRICS_HOST_TAG_NAME: &str = "host"; diff --git a/crates/router/src/core/payments.rs b/crates/router/src/core/payments.rs index cb2b24c4158c..708e20d20504 100644 --- a/crates/router/src/core/payments.rs +++ b/crates/router/src/core/payments.rs @@ -15,7 +15,6 @@ use data_models::mandates::MandateData; use diesel_models::{ephemeral_key, fraud_check::FraudCheck}; use error_stack::{IntoReport, ResultExt}; use futures::future::join_all; -#[cfg(feature = "kms")] use helpers::ApplePayData; use masking::Secret; use router_env::{instrument, tracing}; @@ -643,7 +642,6 @@ where // Tokenization Action will be DecryptApplePayToken, only when payment method type is Apple Pay // and the connector supports Apple Pay predecrypt - #[cfg(feature = "kms")] if matches!( tokenization_action, TokenizationAction::DecryptApplePayToken diff --git a/crates/router/src/core/payments/helpers.rs b/crates/router/src/core/payments/helpers.rs index d964b4b2e2b2..60ebfd2bdf0f 100644 --- a/crates/router/src/core/payments/helpers.rs +++ b/crates/router/src/core/payments/helpers.rs @@ -16,26 +16,23 @@ use error_stack::{report, IntoReport, ResultExt}; use external_services::kms; use josekit::jwe; use masking::{ExposeInterface, PeekInterface}; -#[cfg(feature = "kms")] -use openssl::derive::Deriver; -#[cfg(feature = "kms")] -use openssl::pkey::PKey; -#[cfg(feature = "kms")] -use openssl::symm::{decrypt_aead, Cipher}; +use openssl::{ + derive::Deriver, + pkey::PKey, + symm::{decrypt_aead, Cipher}, +}; use router_env::{instrument, logger, tracing}; use time::Duration; use uuid::Uuid; -#[cfg(feature = "kms")] use x509_parser::parse_x509_certificate; use super::{ operations::{BoxedOperation, Operation, PaymentResponse}, CustomerDetails, PaymentData, }; -#[cfg(feature = "kms")] -use crate::connector; use crate::{ configs::settings::{ConnectorRequestReferenceIdConfig, Server, TempLockerDisableConfig}, + connector, consts::{self, BASE64_ENGINE}, core::{ errors::{self, CustomResult, RouterResult, StorageErrorExt}, @@ -3213,7 +3210,6 @@ pub struct ApplePayHeader { transaction_id: masking::Secret, } -#[cfg(feature = "kms")] impl ApplePayData { pub fn token_json( wallet_data: api_models::payments::WalletData, @@ -3241,12 +3237,16 @@ impl ApplePayData { &self, state: &AppState, ) -> CustomResult { + #[cfg(feature = "kms")] let cert_data = kms::get_kms_client(&state.conf.kms) .await .decrypt(&state.conf.applepay_decrypt_keys.apple_pay_ppc) .await .change_context(errors::ApplePayDecryptionError::DecryptionFailed)?; + #[cfg(not(feature = "kms"))] + let cert_data = &state.conf.applepay_decrypt_keys.apple_pay_ppc; + let base64_decode_cert_data = BASE64_ENGINE .decode(cert_data) .into_report() @@ -3297,12 +3297,15 @@ impl ApplePayData { .change_context(errors::ApplePayDecryptionError::KeyDeserializationFailed) .attach_printable("Failed to deserialize the public key")?; + #[cfg(feature = "kms")] let decrypted_apple_pay_ppc_key = kms::get_kms_client(&state.conf.kms) .await .decrypt(&state.conf.applepay_decrypt_keys.apple_pay_ppc_key) .await .change_context(errors::ApplePayDecryptionError::DecryptionFailed)?; + #[cfg(not(feature = "kms"))] + let decrypted_apple_pay_ppc_key = &state.conf.applepay_decrypt_keys.apple_pay_ppc_key; // Create PKey objects from EcKey let private_key = PKey::private_key_from_pem(decrypted_apple_pay_ppc_key.as_bytes()) .into_report()