summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn Willden <swillden@google.com>2016-02-02 14:54:25 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-02-02 14:54:25 +0000
commit0ad6f782d1371dcd7bdb1ca7aba53ddd58e9e540 (patch)
treeb82f6d7f0fcd016919a35eae4e979a0a11a4f3de
parent4aa5650699b40c467ac3dccdcf6fbf37a9a6571d (diff)
parente8c8ec844005e525100556ab01e84d1cd7960a26 (diff)
downloadandroid_system_keymaster-0ad6f782d1371dcd7bdb1ca7aba53ddd58e9e540.tar.gz
android_system_keymaster-0ad6f782d1371dcd7bdb1ca7aba53ddd58e9e540.tar.bz2
android_system_keymaster-0ad6f782d1371dcd7bdb1ca7aba53ddd58e9e540.zip
Fix message versioning support.
am: e8c8ec8440 * commit 'e8c8ec844005e525100556ab01e84d1cd7960a26': Fix message versioning support.
-rw-r--r--include/keymaster/android_keymaster_messages.h64
1 files changed, 53 insertions, 11 deletions
diff --git a/include/keymaster/android_keymaster_messages.h b/include/keymaster/android_keymaster_messages.h
index 008a616..a2936d1 100644
--- a/include/keymaster/android_keymaster_messages.h
+++ b/include/keymaster/android_keymaster_messages.h
@@ -83,6 +83,7 @@ inline int32_t MessageVersion(uint8_t major_ver, uint8_t minor_ver, uint8_t /* s
message_version = 2;
break;
}
+ break;
case 2:
message_version = 3;
break;
@@ -142,8 +143,15 @@ struct SupportedByAlgorithmRequest : public KeymasterMessage {
keymaster_algorithm_t algorithm;
};
-class SupportedImportFormatsRequest : public SupportedByAlgorithmRequest {};
-class SupportedExportFormatsRequest : public SupportedByAlgorithmRequest {};
+struct SupportedImportFormatsRequest : public SupportedByAlgorithmRequest {
+ SupportedImportFormatsRequest(int32_t ver = MAX_MESSAGE_VERSION)
+ : SupportedByAlgorithmRequest(ver) {}
+};
+
+struct SupportedExportFormatsRequest : public SupportedByAlgorithmRequest {
+ SupportedExportFormatsRequest(int32_t ver = MAX_MESSAGE_VERSION)
+ : SupportedByAlgorithmRequest(ver) {}
+};
struct SupportedByAlgorithmAndPurposeRequest : public KeymasterMessage {
explicit SupportedByAlgorithmAndPurposeRequest(int32_t ver = MAX_MESSAGE_VERSION)
@@ -163,9 +171,20 @@ struct SupportedByAlgorithmAndPurposeRequest : public KeymasterMessage {
keymaster_purpose_t purpose;
};
-class SupportedBlockModesRequest : public SupportedByAlgorithmAndPurposeRequest {};
-class SupportedPaddingModesRequest : public SupportedByAlgorithmAndPurposeRequest {};
-class SupportedDigestsRequest : public SupportedByAlgorithmAndPurposeRequest {};
+struct SupportedBlockModesRequest : public SupportedByAlgorithmAndPurposeRequest {
+ SupportedBlockModesRequest(int32_t ver = MAX_MESSAGE_VERSION)
+ : SupportedByAlgorithmAndPurposeRequest(ver) {}
+};
+
+struct SupportedPaddingModesRequest : public SupportedByAlgorithmAndPurposeRequest {
+ SupportedPaddingModesRequest(int32_t ver = MAX_MESSAGE_VERSION)
+ : SupportedByAlgorithmAndPurposeRequest(ver) {}
+};
+
+struct SupportedDigestsRequest : public SupportedByAlgorithmAndPurposeRequest {
+ SupportedDigestsRequest(int32_t ver = MAX_MESSAGE_VERSION)
+ : SupportedByAlgorithmAndPurposeRequest(ver) {}
+};
template <typename T> struct SupportedResponse : public KeymasterResponse {
explicit SupportedResponse(int32_t ver = MAX_MESSAGE_VERSION)
@@ -206,12 +225,35 @@ template <typename T> struct SupportedResponse : public KeymasterResponse {
size_t results_length;
};
-class SupportedAlgorithmsResponse : public SupportedResponse<keymaster_algorithm_t> {};
-class SupportedBlockModesResponse : public SupportedResponse<keymaster_block_mode_t> {};
-class SupportedPaddingModesResponse : public SupportedResponse<keymaster_padding_t> {};
-class SupportedDigestsResponse : public SupportedResponse<keymaster_digest_t> {};
-class SupportedImportFormatsResponse : public SupportedResponse<keymaster_key_format_t> {};
-class SupportedExportFormatsResponse : public SupportedResponse<keymaster_key_format_t> {};
+struct SupportedAlgorithmsResponse : public SupportedResponse<keymaster_algorithm_t> {
+ SupportedAlgorithmsResponse(int32_t ver = MAX_MESSAGE_VERSION)
+ : SupportedResponse<keymaster_algorithm_t>(ver) {}
+};
+
+struct SupportedBlockModesResponse : public SupportedResponse<keymaster_block_mode_t> {
+ SupportedBlockModesResponse(int32_t ver = MAX_MESSAGE_VERSION)
+ : SupportedResponse<keymaster_block_mode_t>(ver) {}
+};
+
+struct SupportedPaddingModesResponse : public SupportedResponse<keymaster_padding_t> {
+ SupportedPaddingModesResponse(int32_t ver = MAX_MESSAGE_VERSION)
+ : SupportedResponse<keymaster_padding_t>(ver) {}
+};
+
+struct SupportedDigestsResponse : public SupportedResponse<keymaster_digest_t> {
+ SupportedDigestsResponse(int32_t ver = MAX_MESSAGE_VERSION)
+ : SupportedResponse<keymaster_digest_t>(ver) {}
+};
+
+struct SupportedImportFormatsResponse : public SupportedResponse<keymaster_key_format_t> {
+ SupportedImportFormatsResponse(int32_t ver = MAX_MESSAGE_VERSION)
+ : SupportedResponse<keymaster_key_format_t>(ver) {}
+};
+
+struct SupportedExportFormatsResponse : public SupportedResponse<keymaster_key_format_t> {
+ SupportedExportFormatsResponse(int32_t ver = MAX_MESSAGE_VERSION)
+ : SupportedResponse<keymaster_key_format_t>(ver) {}
+};
struct GenerateKeyRequest : public KeymasterMessage {
explicit GenerateKeyRequest(int32_t ver = MAX_MESSAGE_VERSION) : KeymasterMessage(ver) {}