KeyMint VTS: test curve 25519 functionality

- Add CURVE_25519 as a supported curve for EC operations.
- Add a helper that checks whether the HAL is of a version that is
  expected to support curve 25519, and skip relevant tests if not.
- Ed25519 support
  - Update KeyMintAidlTestBase::LocalVerifyMessage to cope with a public
    key of type EVP_PKEY_ED25519.
  - Add a test key pair generated with openssl command line.
  - Key generation test
  - Key import test for raw format
  - Key import test for PKCS#8 format
  - Key import failures tests
  - Signature test
  - Check that purposes cannot be combined (Ed25519 != X25519)
  - Check that Ed25519 key can be attested to
  - Implicitly check that an Ed25519 key can be used for attestation
    (as it is in ValidCurves())
  - Force Digest::NONE for Ed25519 throughout.
- X25519 support
  - Add a test key pair generated with openssl command line.
  - Key generation test
  - Key import test for raw format
  - Key import test for PKCS#8 format
  - Key import failures tests
  - Key agreement test, including...
  - Refactoring of existing key agreement test for re-use
  - Update key agreement checks to cope with a public key of type
    EVP_PLEY_X25519.
  - Key agreement test using imported key
  - Check that purposes cannot be combined (Ed25519 != X25519)

Bug: 194358913
Test: VtsAidlKeyMintTargetTest
Change-Id: Ifa0f95fdfba4387843c8e821c2ca977da0488fa6
diff --git a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h
index 61f9d4d..27cb99c 100644
--- a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h
+++ b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h
@@ -80,6 +80,8 @@
     uint32_t boot_patch_level(const vector<KeyCharacteristics>& key_characteristics);
     uint32_t boot_patch_level();
 
+    bool Curve25519Supported();
+
     ErrorCode GetReturnErrorCode(const Status& result);
 
     ErrorCode GenerateKey(const AuthorizationSet& key_desc, vector<uint8_t>* key_blob,