![CI](https://github.com/EdgeCast/rust-ectoken/workflows/CI/badge.svg) [![crates.io](https://img.shields.io/crates/v/ectoken.svg)](https://crates.io/crates/ectoken) [![Docs](https://docs.rs/ectoken/badge.svg)](https://docs.rs/ectoken) # rust-ectoken > _Token Generator for EdgeCast Token-Based Authentication implemented in Rust_ Token-Based Authentication safeguards against hotlinking by adding a token requirement to requests for content secured by it. This token, which must be defined in the request URL's query string, defines the criteria that must be met before the requested content may be served via the CDN. This repository contains source code for a Rust implementation. Written against Rust 2018. (Minimum rustc version 1.49.0). ## Table of Contents - [Build](#Build) - [Test](#Test) - [Usage](#usage) - [Contribute](#contribute) - [License](#license) ## Build ``` cargo build --release ``` ## Test ``` cargo test ``` ## Usage ### Library Add the following to your Cargo.toml. ```toml [dependencies] ectoken = "^0.4" ``` ### CLI ``` To Encrypt: ec_encrypt or: ec_encrypt encrypt To Decrypt: ec_encrypt decrypt ``` #### Example ```rust use ectoken; fn example() { let encrypted = ectoken::encrypt_v3("mykey", "mymessage"); let decrypted = ectoken::decrypt_v3("mykey", &encrypted).unwrap(); assert_eq!("mymessage", decrypted); } ``` ## Contribute - We welcome issues, questions and pull requests. ## License This project is licensed under the terms of the Apache 2.0 open source license. Please refer to the `LICENSE-APACHE` file for the full terms.