Skip to content

Commit

Permalink
Update nitrokey crate to 0.3.4
Browse files Browse the repository at this point in the history
This change updates the nitrokey crate to version 0.3.4.

Import subrepo nitrokey/:nitrokey at 41cdc1f7091a3c442241dbb2379c50dbcc7e9c5f
  • Loading branch information
d-e-s-o committed Jan 23, 2019
1 parent 1c6df67 commit 8b2d881
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 13 deletions.
2 changes: 1 addition & 1 deletion nitrocli/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Unreleased
- Store cached PINs on a per-device basis to better support multi-device
scenarios
- Further decreased binary size by using system allocator
- Bumped `nitrokey` dependency to `0.3.3`
- Bumped `nitrokey` dependency to `0.3.4`
- Bumped `rand` dependency to `0.6.4`
- Removed `rustc_version`, `semver`, and `semver-parser` dependencies
- Bumped `nitrokey-sys` dependency to `3.4.3`
Expand Down
4 changes: 2 additions & 2 deletions nitrocli/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions nitrokey/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# v0.3.4 (2019-01-20)
- Fix authentication methods that assumed that `char` is signed.

# v0.3.3 (2019-01-16)
- Add the `get_production_info` and `clear_new_sd_card_warning` methods to the
`Storage` struct.
Expand Down
2 changes: 1 addition & 1 deletion nitrokey/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "nitrokey"
version = "0.3.3"
version = "0.3.4"
authors = ["Robin Krahl <[email protected]>"]
edition = "2018"
homepage = "https://code.ireas.org/nitrokey-rs/"
Expand Down
19 changes: 10 additions & 9 deletions nitrokey/src/auth.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use std::ops::Deref;
use std::os::raw::c_char;
use std::os::raw::c_int;

use nitrokey_sys;
Expand Down Expand Up @@ -147,7 +148,7 @@ fn authenticate<D, A, T>(device: D, password: &str, callback: T) -> Result<A, (D
where
D: Device,
A: AuthenticatedDevice<D>,
T: Fn(*const i8, *const i8) -> c_int,
T: Fn(*const c_char, *const c_char) -> c_int,
{
let temp_password = match generate_password(TEMPORARY_PASSWORD_LENGTH) {
Ok(temp_password) => temp_password,
Expand All @@ -158,7 +159,7 @@ where
Err(err) => return Err((device, err)),
};
let password_ptr = password.as_ptr();
let temp_password_ptr = temp_password.as_ptr() as *const i8;
let temp_password_ptr = temp_password.as_ptr() as *const c_char;
return match callback(password_ptr, temp_password_ptr) {
0 => Ok(A::new(device, temp_password)),
rv => Err((device, CommandError::from(rv))),
Expand Down Expand Up @@ -217,14 +218,14 @@ impl<T: Device> Deref for User<T> {
impl<T: Device> GenerateOtp for User<T> {
fn get_hotp_code(&self, slot: u8) -> Result<String, CommandError> {
unsafe {
let temp_password_ptr = self.temp_password.as_ptr() as *const i8;
let temp_password_ptr = self.temp_password.as_ptr() as *const c_char;
return result_from_string(nitrokey_sys::NK_get_hotp_code_PIN(slot, temp_password_ptr));
}
}

fn get_totp_code(&self, slot: u8) -> Result<String, CommandError> {
unsafe {
let temp_password_ptr = self.temp_password.as_ptr() as *const i8;
let temp_password_ptr = self.temp_password.as_ptr() as *const c_char;
return result_from_string(nitrokey_sys::NK_get_totp_code_PIN(
slot,
0,
Expand Down Expand Up @@ -297,17 +298,17 @@ impl<T: Device> Admin<T> {
raw_config.scrollock,
raw_config.user_password,
false,
self.temp_password.as_ptr() as *const i8,
self.temp_password.as_ptr() as *const c_char,
))
}
}

fn write_otp_slot<C>(&self, data: OtpSlotData, callback: C) -> Result<(), CommandError>
where
C: Fn(RawOtpSlotData, *const i8) -> c_int,
C: Fn(RawOtpSlotData, *const c_char) -> c_int,
{
let raw_data = RawOtpSlotData::new(data)?;
let temp_password_ptr = self.temp_password.as_ptr() as *const i8;
let temp_password_ptr = self.temp_password.as_ptr() as *const c_char;
get_command_result(callback(raw_data, temp_password_ptr))
}
}
Expand Down Expand Up @@ -346,12 +347,12 @@ impl<T: Device> ConfigureOtp for Admin<T> {
}

fn erase_hotp_slot(&self, slot: u8) -> Result<(), CommandError> {
let temp_password_ptr = self.temp_password.as_ptr() as *const i8;
let temp_password_ptr = self.temp_password.as_ptr() as *const c_char;
unsafe { get_command_result(nitrokey_sys::NK_erase_hotp_slot(slot, temp_password_ptr)) }
}

fn erase_totp_slot(&self, slot: u8) -> Result<(), CommandError> {
let temp_password_ptr = self.temp_password.as_ptr() as *const i8;
let temp_password_ptr = self.temp_password.as_ptr() as *const c_char;
unsafe { get_command_result(nitrokey_sys::NK_erase_totp_slot(slot, temp_password_ptr)) }
}
}
Expand Down

0 comments on commit 8b2d881

Please sign in to comment.