Edary License Generator (ELG)
Internal Windows tool that issues digitally signed JSON licenses for Edary: you enter customer and machine data; the app outputs a license file verified on the client with the public key (the private key never ships).
Product context: Edary — Accounting & ERP.
Architecture (sign-then-store)
Canonical UTF-8 payload, signed with RSA-SHA256 and PKCS#1 v1.5:
customerName|machineId|expireDate
Fixed order, delimiter |, UTF-8. signature (Base64) is stored in JSON with the fields. Any field change without re-signing fails verification.
Tech stack
| Item | Detail |
|---|---|
| Framework | .NET 8, Windows Forms |
| Executable | ELG.exe |
| Distribution | Single-file, self-contained win-x64 |
| Side | CreateIcon helper (not part of main build) |
License file
- Fields: customer name, machine ID, expiry (
YYYY-MM-DD). - Private key:
%UserProfile%\private_key.pemor next to the executable. - Output:
licenses\{CustomerName}.license.keybeside the app; clients often useC:\ProgramData\Edary\license.key. Verification runs inside Edary.
Issuer UI
- Arabic / English, RTL for Arabic; dark/light theme; settings in
%LocalAppData%\ELG\settings.txt. - Optional open
licensesfolder after save; default expiry +1 year.
Keys
Keep private_key.pem only on the issuing machine. Customers get the license file only; Edary embeds the public key for verify-only use.