[bssl] Support ED25519/X25519 public key types for EVP_PKEY
These ED25519 key type will be needed in DICE certificate
verification later.
Bug: 310931749
Test: atest libbssl_avf_nostd.test
Change-Id: I9dda103f3f46f781dec6f0062cdbf29d3078559f
diff --git a/libs/bssl/tests/eckey_test.rs b/libs/bssl/tests/eckey_test.rs
index 4f0697c..9c503ba 100644
--- a/libs/bssl/tests/eckey_test.rs
+++ b/libs/bssl/tests/eckey_test.rs
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-use bssl_avf::{sha256, ApiName, EcKey, EcdsaError, Error, PKey, Result};
+use bssl_avf::{sha256, ApiName, Digester, EcKey, EcdsaError, Error, PKey, Result};
use coset::CborSerializable;
use spki::{
der::{AnyRef, Decode},
@@ -85,7 +85,9 @@
let digest = sha256(MESSAGE1)?;
let signature = ec_key.ecdsa_sign(&digest)?;
- ec_key.ecdsa_verify(&signature, &digest)
+ ec_key.ecdsa_verify(&signature, &digest)?;
+ let pkey: PKey = ec_key.try_into()?;
+ pkey.verify(&signature, MESSAGE1, Some(Digester::sha256()))
}
#[test]
@@ -100,6 +102,12 @@
let err = ec_key2.ecdsa_verify(&signature, &digest).unwrap_err();
let expected_err = Error::CallFailed(ApiName::ECDSA_verify, EcdsaError::BadSignature.into());
assert_eq!(expected_err, err);
+
+ let pkey: PKey = ec_key2.try_into()?;
+ let err = pkey.verify(&signature, MESSAGE1, Some(Digester::sha256())).unwrap_err();
+ let expected_err =
+ Error::CallFailed(ApiName::EVP_DigestVerify, EcdsaError::BadSignature.into());
+ assert_eq!(expected_err, err);
Ok(())
}