diff options
author | Shawn Willden <swillden@google.com> | 2020-12-17 09:07:27 -0700 |
---|---|---|
committer | Shawn Willden <swillden@google.com> | 2021-01-20 22:45:40 -0700 |
commit | 0e80b5d108e288317fee7584cb2acf58d89e88a0 (patch) | |
tree | 83d9beffbeb7e8e9a990befb6801717c2f5fb89c /security/keymint/support/include | |
parent | 1c15423de7156bf1f133d339939cccec0e98ad03 (diff) |
Add basic testing for KeyMint certs.
This is by no means complete, but it validates basic functionality.
More is coming.
Test: VtsAidlKeyMintTargetTest
Change-Id: I0727a9f5b137b58b9a2f0aaf9935bfdc6525df8f
Diffstat (limited to 'security/keymint/support/include')
-rw-r--r-- | security/keymint/support/include/keymint_support/authorization_set.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/security/keymint/support/include/keymint_support/authorization_set.h b/security/keymint/support/include/keymint_support/authorization_set.h index 596bb89c39..1407c5f62b 100644 --- a/security/keymint/support/include/keymint_support/authorization_set.h +++ b/security/keymint/support/include/keymint_support/authorization_set.h @@ -259,6 +259,12 @@ class AuthorizationSetBuilder : public AuthorizationSet { size - 1); // drop the terminating '\0' } + template <Tag tag> + AuthorizationSetBuilder& Authorization(TypedTag<TagType::BYTES, tag> ttag, + const std::string& data) { + return Authorization(ttag, reinterpret_cast<const uint8_t*>(data.data()), data.size()); + } + AuthorizationSetBuilder& Authorizations(const AuthorizationSet& set) { for (const auto& entry : set) { push_back(entry); @@ -294,6 +300,20 @@ class AuthorizationSetBuilder : public AuthorizationSet { AuthorizationSetBuilder& Digest(std::vector<Digest> digests); AuthorizationSetBuilder& Padding(std::initializer_list<PaddingMode> paddings); + AuthorizationSetBuilder& AttestationChallenge(const std::string& challenge) { + return Authorization(TAG_ATTESTATION_CHALLENGE, challenge); + } + AuthorizationSetBuilder& AttestationChallenge(std::vector<uint8_t> challenge) { + return Authorization(TAG_ATTESTATION_CHALLENGE, challenge); + } + + AuthorizationSetBuilder& AttestationApplicationId(const std::string& id) { + return Authorization(TAG_ATTESTATION_APPLICATION_ID, id); + } + AuthorizationSetBuilder& AttestationApplicationId(std::vector<uint8_t> id) { + return Authorization(TAG_ATTESTATION_APPLICATION_ID, id); + } + template <typename... T> AuthorizationSetBuilder& BlockMode(T&&... a) { return BlockMode({std::forward<T>(a)...}); |