Skip to main content

QuantumLock™ Migration Guide

How to migrate existing licensing systems to QuantumLock™.


Why Migrate?

Traditional software licensing relies on algorithms (RSA, ECDSA) that are vulnerable to quantum computers. QuantumLock™ uses ML-DSA-65 (FIPS 204) — a post-quantum standard approved by NIST in 2024.

PropertyLegacy (RSA/ECDSA)QuantumLock™ (ML-DSA-65)
Quantum-safe❌ No✅ Yes
FIPS compliantPartial✅ FIPS 204
Offline validationLimited✅ Full offline
Real entropy source❌ PRNG✅ Real quantum hardware
RevocationRequires connectivity✅ Embedded proof

Migration from License File Systems (LicenseSpring, Cryptlex, etc.)

Step 1 — Export Your Customer Database

Export your current customer and license data in CSV or JSON format from your existing provider.

Step 2 — Create a QuantumLock™ Account

Sign up at app.softquantus.com and create your first product.

Step 3 — Bulk Import Customers

# Import customers via CLI
quantumlock customers import --file customers.csv

# Or via API
curl -X POST https://api.softquantus.com/v1/customers/bulk \
-H "Authorization: Bearer $API_KEY" \
-F "file=@customers.csv"

Step 4 — Generate New Licenses

quantumlock bulk-generate \
--customers customers.csv \
--product "my-app" \
--expires 2027-01-01 \
--output ./licenses/

Step 5 — Update Your Application

Replace your existing license check with the QuantumLock™ SDK:

from quantumlock import QuantumLock

ql = QuantumLock(license_path="./my-app.lic")
ql.validate()

Step 6 — Distribute New Licenses

Send the new .lic files to your customers. Consider a grace period where both old and new licenses are accepted during the transition.


Migration from Hardware Dongles (HASP, Sentinel)

Hardware dongles provide strong security but poor user experience. QuantumLock™ matches the security level with a pure-software approach:

  1. Export your dongle license definitions
  2. Map hardware features to QuantumLock™ feature flags
  3. Issue software licenses to customers with equivalent feature sets
  4. Communicate the transition timeline to customers

Parallel Running Period

We recommend a 30-60 day parallel period where both your old licensing system and QuantumLock™ run simultaneously:

def validate_license(license_path: str) -> bool:
# Try QuantumLock first
try:
from quantumlock import QuantumLock
ql = QuantumLock(license_path)
ql.validate()
return True
except Exception:
pass

# Fallback to legacy check during migration period
return legacy_validate(license_path)