Skip to content

Commit

Permalink
Merge pull request #1570 from oasisprotocol/nhynes/ec-precompile-more…
Browse files Browse the repository at this point in the history
…-key-formats

runtime-sdk: remove compressed format requirement from ECDSA precompiles
  • Loading branch information
nhynes authored Nov 27, 2023
2 parents 0641464 + e7f87c0 commit f2026f0
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 15 deletions.
8 changes: 3 additions & 5 deletions runtime-sdk/src/crypto/signature/secp256k1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,9 @@ impl PublicKey {

/// Construct a public key from a slice of bytes.
pub fn from_bytes(bytes: &[u8]) -> Result<Self, Error> {
let ep = k256::EncodedPoint::from_bytes(bytes).map_err(|_| Error::MalformedPublicKey)?;
if !ep.is_compressed() {
return Err(Error::MalformedPublicKey);
}
Ok(PublicKey(ep))
k256::EncodedPoint::from_bytes(bytes)
.map_err(|_| Error::MalformedPublicKey)
.map(PublicKey)
}

/// Verify a signature.
Expand Down
8 changes: 3 additions & 5 deletions runtime-sdk/src/crypto/signature/secp256r1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,9 @@ impl PublicKey {

/// Construct a public key from a slice of bytes.
pub fn from_bytes(bytes: &[u8]) -> Result<Self, Error> {
let ep = p256::EncodedPoint::from_bytes(bytes).map_err(|_| Error::MalformedPublicKey)?;
if !ep.is_compressed() {
return Err(Error::MalformedPublicKey);
}
Ok(PublicKey(ep))
p256::EncodedPoint::from_bytes(bytes)
.map_err(|_| Error::MalformedPublicKey)
.map(PublicKey)
}

/// Verify a signature.
Expand Down
8 changes: 3 additions & 5 deletions runtime-sdk/src/crypto/signature/secp384r1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,9 @@ impl PublicKey {

/// Construct a public key from a slice of bytes.
pub fn from_bytes(bytes: &[u8]) -> Result<Self, Error> {
let ep = p384::EncodedPoint::from_bytes(bytes).map_err(|_| Error::MalformedPublicKey)?;
if !ep.is_compressed() {
return Err(Error::MalformedPublicKey);
}
Ok(PublicKey(ep))
p384::EncodedPoint::from_bytes(bytes)
.map_err(|_| Error::MalformedPublicKey)
.map(PublicKey)
}

/// Verify a signature.
Expand Down

0 comments on commit f2026f0

Please sign in to comment.