From f9a925d90b0f47fdbbb9dba3889bfdab5de60931 Mon Sep 17 00:00:00 2001 From: Matthew Maurer Date: Tue, 2 Apr 2019 14:26:15 -0700 Subject: Many operations could have been const Only tested by building because the only change is to annotate with consts. Change-Id: Ie353e9050b5ee3261fb6420a7f6ee12543d2bc79 Test: build --- include/keymaster/km_openssl/ecdsa_operation.h | 8 ++++---- include/keymaster/km_openssl/rsa_operation.h | 17 +++++++++-------- include/keymaster/operation.h | 2 +- km_openssl/block_cipher_operation.cpp | 2 +- km_openssl/block_cipher_operation.h | 2 +- km_openssl/ecdsa_operation.cpp | 2 +- km_openssl/hmac_operation.cpp | 2 +- km_openssl/hmac_operation.h | 2 +- km_openssl/rsa_operation.cpp | 4 ++-- legacy_support/ecdsa_keymaster1_operation.cpp | 2 +- legacy_support/ecdsa_keymaster1_operation.h | 2 +- legacy_support/keymaster_passthrough_operation.h | 2 +- legacy_support/rsa_keymaster1_operation.cpp | 2 +- legacy_support/rsa_keymaster1_operation.h | 2 +- 14 files changed, 26 insertions(+), 25 deletions(-) diff --git a/include/keymaster/km_openssl/ecdsa_operation.h b/include/keymaster/km_openssl/ecdsa_operation.h index 6050784..4be0d2e 100644 --- a/include/keymaster/km_openssl/ecdsa_operation.h +++ b/include/keymaster/km_openssl/ecdsa_operation.h @@ -84,20 +84,20 @@ class EcdsaOperationFactory : public OperationFactory { private: KeyType registry_key() const override { return KeyType(KM_ALGORITHM_EC, purpose()); } OperationPtr CreateOperation(Key&& key, const AuthorizationSet& begin_params, - keymaster_error_t* error) override; + keymaster_error_t* error) const override; const keymaster_digest_t* SupportedDigests(size_t* digest_count) const override; virtual keymaster_purpose_t purpose() const = 0; virtual Operation* InstantiateOperation(AuthorizationSet&& hw_enforced, AuthorizationSet&& sw_enforced, - keymaster_digest_t digest, EVP_PKEY* key) = 0; + keymaster_digest_t digest, EVP_PKEY* key) const = 0; }; class EcdsaSignOperationFactory : public EcdsaOperationFactory { private: keymaster_purpose_t purpose() const override { return KM_PURPOSE_SIGN; } Operation* InstantiateOperation(AuthorizationSet&& hw_enforced, AuthorizationSet&& sw_enforced, - keymaster_digest_t digest, EVP_PKEY* key) override { + keymaster_digest_t digest, EVP_PKEY* key) const override { return new (std::nothrow) EcdsaSignOperation(move(hw_enforced), move(sw_enforced), digest, key); } @@ -107,7 +107,7 @@ class EcdsaVerifyOperationFactory : public EcdsaOperationFactory { public: keymaster_purpose_t purpose() const override { return KM_PURPOSE_VERIFY; } Operation* InstantiateOperation(AuthorizationSet&& hw_enforced, AuthorizationSet&& sw_enforced, - keymaster_digest_t digest, EVP_PKEY* key) override { + keymaster_digest_t digest, EVP_PKEY* key) const override { return new (std::nothrow) EcdsaVerifyOperation(move(hw_enforced), move(sw_enforced), digest, key); } diff --git a/include/keymaster/km_openssl/rsa_operation.h b/include/keymaster/km_openssl/rsa_operation.h index 578a3d2..dd14b57 100644 --- a/include/keymaster/km_openssl/rsa_operation.h +++ b/include/keymaster/km_openssl/rsa_operation.h @@ -188,7 +188,7 @@ class RsaOperationFactory : public OperationFactory { virtual keymaster_purpose_t purpose() const = 0; OperationPtr CreateOperation(Key&& key, const AuthorizationSet& begin_params, - keymaster_error_t* error) override { + keymaster_error_t* error) const override { return OperationPtr(CreateRsaOperation(move(key), begin_params, error)); } const keymaster_digest_t* SupportedDigests(size_t* digest_count) const override; @@ -196,13 +196,14 @@ class RsaOperationFactory : public OperationFactory { protected: static EVP_PKEY* GetRsaKey(Key&& key, keymaster_error_t* error); virtual RsaOperation* CreateRsaOperation(Key&& key, const AuthorizationSet& begin_params, - keymaster_error_t* error); + keymaster_error_t* error) const; private: virtual RsaOperation* InstantiateOperation(AuthorizationSet&& hw_enforced, AuthorizationSet&& sw_enforced, keymaster_digest_t digest, - keymaster_padding_t padding, EVP_PKEY* key) = 0; + keymaster_padding_t padding, + EVP_PKEY* key) const = 0; }; /** @@ -220,7 +221,7 @@ class RsaDigestingOperationFactory : public RsaOperationFactory { class RsaCryptingOperationFactory : public RsaOperationFactory { public: RsaOperation* CreateRsaOperation(Key&& key, const AuthorizationSet& begin_params, - keymaster_error_t* error) override; + keymaster_error_t* error) const override; const keymaster_padding_t* SupportedPaddingModes(size_t* padding_mode_count) const override; }; @@ -232,7 +233,7 @@ class RsaSigningOperationFactory : public RsaDigestingOperationFactory { keymaster_purpose_t purpose() const override { return KM_PURPOSE_SIGN; } RsaOperation* InstantiateOperation(AuthorizationSet&& hw_enforced, AuthorizationSet&& sw_enforced, keymaster_digest_t digest, - keymaster_padding_t padding, EVP_PKEY* key) override { + keymaster_padding_t padding, EVP_PKEY* key) const override { return new (std::nothrow) RsaSignOperation(move(hw_enforced), move(sw_enforced), digest, padding, key); } @@ -245,7 +246,7 @@ class RsaVerificationOperationFactory : public RsaDigestingOperationFactory { keymaster_purpose_t purpose() const override { return KM_PURPOSE_VERIFY; } RsaOperation* InstantiateOperation(AuthorizationSet&& hw_enforced, AuthorizationSet&& sw_enforced, keymaster_digest_t digest, - keymaster_padding_t padding, EVP_PKEY* key) override { + keymaster_padding_t padding, EVP_PKEY* key) const override { return new (std::nothrow) RsaVerifyOperation(move(hw_enforced), move(sw_enforced), digest, padding, key); } @@ -258,7 +259,7 @@ class RsaEncryptionOperationFactory : public RsaCryptingOperationFactory { keymaster_purpose_t purpose() const override { return KM_PURPOSE_ENCRYPT; } RsaOperation* InstantiateOperation(AuthorizationSet&& hw_enforced, AuthorizationSet&& sw_enforced, keymaster_digest_t digest, - keymaster_padding_t padding, EVP_PKEY* key) override { + keymaster_padding_t padding, EVP_PKEY* key) const override { return new (std::nothrow) RsaEncryptOperation(move(hw_enforced), move(sw_enforced), digest, padding, key); } @@ -271,7 +272,7 @@ class RsaDecryptionOperationFactory : public RsaCryptingOperationFactory { keymaster_purpose_t purpose() const override { return KM_PURPOSE_DECRYPT; } RsaOperation* InstantiateOperation(AuthorizationSet&& hw_enforced, AuthorizationSet&& sw_enforced, keymaster_digest_t digest, - keymaster_padding_t padding, EVP_PKEY* key) override { + keymaster_padding_t padding, EVP_PKEY* key) const override { return new (std::nothrow) RsaDecryptOperation(move(hw_enforced), move(sw_enforced), digest, padding, key); } diff --git a/include/keymaster/operation.h b/include/keymaster/operation.h index 682aadf..f643e6b 100644 --- a/include/keymaster/operation.h +++ b/include/keymaster/operation.h @@ -53,7 +53,7 @@ class OperationFactory { // Factory methods virtual OperationPtr CreateOperation(Key&& key, const AuthorizationSet& begin_params, - keymaster_error_t* error) = 0; + keymaster_error_t* error) const = 0; // Informational methods. The returned arrays reference static memory and must not be // deallocated or modified. diff --git a/km_openssl/block_cipher_operation.cpp b/km_openssl/block_cipher_operation.cpp index 20bd2a6..91440ea 100644 --- a/km_openssl/block_cipher_operation.cpp +++ b/km_openssl/block_cipher_operation.cpp @@ -78,7 +78,7 @@ static keymaster_error_t GetAndValidateGcmTagLength(const AuthorizationSet& begi OperationPtr BlockCipherOperationFactory::CreateOperation(Key&& key, const AuthorizationSet& begin_params, - keymaster_error_t* error) { + keymaster_error_t* error) const { *error = KM_ERROR_OK; keymaster_block_mode_t block_mode; if (!begin_params.GetTagValue(TAG_BLOCK_MODE, &block_mode)) { diff --git a/km_openssl/block_cipher_operation.h b/km_openssl/block_cipher_operation.h index 1da94eb..92f510e 100644 --- a/km_openssl/block_cipher_operation.h +++ b/km_openssl/block_cipher_operation.h @@ -52,7 +52,7 @@ class BlockCipherOperationFactory : public OperationFactory { } OperationPtr CreateOperation(Key&& key, const AuthorizationSet& begin_params, - keymaster_error_t* error) override; + keymaster_error_t* error) const override; const keymaster_block_mode_t* SupportedBlockModes(size_t* block_mode_count) const override { return GetCipherDescription().SupportedBlockModes(block_mode_count); diff --git a/km_openssl/ecdsa_operation.cpp b/km_openssl/ecdsa_operation.cpp index 59ce624..cd9f1ce 100644 --- a/km_openssl/ecdsa_operation.cpp +++ b/km_openssl/ecdsa_operation.cpp @@ -29,7 +29,7 @@ static const keymaster_digest_t supported_digests[] = {KM_DIGEST_NONE, KM_D KM_DIGEST_SHA_2_384, KM_DIGEST_SHA_2_512}; OperationPtr EcdsaOperationFactory::CreateOperation(Key&& key, const AuthorizationSet& begin_params, - keymaster_error_t* error) { + keymaster_error_t* error) const { const EcKey& ecdsa_key = static_cast(key); UniquePtr pkey(EVP_PKEY_new()); diff --git a/km_openssl/hmac_operation.cpp b/km_openssl/hmac_operation.cpp index 30edf36..46941dc 100644 --- a/km_openssl/hmac_operation.cpp +++ b/km_openssl/hmac_operation.cpp @@ -35,7 +35,7 @@ typedef int openssl_size_t; namespace keymaster { OperationPtr HmacOperationFactory::CreateOperation(Key&& key, const AuthorizationSet& begin_params, - keymaster_error_t* error) { + keymaster_error_t* error) const { uint32_t min_mac_length_bits; if (!key.authorizations().GetTagValue(TAG_MIN_MAC_LENGTH, &min_mac_length_bits)) { LOG_E("HMAC key must have KM_TAG_MIN_MAC_LENGTH", 0); diff --git a/km_openssl/hmac_operation.h b/km_openssl/hmac_operation.h index e67af93..3485f70 100644 --- a/km_openssl/hmac_operation.h +++ b/km_openssl/hmac_operation.h @@ -56,7 +56,7 @@ class HmacOperationFactory : public OperationFactory { virtual KeyType registry_key() const { return KeyType(KM_ALGORITHM_HMAC, purpose()); } virtual OperationPtr CreateOperation(Key&& key, const AuthorizationSet& begin_params, - keymaster_error_t* error); + keymaster_error_t* error) const; virtual const keymaster_digest_t* SupportedDigests(size_t* digest_count) const; diff --git a/km_openssl/rsa_operation.cpp b/km_openssl/rsa_operation.cpp index b8d1443..d2ceeb5 100644 --- a/km_openssl/rsa_operation.cpp +++ b/km_openssl/rsa_operation.cpp @@ -61,7 +61,7 @@ const keymaster_digest_t* RsaOperationFactory::SupportedDigests(size_t* digest_c RsaOperation* RsaOperationFactory::CreateRsaOperation(Key&& key, const AuthorizationSet& begin_params, - keymaster_error_t* error) { + keymaster_error_t* error) const { keymaster_padding_t padding; if (!GetAndValidatePadding(begin_params, key, &padding, error)) return nullptr; @@ -90,7 +90,7 @@ RsaDigestingOperationFactory::SupportedPaddingModes(size_t* padding_mode_count) RsaOperation* RsaCryptingOperationFactory::CreateRsaOperation(Key&& key, const AuthorizationSet& begin_params, - keymaster_error_t* error) { + keymaster_error_t* error) const { UniquePtr op( RsaOperationFactory::CreateRsaOperation(move(key), begin_params, error)); if (op.get()) { diff --git a/legacy_support/ecdsa_keymaster1_operation.cpp b/legacy_support/ecdsa_keymaster1_operation.cpp index e3d2ace..f3cc4a2 100644 --- a/legacy_support/ecdsa_keymaster1_operation.cpp +++ b/legacy_support/ecdsa_keymaster1_operation.cpp @@ -97,7 +97,7 @@ static EVP_PKEY* GetEvpKey(const EcdsaKeymaster1Key& key, keymaster_error_t* err OperationPtr EcdsaKeymaster1OperationFactory::CreateOperation(Key&& key, const AuthorizationSet& begin_params, - keymaster_error_t* error) { + keymaster_error_t* error) const { keymaster_digest_t digest; if (!GetAndValidateDigest(begin_params, key, &digest, error)) return nullptr; diff --git a/legacy_support/ecdsa_keymaster1_operation.h b/legacy_support/ecdsa_keymaster1_operation.h index a24cc2b..5867a55 100644 --- a/legacy_support/ecdsa_keymaster1_operation.h +++ b/legacy_support/ecdsa_keymaster1_operation.h @@ -108,7 +108,7 @@ class EcdsaKeymaster1OperationFactory : public OperationFactory { KeyType registry_key() const override { return KeyType(KM_ALGORITHM_EC, purpose_); } OperationPtr CreateOperation(Key&& key, const AuthorizationSet& begin_params, - keymaster_error_t* error) override; + keymaster_error_t* error) const override; const keymaster_digest_t* SupportedDigests(size_t* digest_count) const override; const keymaster_padding_t* SupportedPaddingModes(size_t* padding_mode_count) const override; diff --git a/legacy_support/keymaster_passthrough_operation.h b/legacy_support/keymaster_passthrough_operation.h index 29c0372..aadcc73 100644 --- a/legacy_support/keymaster_passthrough_operation.h +++ b/legacy_support/keymaster_passthrough_operation.h @@ -102,7 +102,7 @@ class KeymasterPassthroughOperationFactory : public OperationFactory { // Factory methods OperationPtr CreateOperation(Key&& key, const AuthorizationSet& /*begin_params*/, - keymaster_error_t* error) override { + keymaster_error_t* error) const override { if (!error) return nullptr; *error = KM_ERROR_OK; OperationPtr op(new (std::nothrow) KeymasterPassthroughOperation( diff --git a/legacy_support/rsa_keymaster1_operation.cpp b/legacy_support/rsa_keymaster1_operation.cpp index dd2c094..c313206 100644 --- a/legacy_support/rsa_keymaster1_operation.cpp +++ b/legacy_support/rsa_keymaster1_operation.cpp @@ -118,7 +118,7 @@ static EVP_PKEY* GetEvpKey(const RsaKeymaster1Key& key, keymaster_error_t* error OperationPtr RsaKeymaster1OperationFactory::CreateOperation(Key&& key, const AuthorizationSet& begin_params, - keymaster_error_t* error) { + keymaster_error_t* error) const { keymaster_digest_t digest; if (!GetAndValidateDigest(begin_params, key, &digest, error)) return nullptr; diff --git a/legacy_support/rsa_keymaster1_operation.h b/legacy_support/rsa_keymaster1_operation.h index c0219ea..04d82c9 100644 --- a/legacy_support/rsa_keymaster1_operation.h +++ b/legacy_support/rsa_keymaster1_operation.h @@ -108,7 +108,7 @@ class RsaKeymaster1OperationFactory : public OperationFactory { KeyType registry_key() const override { return KeyType(KM_ALGORITHM_RSA, purpose_); } OperationPtr CreateOperation(Key&& key, const AuthorizationSet& begin_params, - keymaster_error_t* error) override; + keymaster_error_t* error) const override; const keymaster_digest_t* SupportedDigests(size_t* digest_count) const override; const keymaster_padding_t* SupportedPaddingModes(size_t* padding_mode_count) const override; -- cgit v1.2.3