package com.isp.bkashautomation.security import java.security.MessageDigest import javax.crypto.Mac import javax.crypto.spec.SecretKeySpec object SecurityHelper { /** * Computes HMAC-SHA256 signature to protect webhooks from tampering and spoofing */ fun generateHmacSha256(data: String, secretKey: String): String { val mac = Mac.getInstance("HmacSHA256") val secretKeySpec = SecretKeySpec(secretKey.toByteArray(Charsets.UTF_8), "HmacSHA256") mac.init(secretKeySpec) val hmacBytes = mac.doFinal(data.toByteArray(Charsets.UTF_8)) return hmacBytes.joinToString("") { "%02x".format(it) } } }