Skip to content

Licensed is a licensing library for Rust

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

ChrisMacNaughton/licensed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Licensed

Build Status Coverage Status

Licensed is a library for adding digitally signed licenses to your binary projects in a simple, extensible manner. In addition to providing library functions for usei n your code, it provides key generation and license signing binaries in the crate.

Usage

To use licensed, you will need to generate keys to use for your signing. These keys should be kept private as they are used to proove that a license is valid.

If you want to generate keys in the example directory, you can invioke gen_keys with a single argument, as shown below through the cargo run command:

cargo run --bin=gen_keys -- examples

The above command will generatae two files in the target directory:

  1. private.pks
  2. public.pks

private.pks is actually the complete key material for the keys, but is accompanied by public.pks as well to make including the public key material into a destination binary easier.

licensed expects a certain format for its license files, such as:

{
    "features": [
        "string key",
        "another feature"
    ],
    "expires": "2014-11-28T12:00:09Z"
}

expires, shown above, is an optional field that will be checked, if present to ensure license validity.

Once you have the above file saved into, for example, license.json, you can run:

gen_license license.json $KEY_PATH/private.pks $OUTPUT_PATH

The generated file at $OUTPUT_PATH will look like the above json with a null byte and the signature appended.

Validating a license in your binary is as simple as:

let filename = "path/to/license";
let license_file = read(filename)?;
let license = licensed::License::new(&license_file)
    .with_public_key(&PUBLIC_KEY)
    .build()?;
if license.valid() {
    println!("The providded license is valid");
} else {
    println!("The provided license is invalid");
}

About

Licensed is a licensing library for Rust

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages