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.
| Property | Legacy (RSA/ECDSA) | QuantumLock™ (ML-DSA-65) |
|---|---|---|
| Quantum-safe | ❌ No | ✅ Yes |
| FIPS compliant | Partial | ✅ FIPS 204 |
| Offline validation | Limited | ✅ Full offline |
| Real entropy source | ❌ PRNG | ✅ Real quantum hardware |
| Revocation | Requires 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:
- Export your dongle license definitions
- Map hardware features to QuantumLock™ feature flags
- Issue software licenses to customers with equivalent feature sets
- 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)