Table of Contents

License generator - Technical Specification

Key Manager

License Data

Version 1

Content Line
Owner 1
Max NetWeaver 2
Ip 3
Expiration Date (dd/MM/YYYY) 4
Edit/Dev Mode 5
Perpetual License 6
Max Hana Connector 7

Version 2

Content Line
Owner 1
Max System 2
Ip 3
Expiration Date (dd/MM/YYYY) 4
License Type 5
Perpetual License 6

Version 3

Main table
Key Value type Description
uId long ClientID used internaly on Key Generator
devMode int Special flag for dev Mode
licenseList JSON Every license packed
This is the content of eatch licenseList
Key Value type Description
productId long ProductID ( NETWEAVER / HANA / BUSINESSOBJECTS / AGENT / DATADOG )
trustIp string List of ip allowed to use can be list or mask
licenseType int Type of License used (Trial/Perpetual/Expiration/OnUseBilling)
internalMode int Special flag for internal Mode
endTime LocalDate Expiration Date (dd-MM-YYYY)
postCount int Number of system/users/agent allowed to run

License Security

Version Management

V1 : None
V2 : None
V3 : $
Caption Effect
Invalid Error showed to user as invalid Key
Error Error showed to user as typing error
Step by Step Valid Error
Check if empty next return 01
Trim Space (In start and in end) next NaN
Check Length correct next return 02

→ Version 1/2 (sKey.Length % 4)

Step by Step v1/2 Valid Error
Check v3+ header Goto V3 next
Decrypt License Probe Valid Invalid

→ Version 3+

Step by Step v3+ Valid Error
Check Valid header next return 03
Remove header next NaN
Decrypt License NG Valid Invalid

Decrypt License Probe

Step by Step Valid Error
Base64 to char next Invalid 001
Use RSA/ECB/PKCS1Padding next Invalid 002
Extract hash(Sha-256) next Invalid 003
Extract seed next NaN
Create Hash from data next Invalid 004
Compare Hash to DataHash next Invalid 005
Count number of line (More than 6) next Invalid 006
Parse License - ASCII Valid Invalid 007

Decrypt License NG

Step by Step Valid Error
Base64 to char next Invalid 001
Extract Key decrypt-key next Invalid 008
Decrypt key RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING next Invalid 009
Use key AES/GCM/NoPadding for decrypt Data next Invalid 010
Check Valid Json Data next Invalid 010
Check valid Key exist (HashedName) next Invalid 012
Parse License - JSON next Invalid 013

WIP