How it works

From expiring to replaced, without a release.

Your app reads certificates at runtime, so rotating one is a dashboard change.

  1. 01

    Add the certificate

    Store its value with the SHA-256 fingerprint and expiry date, per app and environment.

  2. 02

    Read it in your app

    Call getCertificates, or getAllSecureData to load it together with your variables.

  3. 03

    Replace it before it expires

    See which certificates are inside each team's expiry window in the dashboard, then upload the new one. Apps pick it up on their next fetch.

Integration

Pin against what the server tells you.

Each certificate comes with its value and fingerprint. Initialize the SDK once, then read them.

// After SmartGrowSecure.init(...)
val pinning = smartGrow.getCertificates().first { it.key == "API_PINNING" }

pinning.value        // PEM / base64 payload
pinning.fingerprint  // SHA fingerprint to pin against
Capabilities

What you get.

Every item here is something the product does today.

  • Value, fingerprint and expiry

    Store each certificate's PEM or base64 value with its SHA-256 fingerprint and expiry date.

  • Delivered through the SDK

    Android, iOS, macOS, tvOS and Flutter apps read certificates at runtime.

  • Expiry windows per team

    Set how many days before expiry each notification group should watch a certificate, and see the expiring ones in the dashboard.

  • Only your signed app

    Requests need the API token and your app's signing fingerprint, over a post-quantum channel on top of HTTPS.

  • Roles and audit log

    Limit who can add or replace certificates, and see every change.

Never let a pinned certificate take your app down.