mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-01-18 10:46:33 +00:00
a59626c971
openidconnect -> 2.5 base64 -> 0.21 url -> 2.3 bytes -> 1.3
61 lines
1.9 KiB
Rust
61 lines
1.9 KiB
Rust
use base64::{
|
|
alphabet::URL_SAFE, engine::general_purpose::PAD, engine::general_purpose::STANDARD, *,
|
|
};
|
|
|
|
fn compare_encode(expected: &str, target: &[u8]) {
|
|
assert_eq!(expected, STANDARD.encode(target));
|
|
}
|
|
|
|
#[test]
|
|
fn encode_all_ascii() {
|
|
let mut ascii = Vec::<u8>::with_capacity(128);
|
|
|
|
for i in 0..128 {
|
|
ascii.push(i);
|
|
}
|
|
|
|
compare_encode(
|
|
"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7P\
|
|
D0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn8\
|
|
=",
|
|
&ascii,
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn encode_all_bytes() {
|
|
let mut bytes = Vec::<u8>::with_capacity(256);
|
|
|
|
for i in 0..255 {
|
|
bytes.push(i);
|
|
}
|
|
bytes.push(255); //bug with "overflowing" ranges?
|
|
|
|
compare_encode(
|
|
"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7P\
|
|
D0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn\
|
|
+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6\
|
|
/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==",
|
|
&bytes,
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn encode_all_bytes_url() {
|
|
let mut bytes = Vec::<u8>::with_capacity(256);
|
|
|
|
for i in 0..255 {
|
|
bytes.push(i);
|
|
}
|
|
bytes.push(255); //bug with "overflowing" ranges?
|
|
|
|
assert_eq!(
|
|
"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0\
|
|
-P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn\
|
|
-AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq\
|
|
-wsbKztLW2t7i5uru8vb6_wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t_g4eLj5OXm5-jp6uvs7e7v8PHy\
|
|
8_T19vf4-fr7_P3-_w==",
|
|
&engine::GeneralPurpose::new(&URL_SAFE, PAD).encode(&bytes)
|
|
);
|
|
}
|