Skip to content

Commit

Permalink
Merge pull request #149 from ANSSI-FR/dependabot/cargo/pem-2
Browse files Browse the repository at this point in the history
Update pem requirement from 1 to 2
  • Loading branch information
commial committed Apr 24, 2023
2 parents 38c96e8 + 1e3c1a0 commit 537fe6c
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 15 deletions.
2 changes: 1 addition & 1 deletion curve25519-parser/Cargo.toml
Expand Up @@ -16,7 +16,7 @@ der-parser = { version = "8", default-features = false}
x25519-dalek = { version = "1", default-features = false}
curve25519-dalek = { version = "3", default-features = false, features = ["u64_backend"]}
sha2 = { version = "0", default-features = false}
pem = { version = "1", default-features = false}
pem = { version = "2", default-features = false}

[dependencies.rand_core]
version = "0.6"
Expand Down
22 changes: 8 additions & 14 deletions curve25519-parser/src/lib.rs
Expand Up @@ -232,10 +232,10 @@ const PRIVATE_TAG: &[u8] = b"PRIVATE KEY";
pub fn parse_openssl_25519_pubkey(data: &[u8]) -> Result<PublicKey, Curve25519ParserError> {
if let Ok(pem_data) = pem::parse(data) {
// First, try as a PEM
if pem_data.tag.as_bytes() != PUBLIC_TAG {
if pem_data.tag().as_bytes() != PUBLIC_TAG {
return Err(Curve25519ParserError::InvalidPEMTag);
}
parse_openssl_25519_pubkey_der(&pem_data.contents)
parse_openssl_25519_pubkey_der(pem_data.contents())
} else {
// Fallback to DER format
parse_openssl_25519_pubkey_der(data)
Expand All @@ -246,10 +246,10 @@ pub fn parse_openssl_25519_pubkey(data: &[u8]) -> Result<PublicKey, Curve25519Pa
pub fn parse_openssl_25519_privkey(data: &[u8]) -> Result<StaticSecret, Curve25519ParserError> {
if let Ok(pem_data) = pem::parse(data) {
// First, try as a PEM
if pem_data.tag.as_bytes() != PRIVATE_TAG {
if pem_data.tag().as_bytes() != PRIVATE_TAG {
return Err(Curve25519ParserError::InvalidPEMTag);
}
parse_openssl_25519_privkey_der(&pem_data.contents)
parse_openssl_25519_privkey_der(pem_data.contents())
} else {
// Fallback to DER format
parse_openssl_25519_privkey_der(data)
Expand All @@ -262,10 +262,10 @@ pub fn parse_openssl_25519_pubkeys_pem_many(
) -> Result<Vec<PublicKey>, Curve25519ParserError> {
let mut output = Vec::new();
for pem_data in pem::parse_many(data)? {
if pem_data.tag.as_bytes() != PUBLIC_TAG {
if pem_data.tag().as_bytes() != PUBLIC_TAG {
return Err(Curve25519ParserError::InvalidPEMTag);
}
output.push(parse_openssl_25519_pubkey_der(&pem_data.contents)?);
output.push(parse_openssl_25519_pubkey_der(pem_data.contents())?);
}
Ok(output)
}
Expand All @@ -287,18 +287,12 @@ pub struct KeyPair {

impl KeyPair {
pub fn public_as_pem(&self) -> String {
let out = pem::Pem {
tag: PUB_KEY_TAG.to_string(),
contents: self.public_der.to_vec(),
};
let out = pem::Pem::new(PUB_KEY_TAG, self.public_der.to_vec());
pem::encode(&out)
}

pub fn private_as_pem(&self) -> String {
let out = pem::Pem {
tag: PRIV_KEY_TAG.to_string(),
contents: self.private_der.to_vec(),
};
let out = pem::Pem::new(PRIV_KEY_TAG, self.private_der.to_vec());
pem::encode(&out)
}
}
Expand Down

0 comments on commit 537fe6c

Please sign in to comment.