2 * Copyright (c) 2015 - 2018 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License
18 * @author Bartłomiej Grzelewski (b.grzelewski@samsung.com)
25 #include <generic-backend/exception.h>
26 #include <generic-backend/gobj.h>
27 #include <generic-backend/encryption-params.h>
28 #include <ckm/ckm-type.h>
29 #include <crypto-backend.h>
35 // Data is very generic and does not say anything about content.
38 Data(const DataType &t, RawBuffer d) : type(t), data(std::move(d)) {}
40 RawBuffer data; // buffer will be better?
45 virtual GObjUPtr getObject(const Token &, const Password &)
47 ThrowErr(Exc::Crypto::OperationNotSupported);
49 virtual TokenPair generateAKey(const CryptoAlgorithm &,
53 ThrowErr(Exc::Crypto::OperationNotSupported);
55 virtual Token generateSKey(const CryptoAlgorithm &, const Password &)
57 ThrowErr(Exc::Crypto::OperationNotSupported);
61 * EncryptionParams parameter makes sense only on device with built-in key.
62 * EncryptionParams parameter is used for decryption of Data.
63 * If Data is not encrypted it's ok to pass empty EncryptionParams.
65 virtual Token import(const Data &, const Password &, const EncryptionParams &)
67 ThrowErr(Exc::Crypto::OperationNotSupported);
69 virtual void destroy(const Token &)
71 ThrowErr(Exc::Crypto::OperationNotSupported);
76 explicit GStore(CryptoBackend backendId) :
77 m_backendId(backendId)
81 CryptoBackend m_backendId;