Automatically generate a key if the key file isn't found.
[rup.git] / src / crypto.rs
index 26cbe68..16fbaa0 100644 (file)
@@ -33,6 +33,12 @@ fn decode_key(key: &str) -> Result<Vec<u8>, KeyError> {
     }\r
 }\r
 \r
+/// Return a random key encoded in base64.\r
+pub fn generate_key() -> String {\r
+    let key = rand::thread_rng().gen::<[u8; 16]>();\r
+    base64::encode(key)\r
+}\r
+\r
 /// Encrypt the given text with the given key (first version). The key length must be 128 bits encoded in base64.\r
 /// Ouput formats:\r
 /// * 'version' = 1: "1" + base_64(<IV> + hash(message) + aes(message))\r