mirror of
https://github.com/danbulant/Portfolio
synced 2026-06-16 04:51:18 +00:00
commit
15cd71e913
3 changed files with 43 additions and 0 deletions
|
|
@ -14,6 +14,8 @@ dotenv = "0.15.0"
|
|||
tokio = "1.21.2"
|
||||
futures = "0.3.25"
|
||||
|
||||
infer = "0.9"
|
||||
|
||||
# crypto
|
||||
argon2 = { version = "0.4", features = ["std"] }
|
||||
age = { version = "0.9", features = ["async"] }
|
||||
|
|
|
|||
40
core/src/filetype.rs
Normal file
40
core/src/filetype.rs
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
pub fn filetype_is_pdf(buffer: &[u8]) -> bool {
|
||||
infer::archive::is_pdf(buffer)
|
||||
}
|
||||
|
||||
pub fn filetype_is_zip(buffer: &[u8]) -> bool {
|
||||
infer::archive::is_zip(buffer)
|
||||
}
|
||||
|
||||
mod tests {
|
||||
|
||||
#[test]
|
||||
fn test_filetype_is_pdf() {
|
||||
const PDF: &[u8] = &[37, 80, 68, 70, 45, 49, 46, 49, 10, 37, 194, 165, 194, 177, 195, 171, 10, 10, 49, 32, 48, 32, 111, 98, 106, 10, 32, 32, 60, 60, 32, 47, 84, 121, 112, 101, 32, 47, 67, 97, 116, 97, 108, 111, 103, 10, 32, 32, 32, 32, 32, 47, 80, 97, 103, 101, 115, 32, 50, 32, 48, 32, 82, 10, 32, 32, 62, 62, 10, 101, 110, 100, 111, 98, 106, 10, 10, 50, 32, 48, 32, 111, 98, 106, 10, 32, 32, 60, 60, 32, 47, 84, 121, 112, 101, 32, 47, 80, 97, 103, 101, 115, 10, 32, 32, 32, 32, 32, 47, 75, 105, 100, 115, 32, 91, 51, 32, 48, 32, 82, 93, 10, 32, 32, 32, 32, 32, 47, 67, 111, 117, 110, 116, 32, 49, 10, 32, 32, 32, 32, 32, 47, 77, 101, 100, 105, 97, 66, 111, 120, 32, 91, 48, 32, 48, 32, 51, 48, 48, 32, 49, 52, 52, 93, 10, 32, 32, 62, 62, 10, 101, 110, 100, 111, 98, 106, 10, 10, 51, 32, 48, 32, 111, 98, 106, 10, 32, 32, 60, 60, 32, 32, 47, 84, 121, 112, 101, 32, 47, 80, 97, 103, 101, 10, 32, 32, 32, 32, 32, 32, 47, 80, 97, 114, 101, 110, 116, 32, 50, 32, 48, 32, 82, 10, 32, 32, 32, 32, 32, 32, 47, 82, 101, 115, 111, 117, 114, 99, 101, 115, 10, 32, 32, 32, 32, 32, 32, 32, 60, 60, 32, 47, 70, 111, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 60, 60, 32, 47, 70, 49, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 60, 60, 32, 47, 84, 121, 112, 101, 32, 47, 70, 111, 110, 116, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 47, 83, 117, 98, 116, 121, 112, 101, 32, 47, 84, 121, 112, 101, 49, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 47, 66, 97, 115, 101, 70, 111, 110, 116, 32, 47, 84, 105, 109, 101, 115, 45, 82, 111, 109, 97, 110, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 62, 62, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 62, 62, 10, 32, 32, 32, 32, 32, 32, 32, 62, 62, 10, 32, 32, 32, 32, 32, 32, 47, 67, 111, 110, 116, 101, 110, 116, 115, 32, 52, 32, 48, 32, 82, 10, 32, 32, 62, 62, 10, 101, 110, 100, 111, 98, 106, 10, 10, 52, 32, 48, 32, 111, 98, 106, 10, 32, 32, 60, 60, 32, 47, 76, 101, 110, 103, 116, 104, 32, 53, 53, 32, 62, 62, 10, 115, 116, 114, 101, 97, 109, 10, 32, 32, 66, 84, 10, 32, 32, 32, 32, 47, 70, 49, 32, 49, 56, 32, 84, 102, 10, 32, 32, 32, 32, 48, 32, 48, 32, 84, 100, 10, 32, 32, 32, 32, 40, 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 41, 32, 84, 106, 10, 32, 32, 69, 84, 10, 101, 110, 100, 115, 116, 114, 101, 97, 109, 10, 101, 110, 100, 111, 98, 106, 10, 10, 120, 114, 101, 102, 10, 48, 32, 53, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 54, 53, 53, 51, 53, 32, 102, 32, 10, 48, 48, 48, 48, 48, 48, 48, 48, 49, 56, 32, 48, 48, 48, 48, 48, 32, 110, 32, 10, 48, 48, 48, 48, 48, 48, 48, 48, 55, 55, 32, 48, 48, 48, 48, 48, 32, 110, 32, 10, 48, 48, 48, 48, 48, 48, 48, 49, 55, 56, 32, 48, 48, 48, 48, 48, 32, 110, 32, 10, 48, 48, 48, 48, 48, 48, 48, 52, 53, 55, 32, 48, 48, 48, 48, 48, 32, 110, 32, 10, 116, 114, 97, 105, 108, 101, 114, 10, 32, 32, 60, 60, 32, 32, 47, 82, 111, 111, 116, 32, 49, 32, 48, 32, 82, 10, 32, 32, 32, 32, 32, 32, 47, 83, 105, 122, 101, 32, 53, 10, 32, 32, 62, 62, 10, 115, 116, 97, 114, 116, 120, 114, 101, 102, 10, 53, 54, 53, 10, 37, 37, 69, 79, 70, 10];
|
||||
|
||||
assert!(super::filetype_is_pdf(PDF));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_filetype_is_pdf_2() {
|
||||
const EMPTY: &[u8] = &[];
|
||||
|
||||
assert!(!super::filetype_is_pdf(EMPTY));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_filetype_is_zip() {
|
||||
const ZIP: &[u8] = &[80, 75, 3, 4, 20, 0, 8, 0, 8, 0, 47, 158, 92, 85, 0, 0, 0, 0, 0, 0, 0, 0, 227, 2, 0, 0, 9, 0, 32, 0, 98, 108, 97, 110, 107, 46, 112, 100, 102, 85, 84, 13, 0, 7, 43, 22, 92, 99, 65, 22, 92, 99, 67, 22, 92, 99, 117, 120, 11, 0, 1, 4, 246, 1, 0, 0, 4, 20, 0, 0, 0, 109, 82, 61, 111, 194, 48, 16, 221, 253, 43, 110, 137, 212, 14, 52, 49, 137, 161, 3, 98, 128, 130, 42, 181, 85, 81, 136, 212, 1, 49, 152, 198, 208, 84, 33, 174, 108, 35, 209, 254, 159, 78, 157, 250, 23, 232, 31, 227, 156, 175, 6, 130, 167, 187, 231, 247, 238, 221, 157, 237, 204, 238, 166, 29, 122, 67, 137, 115, 248, 62, 252, 254, 253, 16, 66, 193, 3, 185, 122, 39, 0, 131, 1, 184, 209, 231, 135, 0, 119, 204, 13, 79, 229, 6, 49, 60, 238, 140, 111, 132, 134, 46, 242, 66, 68, 134, 67, 34, 178, 216, 42, 72, 247, 130, 52, 39, 151, 194, 135, 36, 214, 176, 240, 173, 112, 89, 66, 99, 185, 203, 12, 208, 50, 123, 18, 113, 194, 71, 114, 15, 11, 15, 73, 190, 231, 1, 13, 130, 229, 169, 137, 223, 52, 105, 186, 20, 53, 108, 172, 4, 214, 172, 250, 203, 177, 80, 104, 185, 83, 175, 85, 39, 69, 131, 83, 153, 153, 42, 175, 49, 218, 68, 42, 180, 48, 57, 231, 151, 199, 157, 239, 86, 38, 39, 88, 90, 75, 111, 25, 35, 174, 133, 85, 35, 37, 217, 10, 221, 9, 229, 150, 103, 231, 68, 156, 241, 98, 86, 71, 184, 172, 204, 224, 104, 26, 130, 246, 238, 131, 147, 221, 63, 138, 108, 99, 222, 128, 49, 75, 209, 70, 9, 190, 197, 155, 81, 148, 87, 194, 33, 129, 222, 66, 180, 206, 51, 187, 233, 40, 206, 195, 171, 123, 145, 166, 18, 94, 164, 74, 227, 107, 136, 108, 177, 73, 100, 29, 202, 10, 149, 215, 94, 137, 53, 241, 128, 17, 175, 62, 208, 99, 204, 103, 176, 134, 26, 67, 135, 226, 38, 251, 199, 250, 253, 22, 70, 251, 109, 94, 192, 26, 60, 163, 120, 146, 10, 85, 189, 119, 40, 37, 254, 151, 230, 219, 206, 147, 47, 129, 189, 64, 49, 42, 87, 38, 111, 143, 245, 24, 113, 156, 201, 243, 148, 28, 1, 80, 75, 7, 8, 145, 156, 25, 92, 90, 1, 0, 0, 227, 2, 0, 0, 80, 75, 3, 4, 20, 0, 8, 0, 8, 0, 47, 158, 92, 85, 0, 0, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 20, 0, 32, 0, 95, 95, 77, 65, 67, 79, 83, 88, 47, 46, 95, 98, 108, 97, 110, 107, 46, 112, 100, 102, 85, 84, 13, 0, 7, 43, 22, 92, 99, 65, 22, 92, 99, 70, 22, 92, 99, 117, 120, 11, 0, 1, 4, 246, 1, 0, 0, 4, 20, 0, 0, 0, 99, 96, 21, 99, 103, 96, 98, 96, 240, 77, 76, 86, 240, 15, 86, 136, 80, 128, 2, 144, 24, 3, 39, 16, 27, 1, 241, 55, 32, 6, 242, 25, 53, 24, 136, 2, 142, 33, 33, 65, 16, 22, 88, 199, 1, 32, 206, 64, 83, 194, 4, 21, 23, 96, 96, 144, 74, 206, 207, 213, 75, 44, 40, 200, 73, 213, 203, 73, 44, 46, 41, 45, 78, 77, 73, 73, 44, 73, 85, 14, 8, 134, 170, 189, 0, 196, 17, 12, 12, 162, 8, 117, 133, 165, 137, 69, 137, 121, 37, 153, 121, 169, 12, 102, 98, 49, 201, 32, 69, 231, 148, 106, 192, 174, 43, 212, 55, 48, 176, 48, 182, 54, 51, 54, 77, 54, 52, 51, 74, 178, 70, 104, 10, 78, 76, 75, 44, 202, 4, 82, 121, 41, 73, 249, 21, 78, 69, 249, 217, 169, 69, 122, 21, 5, 201, 214, 78, 70, 78, 38, 198, 6, 38, 198, 186, 166, 150, 142, 46, 186, 38, 38, 6, 46, 186, 150, 46, 6, 134, 186, 6, 230, 46, 206, 70, 78, 206, 46, 230, 102, 38, 230, 12, 0, 80, 75, 7, 8, 47, 121, 186, 89, 194, 0, 0, 0, 40, 1, 0, 0, 80, 75, 1, 2, 20, 3, 20, 0, 8, 0, 8, 0, 47, 158, 92, 85, 145, 156, 25, 92, 90, 1, 0, 0, 227, 2, 0, 0, 9, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 129, 0, 0, 0, 0, 98, 108, 97, 110, 107, 46, 112, 100, 102, 85, 84, 13, 0, 7, 43, 22, 92, 99, 65, 22, 92, 99, 67, 22, 92, 99, 117, 120, 11, 0, 1, 4, 246, 1, 0, 0, 4, 20, 0, 0, 0, 80, 75, 1, 2, 20, 3, 20, 0, 8, 0, 8, 0, 47, 158, 92, 85, 47, 121, 186, 89, 194, 0, 0, 0, 40, 1, 0, 0, 20, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 129, 177, 1, 0, 0, 95, 95, 77, 65, 67, 79, 83, 88, 47, 46, 95, 98, 108, 97, 110, 107, 46, 112, 100, 102, 85, 84, 13, 0, 7, 43, 22, 92, 99, 65, 22, 92, 99, 70, 22, 92, 99, 117, 120, 11, 0, 1, 4, 246, 1, 0, 0, 4, 20, 0, 0, 0, 80, 75, 5, 6, 0, 0, 0, 0, 2, 0, 2, 0, 185, 0, 0, 0, 213, 2, 0, 0, 0, 0];
|
||||
|
||||
assert!(super::filetype_is_zip(ZIP));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_filetype_is_zip_2() {
|
||||
const EMPTY: &[u8] = &[];
|
||||
|
||||
assert!(!super::filetype_is_zip(EMPTY));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -2,6 +2,7 @@ mod mutation;
|
|||
mod query;
|
||||
pub mod crypto;
|
||||
pub mod token;
|
||||
pub mod filetype;
|
||||
pub mod services;
|
||||
pub mod error;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue