blob: 99074f8c46b279d4e9d298b692af4647bfbc0dfd [file] [log] [blame]
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -07001// Copyright 2017 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#ifndef KEYSTORE_INCLUDE_KEYSTORE_KEYMASTERARGUMENTS_H_
16#define KEYSTORE_INCLUDE_KEYSTORE_KEYMASTERARGUMENTS_H_
17
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -070018#include <binder/Parcelable.h>
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -070019
Shawn Willdenbb22a6c2017-12-06 19:35:28 -070020#include <keystore/keymaster_types.h>
Shawn Willden8845a092017-12-03 15:53:29 -070021
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -070022namespace android {
23namespace security {
24namespace keymaster {
25
Shawn Willden0329a822017-12-04 13:55:14 -070026// struct for serializing/deserializing a list of KeyParameters
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -070027struct KeymasterArguments : public Parcelable {
28 KeymasterArguments(){};
Shawn Willden0329a822017-12-04 13:55:14 -070029 explicit KeymasterArguments(const hardware::hidl_vec<keystore::KeyParameter>& other);
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -070030
31 status_t readFromParcel(const Parcel* in) override;
32 status_t writeToParcel(Parcel* out) const override;
33
Shawn Willden0329a822017-12-04 13:55:14 -070034 const inline hardware::hidl_vec<keystore::KeyParameter>& getParameters() const { return data_; }
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -070035
36 private:
Shawn Willden0329a822017-12-04 13:55:14 -070037 hardware::hidl_vec<keystore::KeyParameter> data_;
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -070038};
39
40} // namespace keymaster
41} // namespace security
42} // namespace android
43
44#endif // KEYSTORE_INCLUDE_KEYSTORE_KEYMASTERARGUMENTS_H_