mini-rcrypt 0.1.1

A minimal Rust implementation of OpenBSD Blowfish password hashing code.
Documentation
use crate::INDEX_64;
use std::time::{SystemTime, UNIX_EPOCH};

pub fn char64(x: char) -> isize {
    let code = x as isize;

    if code < 0 || code as usize > INDEX_64.len() {
        return -1;
    }

    return INDEX_64[code as usize] as isize;
}

pub fn get_byte_from_char(c: char) -> isize {
    let b = c as isize;

    if b > 127 {
        return -128 + (b % 128);
    } else {
        return b;
    }
}

pub fn get_byte_from_number(b: isize) -> isize {
    if b > 127 {
        return -128 + (b % 128);
    } else {
        return b;
    }
}

pub fn generate_random_numbers<'a>() -> Vec<isize> {
    let now = SystemTime::now();

    let since_epoch = now.duration_since(UNIX_EPOCH).unwrap_or(Default::default());

    let seed = since_epoch.as_secs() as isize + since_epoch.subsec_nanos() as isize;
    let mut numbers: Vec<isize> = Vec::with_capacity(16);
    let mut prev = seed;

    for _ in 0..16 {
        let next = (prev * 1103515245 + 12345) % (2_i64.pow(31)) as isize;
        let random_number = (next % 21) - 10;
        numbers.push(random_number as isize);
        prev = next;
    }

    numbers
}