tor-keymgr: Test x25519 key parsing.
This commit is contained in:
parent
17d965e894
commit
fade75ae16
|
@ -241,6 +241,9 @@ mod tests {
|
|||
const OPENSSH_ED25519: &[u8] = include_bytes!("../../testdata/ed25519_openssh.private");
|
||||
const OPENSSH_ED25519_BAD: &[u8] = include_bytes!("../../testdata/ed25519_openssh_bad.private");
|
||||
const OPENSSH_DSA: &[u8] = include_bytes!("../../testdata/dsa_openssh.private");
|
||||
const OPENSSH_X25519: &[u8] = include_bytes!("../../testdata/x25519_openssh.private");
|
||||
const OPENSSH_X25519_UNKNOWN_ALGORITHM: &[u8] =
|
||||
include_bytes!("../../testdata/x25519_openssh_unknown_algorithm.private");
|
||||
|
||||
#[test]
|
||||
fn wrong_key_type() {
|
||||
|
@ -284,4 +287,31 @@ mod tests {
|
|||
|
||||
assert!(erased_key.downcast::<ed25519::Keypair>().is_ok());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn x25519_key() {
|
||||
let key_type = KeyType::X25519StaticSecret;
|
||||
let key = UnparsedOpenSshKey::new(OPENSSH_X25519.into(), PathBuf::from("/dummy/path"));
|
||||
let erased_key = key_type.parse_ssh_format_erased(key).unwrap();
|
||||
|
||||
assert!(erased_key.downcast::<curve25519::StaticSecret>().is_ok());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn invalid_x25519_key() {
|
||||
let key_type = KeyType::X25519StaticSecret;
|
||||
let key = UnparsedOpenSshKey::new(
|
||||
OPENSSH_X25519_UNKNOWN_ALGORITHM.into(),
|
||||
PathBuf::from("/dummy/path"),
|
||||
);
|
||||
let err = key_type
|
||||
.parse_ssh_format_erased(key)
|
||||
.map(|_| "<type erased key>")
|
||||
.unwrap_err();
|
||||
|
||||
assert_eq!(
|
||||
err.to_string(),
|
||||
"Unexpected OpenSSH key type: wanted X25519, found pangolin@torproject.org"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAPQAAABV4MjU1MT
|
||||
lAdG9ycHJvamVjdC5vcmcAAAAgD3MDTeSLGUGD1Re2s6aF6g73KSyiteXjV1SL+pu6ASUA
|
||||
AAB4wA/uXMAP7lwAAAAVeDI1NTE5QHRvcnByb2plY3Qub3JnAAAAIA9zA03kixlBg9UXtr
|
||||
OmheoO9yksorXl41dUi/qbugElAAAAIDCADBQ5fbboMIMbmOgHMfHZEaIcdm0TF2Kt8bHc
|
||||
pz5zAAAACHRlc3Qta2V5AQID
|
||||
-----END OPENSSH PRIVATE KEY-----
|
|
@ -0,0 +1,7 @@
|
|||
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAPwAAABdwYW5nb2
|
||||
xpbkB0b3Jwcm9qZWN0Lm9yZwAAACBFTBevfAXZy6Ut6i9PSHeXHUpaJ6+NKabGzeoT6rFV
|
||||
DgAAAHjiJEYk4iRGJAAAABdwYW5nb2xpbkB0b3Jwcm9qZWN0Lm9yZwAAACBFTBevfAXZy6
|
||||
Ut6i9PSHeXHUpaJ6+NKabGzeoT6rFVDgAAACBo1W5vk9S8KAG7icAnKfq0NasfGTLO2+MJ
|
||||
ifSnMVvXSgAAAAh0ZXN0LWtleQE=
|
||||
-----END OPENSSH PRIVATE KEY-----
|
Loading…
Reference in New Issue