/** Helper: verify server‑side HMAC signature */ private fun verifySignature(data: String, signature: String): Boolean val secret = "s3cr3t_server_key".toByteArray(Charsets.UTF_8) // not really hard‑coded in production val mac = javax.crypto.Mac.getInstance("HmacSHA256") mac.init(javax.crypto.spec.SecretKeySpec(secret, "HmacSHA256")) val expected = Base64.getEncoder().encodeToString(mac.doFinal(data.toByteArray())) return expected == signature
/** Simple POJO that holds the parsed license information */ data class LicenseInfo( val key: String, val machineId: String, val expires: String, val features: Set<String> ) apeaksoft android toolkit registration code
class MainActivity : AppCompatActivity() { /** Helper: verify server‑side HMAC signature */ private
/** * Handles verification of the license key against the remote server. * * The server expects a POST payload: * * "key": "<LICENSE_KEY>", * "machineId": "<MACHINE_ID>" // optional, may be empty string * * * Response (JSON): * false, * "expires": "2027-12-31", * "features": ["ui", "network", "analytics"] * */ object LicenseVerifier val machineId: String
// Kotlin DSL tasks.register<JavaExec>("validateApeaksoftLicense") group = "verification" description = "Validates the APEAKSOFT Toolkit license."