warnings
This commit is contained in:
parent
bf1504cca6
commit
200c8ff71a
@ -60,7 +60,8 @@ pub trait HmacExtension {
|
||||
let mut digest = Sha256::new();
|
||||
digest.input(input);
|
||||
digest.result(&mut salt);
|
||||
self.get_hmac_assertion(credential, &salt, None).map(|secret| secret.0)
|
||||
self.get_hmac_assertion(credential, &salt, None)
|
||||
.map(|secret| secret.0)
|
||||
}
|
||||
}
|
||||
|
||||
@ -85,16 +86,17 @@ impl HmacExtension for FidoDevice {
|
||||
let key_agreement = || {
|
||||
let mut cur = Cursor::new(Vec::new());
|
||||
let mut encoder = Encoder::new(&mut cur);
|
||||
shared_secret
|
||||
.public_key
|
||||
.encode(&mut encoder).unwrap();
|
||||
shared_secret.public_key.encode(&mut encoder).unwrap();
|
||||
cur.set_position(0);
|
||||
let mut dec = GenericDecoder::new(Config::default(), cur);
|
||||
dec.value()
|
||||
};
|
||||
|
||||
let mut map = BTreeMap::new();
|
||||
map.insert(Key::Int(Int::from_i64(0x01)), key_agreement().map_err(|_| FidoErrorKind::Io)?);
|
||||
map.insert(
|
||||
Key::Int(Int::from_i64(0x01)),
|
||||
key_agreement().map_err(|_| FidoErrorKind::Io)?,
|
||||
);
|
||||
map.insert(
|
||||
Key::Int(Int::from_i64(0x02)),
|
||||
Value::Bytes(Bytes::Bytes(
|
||||
@ -166,7 +168,7 @@ impl HmacExtension for FidoDevice {
|
||||
let shared_secret = self.shared_secret.as_ref().unwrap();
|
||||
let mut decryptor = shared_secret.decryptor();
|
||||
let mut hmac_secret_combined = [0u8; 64];
|
||||
let mut output = RefWriteBuffer::new(&mut hmac_secret_combined);
|
||||
let _output = RefWriteBuffer::new(&mut hmac_secret_combined);
|
||||
let hmac_secret_enc = match response
|
||||
.auth_data
|
||||
.extensions
|
||||
@ -184,11 +186,15 @@ impl HmacExtension for FidoDevice {
|
||||
_ => Err(FidoErrorKind::CborDecode),
|
||||
}?;
|
||||
let mut hmac_secret = ([0u8; 32], [0u8; 32]);
|
||||
decryptor.decrypt(
|
||||
decryptor
|
||||
.decrypt(
|
||||
&mut RefReadBuffer::new(&hmac_secret_enc),
|
||||
&mut RefWriteBuffer::new(unsafe { std::mem::transmute::<_ ,&mut [u8; 64]>(&mut hmac_secret) }),
|
||||
&mut RefWriteBuffer::new(unsafe {
|
||||
std::mem::transmute::<_, &mut [u8; 64]>(&mut hmac_secret)
|
||||
}),
|
||||
true,
|
||||
);
|
||||
)
|
||||
.expect("failed to decrypt secret");
|
||||
Ok((hmac_secret.0, salt2.map(|_| hmac_secret.1)))
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user