rust_code_obfuscator 0.3.1

A Rust library to easily obfuscate strings and control-flow using cryptify lib
Documentation
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use rust_code_obfuscator::{obfuscate_flow, obfuscate_num, obfuscate_string};

fn baseline_math(input: u64) -> u64 {
    input.wrapping_mul(1_315_423_911).rotate_left(7) ^ 0xa5a5_a5a5_a5a5_a5a5
}

fn obfuscated_flow_math(input: u64) -> u64 {
    obfuscate_flow!();
    input.wrapping_mul(1_315_423_911).rotate_left(7) ^ 0xa5a5_a5a5_a5a5_a5a5
}

fn baseline_string_len() -> usize {
    "rustfuscator benchmark literal".len()
}

fn obfuscated_string_len() -> usize {
    obfuscate_string!("rustfuscator benchmark literal").len()
}

fn baseline_num() -> u64 {
    9_000_000_000u64
}

fn obfuscated_num() -> u64 {
    obfuscate_num!(9_000_000_000u64)
}

fn bench_flow(c: &mut Criterion) {
    let mut group = c.benchmark_group("control_flow");
    group.bench_function("baseline_math", |b| {
        b.iter(|| baseline_math(black_box(42)));
    });
    group.bench_function("obfuscated_flow_math", |b| {
        b.iter(|| obfuscated_flow_math(black_box(42)));
    });
    group.finish();
}

fn bench_literals(c: &mut Criterion) {
    let mut group = c.benchmark_group("literals");
    group.bench_function("baseline_string_len", |b| {
        b.iter(|| black_box(baseline_string_len()));
    });
    group.bench_function("obfuscated_string_len", |b| {
        b.iter(|| black_box(obfuscated_string_len()));
    });
    group.bench_function("baseline_num", |b| {
        b.iter(|| black_box(baseline_num()));
    });
    group.bench_function("obfuscated_num", |b| {
        b.iter(|| black_box(obfuscated_num()));
    });
    group.finish();
}

criterion_group!(benches, bench_flow, bench_literals);
criterion_main!(benches);