Coin de Gamma
3 months ago
3 changed files with 44 additions and 36 deletions
@ -0,0 +1,39 @@
|
||||
use base64::prelude::*; // TODO: use hex instead
|
||||
|
||||
use std::io; |
||||
|
||||
|
||||
pub struct Encoder { |
||||
passphrase: String |
||||
} |
||||
|
||||
impl Encoder { |
||||
pub fn from(passphrase: String) -> Encoder { |
||||
Encoder { passphrase } |
||||
} |
||||
|
||||
// TODO: get by ref
|
||||
pub fn encode(&self, line: String) -> String { |
||||
// TODO: use passphrasee to encode
|
||||
BASE64_STANDARD.encode(line) |
||||
} |
||||
|
||||
// TODO: review error type
|
||||
pub fn decode(&self, line: String) -> io::Result<String> { |
||||
let content = BASE64_STANDARD.decode(line).map_err(|e| io::Error::new(io::ErrorKind::InvalidData, e))?; |
||||
match String::from_utf8(content) { |
||||
Ok(s) => Ok(s), |
||||
Err(e) => Err(io::Error::new(io::ErrorKind::InvalidData, e)) |
||||
} |
||||
} |
||||
|
||||
pub fn test_encoded_passphrase(&self, test_passphrase_encoded: String) -> bool { |
||||
self.passphrase == test_passphrase_encoded |
||||
} |
||||
|
||||
pub fn get_encoded_test_passphrase(&self) -> String { |
||||
// TODO: encode SALT const with passphrase
|
||||
self.passphrase.clone() |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue