X-Git-Url: http://git.euphorik.ch/?p=rup.git;a=blobdiff_plain;f=src%2Fcrypto.rs;fp=src%2Fcrypto.rs;h=16fbaa0c6b8094fc26a9c2e7537391ee11562b7e;hp=26cbe687018baf51e4492135e4ac9e1c1980f1c5;hb=0a8aa98e54e76ba7306eee635c3f3ef3d397173e;hpb=bec878adc200ba7794d8510e2599a95b9050f976 diff --git a/src/crypto.rs b/src/crypto.rs index 26cbe68..16fbaa0 100644 --- a/src/crypto.rs +++ b/src/crypto.rs @@ -33,6 +33,12 @@ fn decode_key(key: &str) -> Result, KeyError> { } } +/// Return a random key encoded in base64. +pub fn generate_key() -> String { + let key = rand::thread_rng().gen::<[u8; 16]>(); + base64::encode(key) +} + /// Encrypt the given text with the given key (first version). The key length must be 128 bits encoded in base64. /// Ouput formats: /// * 'version' = 1: "1" + base_64( + hash(message) + aes(message))