ObjectLock LockIT Is based on Public key cryptography and is implemented using
arbitrary precision math. The engine generates certificates which can be
used to license your projects based on time allowing for you to provide for
demo/free trial versions of your projects that expire after a set period of time.
Thereafter, you may issue a license for a longer period of time for a more
functional version. This allows you to charge for the license and issue various
different versions of your software.

ObjectLock LockIT Allows you to also restrict the number of users using your
software product by including in the license the maximum number of that can
run your product concurrently. This number is enforced using a server which is
logged into via the license manager using HTTPS protocol. This requires some
configuration to be setup in order to work, but generally requires you host the
webserver script and backend C++ server on your HTTP server running SSL, or that
ObjectLock will host and provide SSL services for your firm.

Licenses are generated using the ObjectLock LockIT command line tool which has the following syntax := syntax:: lockit {-key_gen|-gen_cert_10_day_trial| -gen_cert_1_mon_license|-gen_cert_3_mon_license| -gen_cert_1_year_license|-gen_lockit_pub_key} product_id(int) host(string) port(int) count(int) organization(quoted string) Step 1, key generation. ./lockit -key_gen # Generate Public key / Private key pair. ./lockit -gen_lockit_pub_key # Generate public key for use within lockit client. Step 2, license generation. ./lockit -gen_cert_10_day_trial product_id(int) host(string) port(int) count(int) organization(quoted string) ./lockit -gen_cert_1_mon_license product_id(int) host(string) port(int) count(int) organization(quoted string) ./lockit -gen_cert_3_mon_license product_id(int) host(string) port(int) count(int) organization(quoted string) ./lockit -gen_cert_1_year_license product_id(int) host(string) port(int) count(int) organization(quoted string) First, one generates the keys as in Step 1 above, then, one can run one of the steps from Step 2 to generate the respective license. The product_id is a unique integer representing the product being licensed. In cases where you require a hosted solution by ObjectLock.com, this number must be unique to both ObjectLock.com and the issuing organization, otherwise, it must be unique to the issuing organization. The host is a string, port is an integer, count is the number of users possible, and organization is the issuing organization. The host can be an Internet IP Address as in or an https://domain depending on whether or not one is using https to verify number of users. Port is an integer representing which port to use for the connection. Typically, its port 8080 for HTTPS connections. Count can be 0, in which case LockIT will only verify the time the license is set to expire. Otherwise, if the number is greater than 0, LockIT will attempt to login to the server specified in host and verify the number of users running the application concurrently. Organization is a double quoted string representing the orgnanization that is issuing the license. For example, if organization foo.com is issuing the license, then it is specified as "foo.com". Quotes are mandatory.

An example license usage is := ./lockit -key_gen ./lockit -gen_lockit_pub_key ./lockit -gen_cert_10_day_trial 17 8080 0 "Issuing Organization" LockIT requires that the generated public key code and its library be compiled into and run with your application code. In order to do this, you have to compile LockIT into your application code using the following := In your C++ := // File lockit_test.cc #include "lockit.h" int main() { lockit l; // All That is needed, lockit will do the rest. if(l.can_proceed()) { start_application(); } else { fprintf(stderr,"error not licensed!\n"); } } Now in your Makefile, you need the following CPPFLAGS=-I../lockit g++ -O3 lockit_test.cc -o lockit_test -L../lockit -llockit -L../lockit/codec -lcodec -L../lockit/tcp -lnet++ strip lockit_test Note that the lockit program generates a file called lockit_pub_key.h which is referenced in lockit.h and is included from that file. It is generated when you run ./lockit -gen_lockit_pub_key ObjectLock LockIT has a useful API which provides the following methods from the lockit class := // CTOR // This is the constructor which does the validation. lockit(); // DTOR // Clean and logout of server is necessary. // This requires the lockit class to be used in function main() // and that its destructor is called after normal program completion. ~lockit(); // can_proceed // The user should always call this method to check // if they can continue with the processing. bool can_proceed(); // Can only be called once by the user, will disable // the destructors logout call. bool logout(); // get_count() // Returns the number of concurrent users the license allows. int get_count(); // get_product() // Returns the unique product id. int get_product(); // get_org() // Returns the issuing organization (from the quoted string specified // when the license was issued). string get_org(); // get_days_remaining() // The amount of time remaining in days for the license. double get_days_remaining(); // get_host() // The host to be used for validation. string get_host(); // get_port() // The port to be used for validation. string get_port(); The only thing that needs to ship with a LockIT enabled program is the lockit license file, these are named lockit_10_day.lic, lockit_1_mon.lic, lockit_3_mon.lic or lockit_1_year.lic, respectively. The three Lockit libraries are archives and are compiled into the executable program. Make sure to build your executable optimized and to strip the final product. NOTE: cURL is referenced when using https and its is recommended that the target computer have cURL and OpenSSL available. These products are OpenSource and should not be a problem in terms of availability. On Windows, the GMP library needs to be available as well.

ObjectLock - About

Copyright (C) 2015. ObjectLock.com. All Rights Reserved.