Skip to content

a Rust compiler plugin to encrypt string literal at compile time.

License

Notifications You must be signed in to change notification settings

anvie/litcrypt.rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LITCRYPT Build Status Crates.io

Is a short name of "Literal Encryption", a Rust proc macro that encrypts text using a basic XOR method. It protect plain text from static analysis tools and helps keep your important app safe from cracking activity.

LITCRYPT encrypts strings when compiling, keeping them encrypted in both disk and memory while running, and only decrypting them when needed.

USAGE

Dependencies:

[dependencies]
litcrypt = "0.3"

Example:

#[macro_use]
extern crate litcrypt;

use_litcrypt!();

fn main(){
    println!("his name is: {}", lc!("Voldemort"));
}

use_litcrypt! macro call should be called first for initialization before you can use lc! macro function. The first parameter is your secret key used for encrypt your literal string. This key is also encrypted and will not visible under static analyzer.

Please take note that you need to set your encryption key using environment variable LITCRYPT_ENCRYPT_KEY before compile: e.g:

$ export LITCRYPT_ENCRYPT_KEY="myverysuperdupermegaultrasecretkey"

Litcrypt will encrypt each string written inside lc! statically.

Check the output binary using strings command to verify:

$ strings target/debug/my_valuable_app | grep Voldemort

If the output is blank then your valuable string in your app is safe from static analyzer tool like Hexeditor etc.

For working example code see ./examples directory, and test using:

$ cargo run --example simple

[] Robin.

About

a Rust compiler plugin to encrypt string literal at compile time.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages