aboutsummaryrefslogtreecommitdiff
path: root/src/util.rs
diff options
context:
space:
mode:
authorRobin Krahl <robin.krahl@ireas.org>2020-01-28 19:42:41 +0100
committerRobin Krahl <robin.krahl@ireas.org>2020-01-28 21:05:03 +0100
commit669fbb40d894460e9603dcf6e953373e53a19347 (patch)
tree0969d9f734fda35a9cb9b21cb063e63b615d1a81 /src/util.rs
parent817409140a8778215d2d65d614d3672166fff576 (diff)
downloadnitrokey-rs-669fbb40d894460e9603dcf6e953373e53a19347.tar.gz
nitrokey-rs-669fbb40d894460e9603dcf6e953373e53a19347.tar.bz2
Use CString to store temporary passwords
This patch changes the generate_password function and the User and Admin structs to use a CString instead of a Vec<u8> when storing temporary passwords. This makes sure that the strings that are passed to the C API are properly null-terminated.
Diffstat (limited to 'src/util.rs')
-rw-r--r--src/util.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/util.rs b/src/util.rs
index 5a56c55..b9b1a68 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -75,10 +75,10 @@ pub fn get_last_error() -> Error {
}
}
-pub fn generate_password(length: usize) -> Result<Vec<u8>, Error> {
+pub fn generate_password(length: usize) -> Result<CString, Error> {
let mut data = vec![0u8; length];
OsRng.fill_bytes(&mut data[..]);
- Ok(data)
+ get_cstring(data)
}
pub fn get_cstring<T: Into<Vec<u8>>>(s: T) -> Result<CString, Error> {