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: &[u8] = include_bytes!("../../testdata/ed25519_openssh.private");
|
||||||
const OPENSSH_ED25519_BAD: &[u8] = include_bytes!("../../testdata/ed25519_openssh_bad.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_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]
|
#[test]
|
||||||
fn wrong_key_type() {
|
fn wrong_key_type() {
|
||||||
|
@ -284,4 +287,31 @@ mod tests {
|
||||||
|
|
||||||
assert!(erased_key.downcast::<ed25519::Keypair>().is_ok());
|
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