Skip to content

Activate using another computer

Open Markdown

A disconnected app can activate by carrying a request and a response through another computer. The customer account and license are the same as in browser-based activation; only the transport changes.

The activation response is protected for the approved device. Prepare its runtime and device access before testing the file exchange.

The SDK selects the OS runtime. Application code should not choose provider names or construct public-key fields.

PlatformRequirementsVerification scope
LinuxPython 3, tpm2-tools, TPM 2.0 resource manager and device accessFile exchange and verification have been exercised on a physical Linux device and a simulator.
WindowsWindows 10/11, Windows PowerShell 5.1, ready TPM 2.0 and Microsoft Platform Crypto ProviderPlatform-key creation/reuse, signing, unwrapping and wrong-target rejection passed on the Windows runner.
macOSmacOS 11+, Secure Enclave-capable hardware and private persistent storage for device-wrapped key handlesProtected key operations passed on Apple Silicon. Both arm64/x86_64 binaries build; Intel hardware execution is separate.

Mac SDK 0.3.1 packages include the universal native helper, so normal use does not require Swift or Xcode. The key representations saved in state are device-wrapped handles, not plaintext private keys. They cannot be treated as ordinary portable keys; preserve them on the original device.

For external app distribution, sign/notarize the helper as part of the supplier’s application and verify that package.

Software RSA/ECDH tests do not prove that an OS protected store works on a real device. Without available protection, use connected activation and its signed network-grace policy. A USB-token provider is not supplied.

Protected issuance requires an eligible plan and explicitly enrolled device trust. An operator must obtain the public key using the official runtime on the actual device, verify that the protected store was used, and compare the key over a trusted channel. Enroll it in the administrator security screen under Device protection key trust.

A customer-supplied provider label is not hardware attestation. Manufacturer certificate validation is not automated. The supplier prepares the supported environment and trust enrollment; end users do not select device technologies.

1. Create a request file in the original app

Section titled “1. Create a request file in the original app”

Install the language sample and run activation-request request.signox. The sample calls createRequest() or the corresponding method and saves its public JSON.

The file identifies the product and device to approve; it does not grant access. Keep result retrieval secrets and installation credentials in the private state directory.

Success means request.signox exists. Repeated export reuses the request. After its seven-day lifetime, run activation-renew-request request.signox to create a renewed request.

On a connected computer, open the customer portal /activate page and select the file or paste the request code. The portal resolves the product from server data and displays the app name and logo.

Check the app identity and sign in as the customer. Vendor dashboard credentials belong to a different realm. If the customer has no owned license, register the purchased key first.

3. Select a license and receive the response

Section titled “3. Select a license and receive the response”

Check the license and device name, choose activation, and approve the confirmation dialog. Issuance reserves this device’s registration.

  • A different existing device leads to a reasoned transfer request. The vendor reviews that exact destination.
  • If device trust is required, the supplier must verify and enroll the actual key before approval.
  • Expired, suspended or revoked rights are not connection failures. Resolve the license state first.

Save activation.signox. Issuance is not proof that the original device applied it.

4. Apply the response on the original device

Section titled “4. Apply the response on the original device”

Carry activation.signox back and run activation-apply activation.signox. The SDK verifies the signature, product, request and device, opens the response with the protected key, then checks expiry and features.

Only one request/response round trip is needed. Application developers do not exchange the legacy intermediate challenge/proof files.

Success returns VALID or IN_GRACE_PERIOD with valid=true. Check the required feature before the actual operation. If ACTIVATION_RESPONSE_INVALID occurs, confirm the file belongs to this product, request and device; do not edit the response.

Understand application confirmation and transfer

Section titled “Understand application confirmation and transfer”

A connected app can confirm application to the server. A permanently disconnected app cannot report it automatically, so the portal may continue to show issuance.

A retained protected key can recover its registration. If the Windows key store or Mac device-wrapped handles are erased, matching device names do not prove key recovery. Create a new request and request transfer review.

Remote suspension or revocation cannot reach a permanently disconnected device immediately. File deletion and format do not prove old backups stopped working. Vendor exception approval records this uncertainty; it does not prove zero overlapping physical use.

Device identity and recovery · Verify real feature permission