diff options
Diffstat (limited to 'security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp')
-rw-r--r-- | security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp index 61f2f771ab..80bd057dfa 100644 --- a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp +++ b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp @@ -743,6 +743,15 @@ vector<uint32_t> KeyMintAidlTestBase::InvalidKeySizes(Algorithm algorithm) { return {224, 384, 521}; case Algorithm::AES: return {192}; + case Algorithm::TRIPLE_DES: + return {56}; + default: + return {}; + } + } else { + switch (algorithm) { + case Algorithm::TRIPLE_DES: + return {56}; default: return {}; } @@ -750,6 +759,68 @@ vector<uint32_t> KeyMintAidlTestBase::InvalidKeySizes(Algorithm algorithm) { return {}; } +vector<BlockMode> KeyMintAidlTestBase::ValidBlockModes(Algorithm algorithm) { + switch (algorithm) { + case Algorithm::AES: + return { + BlockMode::CBC, + BlockMode::CTR, + BlockMode::ECB, + BlockMode::GCM, + }; + case Algorithm::TRIPLE_DES: + return { + BlockMode::CBC, + BlockMode::ECB, + }; + default: + return {}; + } +} + +vector<PaddingMode> KeyMintAidlTestBase::ValidPaddingModes(Algorithm algorithm, + BlockMode blockMode) { + switch (algorithm) { + case Algorithm::AES: + switch (blockMode) { + case BlockMode::CBC: + case BlockMode::ECB: + return {PaddingMode::NONE, PaddingMode::PKCS7}; + case BlockMode::CTR: + case BlockMode::GCM: + return {PaddingMode::NONE}; + default: + return {}; + }; + case Algorithm::TRIPLE_DES: + switch (blockMode) { + case BlockMode::CBC: + case BlockMode::ECB: + return {PaddingMode::NONE, PaddingMode::PKCS7}; + default: + return {}; + }; + default: + return {}; + } +} + +vector<PaddingMode> KeyMintAidlTestBase::InvalidPaddingModes(Algorithm algorithm, + BlockMode blockMode) { + switch (algorithm) { + case Algorithm::AES: + switch (blockMode) { + case BlockMode::CTR: + case BlockMode::GCM: + return {PaddingMode::PKCS7}; + default: + return {}; + }; + default: + return {}; + } +} + vector<EcCurve> KeyMintAidlTestBase::ValidCurves() { if (securityLevel_ == SecurityLevel::STRONGBOX) { return {EcCurve::P_256}; |