new test for encode params

This commit is contained in:
shockrah 2020-05-20 02:05:43 -07:00
parent 97e6b026cc
commit 13ab387a93

View File

@ -1,35 +1,18 @@
// Generic functions used by pretty much everyone
use base64::{self, encode_config, decode_config, URL_SAFE};
use base64::{self, encode_config};
use getrandom::getrandom;
use std::str;
pub fn encode_param(raw: &str) -> String {
pub fn encode_param(raw: &[u8]) -> String {
let cfg = base64::Config::new(base64::CharacterSet::UrlSafe, false);
encode_config(raw, cfg)
}
pub fn decode_param(enc: &str) -> Result<String, i32> {
let cfg = base64::Config::new(base64::CharacterSet::UrlSafe, false);
let bytes = decode_config(enc, cfg).unwrap();
let res = str::from_utf8(&bytes);
match res {
Ok(data) => Ok(data.into()),
Err(_e) => Err(1)
}
}
pub fn new_key() -> String {
pub fn new_key() -> [u8; 64] {
let mut raw_slice = [0u8; 64];
let _ignored = getrandom(&mut raw_slice).unwrap();
let mut buf = String::new();
for i in raw_slice.iter() {
let mut cv: u8 = *i;
if cv > 126 { cv %= 126; }
if cv < 33 { cv += 34; }
buf.push(cv as char);
}
buf
return raw_slice;
}
#[cfg(test)]
mod encoder_decoder_tests {
@ -37,9 +20,8 @@ mod encoder_decoder_tests {
#[test]
fn encode_decode() {
let raw = "some random bs";
let enc = encode_param(raw);
let dec = decode_param(&enc);
assert_eq!(raw, dec.unwrap());
let raw = new_key();
let enc = encode_param(&raw);
print!("{}", enc);
}
}