In order to use the system, GUI and command line tools have been developed to allow custom licensing files (certificates) to be created. The licensing files are then required in order to run the signed executable. For example, an executable called user_test
may be signed with a licensing file called ObjectDigital.com.multi.cer
. In order to run user_test, the following command line is required:
Licensing files may contain any information that the software developer deems required in order to run using name=value
pairs. Additionally, the licensing files can require a specific network interface MAC address in order to run properly. Thusly, an end user who purchases an executable licensed by ObjectLock will receive the licensing file and a signed executable designed to run on that user's machine only. Each executable and license file form a unique pair specific for the end user. The license file may indicate the number of concurrent users and the duration for which the license is valid.
The system consists of patent pending technology (61563766) including a system
for pseudo-random number generation, one-way cryptographic hash, stream encryption cipher, x.509 certificate generator and parser, validation logic, method of embedding encrypted keys into executables, method of importing binary and multi-media data into executables, random prime generation logic, SHA-1 one-way hash, RSA encryption engine, and lock generation technology for locking executables based on generated certificates.
The system is written in C++ and has a Java based GUI to facilitate certificate generation. Once a certificate and its associated main entry point are generated, the code can be linked into a dynamic link library (.dll) and embedded into a commercial product. Alternatively, the commercial product entry point can be called directly and the system can be linked into an executable (.exe).
The screen shots below illustrate additional fields and data that can be encoded within a licensing file.