summaryrefslogtreecommitdiff
path: root/security/keymint/support/include
diff options
context:
space:
mode:
authorShawn Willden <swillden@google.com>2020-12-17 09:07:27 -0700
committerShawn Willden <swillden@google.com>2021-01-20 22:45:40 -0700
commit0e80b5d108e288317fee7584cb2acf58d89e88a0 (patch)
tree83d9beffbeb7e8e9a990befb6801717c2f5fb89c /security/keymint/support/include
parent1c15423de7156bf1f133d339939cccec0e98ad03 (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.h20
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)...});