blob: a07bd57eba6cd11d8b8a8787c1ca4178e5587fed [file] [log] [blame]
Julian Hallc02fffb2020-11-23 18:22:06 +01001/*
julhal01734dbad2020-12-21 10:27:41 +00002 * Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
Julian Hallc02fffb2020-11-23 18:22:06 +01003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef TS_CRYPTO_OPCODES_H
8#define TS_CRYPTO_OPCODES_H
9
10/* C/C++ definition of crypto service opcodes
11 */
Julian Hall0ed3d452021-07-15 14:31:07 +010012
Julian Halla6d3cbc2021-07-20 10:13:21 +010013/* Core operations */
Julian Hall0ed3d452021-07-15 14:31:07 +010014#define TS_CRYPTO_OPCODE_BASE (0x0100)
Julian Hallf5728962021-06-24 09:40:23 +010015#define TS_CRYPTO_OPCODE_GENERATE_KEY (TS_CRYPTO_OPCODE_BASE + 1)
16#define TS_CRYPTO_OPCODE_DESTROY_KEY (TS_CRYPTO_OPCODE_BASE + 2)
17#define TS_CRYPTO_OPCODE_EXPORT_KEY (TS_CRYPTO_OPCODE_BASE + 5)
18#define TS_CRYPTO_OPCODE_EXPORT_PUBLIC_KEY (TS_CRYPTO_OPCODE_BASE + 6)
19#define TS_CRYPTO_OPCODE_IMPORT_KEY (TS_CRYPTO_OPCODE_BASE + 7)
20#define TS_CRYPTO_OPCODE_SIGN_HASH (TS_CRYPTO_OPCODE_BASE + 8)
21#define TS_CRYPTO_OPCODE_VERIFY_HASH (TS_CRYPTO_OPCODE_BASE + 9)
22#define TS_CRYPTO_OPCODE_ASYMMETRIC_DECRYPT (TS_CRYPTO_OPCODE_BASE + 10)
23#define TS_CRYPTO_OPCODE_ASYMMETRIC_ENCRYPT (TS_CRYPTO_OPCODE_BASE + 11)
24#define TS_CRYPTO_OPCODE_GENERATE_RANDOM (TS_CRYPTO_OPCODE_BASE + 12)
Julian Hall0ed3d452021-07-15 14:31:07 +010025#define TS_CRYPTO_OPCODE_COPY_KEY (TS_CRYPTO_OPCODE_BASE + 13)
26#define TS_CRYPTO_OPCODE_PURGE_KEY (TS_CRYPTO_OPCODE_BASE + 14)
27#define TS_CRYPTO_OPCODE_GET_KEY_ATTRIBUTES (TS_CRYPTO_OPCODE_BASE + 15)
28
29/* Hash operations */
30#define TS_CRYPTO_OPCODE_HASH_BASE (0x0200)
31#define TS_CRYPTO_OPCODE_HASH_SETUP (TS_CRYPTO_OPCODE_HASH_BASE + 1)
32#define TS_CRYPTO_OPCODE_HASH_UPDATE (TS_CRYPTO_OPCODE_HASH_BASE + 2)
33#define TS_CRYPTO_OPCODE_HASH_FINISH (TS_CRYPTO_OPCODE_HASH_BASE + 3)
34#define TS_CRYPTO_OPCODE_HASH_ABORT (TS_CRYPTO_OPCODE_HASH_BASE + 4)
35#define TS_CRYPTO_OPCODE_HASH_VERIFY (TS_CRYPTO_OPCODE_HASH_BASE + 5)
36#define TS_CRYPTO_OPCODE_HASH_CLONE (TS_CRYPTO_OPCODE_HASH_BASE + 6)
Julian Hallc02fffb2020-11-23 18:22:06 +010037
Julian Halle7bccbe2021-07-16 09:50:34 +010038/* Cipher operations */
39#define TS_CRYPTO_OPCODE_CIPHER_BASE (0x0300)
40#define TS_CRYPTO_OPCODE_CIPHER_ENCRYPT_SETUP (TS_CRYPTO_OPCODE_CIPHER_BASE + 1)
41#define TS_CRYPTO_OPCODE_CIPHER_DECRYPT_SETUP (TS_CRYPTO_OPCODE_CIPHER_BASE + 2)
42#define TS_CRYPTO_OPCODE_CIPHER_GENERATE_IV (TS_CRYPTO_OPCODE_CIPHER_BASE + 3)
43#define TS_CRYPTO_OPCODE_CIPHER_SET_IV (TS_CRYPTO_OPCODE_CIPHER_BASE + 4)
44#define TS_CRYPTO_OPCODE_CIPHER_UPDATE (TS_CRYPTO_OPCODE_CIPHER_BASE + 5)
45#define TS_CRYPTO_OPCODE_CIPHER_FINISH (TS_CRYPTO_OPCODE_CIPHER_BASE + 6)
46#define TS_CRYPTO_OPCODE_CIPHER_ABORT (TS_CRYPTO_OPCODE_CIPHER_BASE + 7)
47
Julian Hallfe487b72021-07-19 10:29:59 +010048/* Key derivation operations */
49#define TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE (0x0400)
50#define TS_CRYPTO_OPCODE_KEY_DERIVATION_SETUP (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 1)
51#define TS_CRYPTO_OPCODE_KEY_DERIVATION_GET_CAPACITY (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 2)
52#define TS_CRYPTO_OPCODE_KEY_DERIVATION_SET_CAPACITY (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 3)
53#define TS_CRYPTO_OPCODE_KEY_DERIVATION_INPUT_BYTES (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 4)
54#define TS_CRYPTO_OPCODE_KEY_DERIVATION_INPUT_KEY (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 5)
55#define TS_CRYPTO_OPCODE_KEY_DERIVATION_OUTPUT_BYTES (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 6)
56#define TS_CRYPTO_OPCODE_KEY_DERIVATION_OUTPUT_KEY (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 7)
57#define TS_CRYPTO_OPCODE_KEY_DERIVATION_ABORT (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 8)
58#define TS_CRYPTO_OPCODE_KEY_DERIVATION_KEY_AGREEMENT (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 9)
59#define TS_CRYPTO_OPCODE_KEY_DERIVATION_RAW_KEY_AGREEMENT (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 10)
60
Julian Halla6d3cbc2021-07-20 10:13:21 +010061/* MAC operations */
62#define TS_CRYPTO_OPCODE_MAC_BASE (0x0500)
63#define TS_CRYPTO_OPCODE_MAC_SIGN_SETUP (TS_CRYPTO_OPCODE_MAC_BASE + 1)
64#define TS_CRYPTO_OPCODE_MAC_VERIFY_SETUP (TS_CRYPTO_OPCODE_MAC_BASE + 2)
65#define TS_CRYPTO_OPCODE_MAC_UPDATE (TS_CRYPTO_OPCODE_MAC_BASE + 3)
66#define TS_CRYPTO_OPCODE_MAC_SIGN_FINISH (TS_CRYPTO_OPCODE_MAC_BASE + 4)
67#define TS_CRYPTO_OPCODE_MAC_VERIFY_FINISH (TS_CRYPTO_OPCODE_MAC_BASE + 5)
68#define TS_CRYPTO_OPCODE_MAC_ABORT (TS_CRYPTO_OPCODE_MAC_BASE + 6)
69
Julian Hall83456062021-07-22 11:37:09 +010070/* AEAD operations */
71#define TS_CRYPTO_OPCODE_AEAD_BASE (0x0600)
72#define TS_CRYPTO_OPCODE_AEAD_ENCRYPT_SETUP (TS_CRYPTO_OPCODE_AEAD_BASE + 1)
73#define TS_CRYPTO_OPCODE_AEAD_DECRYPT_SETUP (TS_CRYPTO_OPCODE_AEAD_BASE + 2)
74#define TS_CRYPTO_OPCODE_AEAD_GENERATE_NONCE (TS_CRYPTO_OPCODE_AEAD_BASE + 3)
75#define TS_CRYPTO_OPCODE_AEAD_SET_NONCE (TS_CRYPTO_OPCODE_AEAD_BASE + 4)
76#define TS_CRYPTO_OPCODE_AEAD_SET_LENGTHS (TS_CRYPTO_OPCODE_AEAD_BASE + 5)
77#define TS_CRYPTO_OPCODE_AEAD_UPDATE_AD (TS_CRYPTO_OPCODE_AEAD_BASE + 6)
78#define TS_CRYPTO_OPCODE_AEAD_UPDATE (TS_CRYPTO_OPCODE_AEAD_BASE + 7)
79#define TS_CRYPTO_OPCODE_AEAD_FINISH (TS_CRYPTO_OPCODE_AEAD_BASE + 8)
80#define TS_CRYPTO_OPCODE_AEAD_VERIFY (TS_CRYPTO_OPCODE_AEAD_BASE + 9)
81#define TS_CRYPTO_OPCODE_AEAD_ABORT (TS_CRYPTO_OPCODE_AEAD_BASE + 10)
82
Julian Hallc02fffb2020-11-23 18:22:06 +010083#endif /* TS_CRYPTO_OPCODES_H */