openpgp-card: add Curve::Unknown variant

This commit is contained in:
Heiko Schaefer 2023-08-29 17:37:55 +02:00
parent da776bc4cf
commit 423c9d23ee
No known key found for this signature in database
GPG key ID: 4A849A1904CCBD7D
2 changed files with 8 additions and 6 deletions

View file

@ -247,7 +247,7 @@ pub fn public_key_material_to_key(
match key_type {
KeyType::Authentication | KeyType::Signing => {
if algo_ecc.curve() == Curve::Ed25519 {
if algo_ecc.curve() == &Curve::Ed25519 {
// EdDSA
let k4 =
Key4::import_public_ed25519(ecc.data(), time).map_err(|e| {
@ -277,7 +277,7 @@ pub fn public_key_material_to_key(
}
}
KeyType::Decryption => {
if algo_ecc.curve() == Curve::Cv25519 {
if algo_ecc.curve() == &Curve::Cv25519 {
// EdDSA
let k4 = Key4::import_public_cv25519(ecc.data(), hash, sym, time)
.map_err(|e| {

View file

@ -298,8 +298,8 @@ impl EccAttrs {
self.ecc_type
}
pub fn curve(&self) -> Curve {
self.curve
pub fn curve(&self) -> &Curve {
&self.curve
}
pub fn oid(&self) -> &[u8] {
@ -312,7 +312,7 @@ impl EccAttrs {
}
/// Enum for naming ECC curves, and mapping them to/from their OIDs.
#[derive(Debug, Clone, Copy, Eq, PartialEq)]
#[derive(Debug, Clone, Eq, PartialEq)]
#[non_exhaustive]
pub enum Curve {
NistP256r1,
@ -326,6 +326,7 @@ pub enum Curve {
Cv25519,
Ed448,
X448,
Unknown(Vec<u8>),
}
impl Curve {
@ -343,6 +344,7 @@ impl Curve {
Cv25519 => oid::CV25519,
Ed448 => oid::ED448,
X448 => oid::X448,
Unknown(v) => v,
}
}
}
@ -370,7 +372,7 @@ impl TryFrom<&[u8]> for Curve {
oid::ED448 => Ed448,
oid::X448 => X448,
_ => return Err(Error::ParseError(format!("Unknown curve OID {oid:?}"))),
o => Unknown(o.to_vec()),
};
Ok(curve)