blob: ab939fc6d5c78d24cda931e5f94214e300f00072 [file] [log] [blame]
Karl Zhang3de5ab12021-05-31 11:45:48 +08001/*
Nik Dewallybacae6c2024-07-30 16:58:14 +01002 * Copyright (c) 2019-2024, Arm Limited. All rights reserved.
Karl Zhang3de5ab12021-05-31 11:45:48 +08003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 *
6 */
7
8#ifndef CRYPTO_ASSET_HPP
9#define CRYPTO_ASSET_HPP
10
Karl Zhang3de5ab12021-05-31 11:45:48 +080011#include <vector>
Karl Zhang3de5ab12021-05-31 11:45:48 +080012#include <cstdint>
13
Nik Dewallybacae6c2024-07-30 16:58:14 +010014#include "data_blocks.hpp"
Karl Zhang3de5ab12021-05-31 11:45:48 +080015#include "psa_asset.hpp"
Karl Zhang3de5ab12021-05-31 11:45:48 +080016
Nik Dewallybacae6c2024-07-30 16:58:14 +010017class key_asset;
Karl Zhang3de5ab12021-05-31 11:45:48 +080018
19using namespace std;
20
21class crypto_asset : public psa_asset
22{
23public:
24 // Data members:
25 key_policy_info policy;
26 // Methods:
27 crypto_asset (void); // (constructor)
28 ~crypto_asset (void);
29
30protected:
31 // Data members:
32 // Methods:
33
34private:
35 // Data members:
36 // Methods:
37};
38
39class policy_asset : public crypto_asset
40{
41public:
42 // Data members:
Karl Zhang3de5ab12021-05-31 11:45:48 +080043 vector<key_asset*> keys; // keys that use this policy
44 // Methods:
45 policy_asset (void); // (constructor)
46 ~policy_asset (void);
47
48protected:
49 // Data members:
50 // Methods:
51
52private:
53 // Data members:
54 // Methods:
55};
56
57class key_asset : public crypto_asset
58{
59public:
Karl Zhang3de5ab12021-05-31 11:45:48 +080060 // Methods:
61 bool set_key_id (int id_n); // checks key-ID value, returns true==success
62 key_asset (void); // (constructor)
63 ~key_asset (void);
64
65protected:
66 // Data members:
67 uint64_t key_id;
68 // Methods:
69
70private:
71 // Data members:
72 // Methods:
73};
74
75#endif // CRYPTO_ASSET_HPP