blob: 35b81599b6c84299bfff947f1a373706c61fb270 [file] [log] [blame]
Julian Hallc02fffb2020-11-23 18:22:06 +01001/*
Gabor Tothab7db212023-08-18 16:08:12 +02002 * Copyright (c) 2020-2023, 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)
Julian Hall0562ae02022-02-11 14:08:13 +000028#define TS_CRYPTO_OPCODE_SIGN_MESSAGE (TS_CRYPTO_OPCODE_BASE + 16)
29#define TS_CRYPTO_OPCODE_VERIFY_MESSAGE (TS_CRYPTO_OPCODE_BASE + 17)
Gabor Tothab7db212023-08-18 16:08:12 +020030#define TS_CRYPTO_OPCODE_VERIFY_PKCS7_SIGNATURE (TS_CRYPTO_OPCODE_BASE + 18)
Julian Hall0ed3d452021-07-15 14:31:07 +010031
32/* Hash operations */
33#define TS_CRYPTO_OPCODE_HASH_BASE (0x0200)
34#define TS_CRYPTO_OPCODE_HASH_SETUP (TS_CRYPTO_OPCODE_HASH_BASE + 1)
35#define TS_CRYPTO_OPCODE_HASH_UPDATE (TS_CRYPTO_OPCODE_HASH_BASE + 2)
36#define TS_CRYPTO_OPCODE_HASH_FINISH (TS_CRYPTO_OPCODE_HASH_BASE + 3)
37#define TS_CRYPTO_OPCODE_HASH_ABORT (TS_CRYPTO_OPCODE_HASH_BASE + 4)
38#define TS_CRYPTO_OPCODE_HASH_VERIFY (TS_CRYPTO_OPCODE_HASH_BASE + 5)
39#define TS_CRYPTO_OPCODE_HASH_CLONE (TS_CRYPTO_OPCODE_HASH_BASE + 6)
Julian Hallc02fffb2020-11-23 18:22:06 +010040
Julian Halle7bccbe2021-07-16 09:50:34 +010041/* Cipher operations */
42#define TS_CRYPTO_OPCODE_CIPHER_BASE (0x0300)
43#define TS_CRYPTO_OPCODE_CIPHER_ENCRYPT_SETUP (TS_CRYPTO_OPCODE_CIPHER_BASE + 1)
44#define TS_CRYPTO_OPCODE_CIPHER_DECRYPT_SETUP (TS_CRYPTO_OPCODE_CIPHER_BASE + 2)
45#define TS_CRYPTO_OPCODE_CIPHER_GENERATE_IV (TS_CRYPTO_OPCODE_CIPHER_BASE + 3)
46#define TS_CRYPTO_OPCODE_CIPHER_SET_IV (TS_CRYPTO_OPCODE_CIPHER_BASE + 4)
47#define TS_CRYPTO_OPCODE_CIPHER_UPDATE (TS_CRYPTO_OPCODE_CIPHER_BASE + 5)
48#define TS_CRYPTO_OPCODE_CIPHER_FINISH (TS_CRYPTO_OPCODE_CIPHER_BASE + 6)
49#define TS_CRYPTO_OPCODE_CIPHER_ABORT (TS_CRYPTO_OPCODE_CIPHER_BASE + 7)
50
Julian Hallfe487b72021-07-19 10:29:59 +010051/* Key derivation operations */
52#define TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE (0x0400)
53#define TS_CRYPTO_OPCODE_KEY_DERIVATION_SETUP (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 1)
54#define TS_CRYPTO_OPCODE_KEY_DERIVATION_GET_CAPACITY (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 2)
55#define TS_CRYPTO_OPCODE_KEY_DERIVATION_SET_CAPACITY (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 3)
56#define TS_CRYPTO_OPCODE_KEY_DERIVATION_INPUT_BYTES (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 4)
57#define TS_CRYPTO_OPCODE_KEY_DERIVATION_INPUT_KEY (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 5)
58#define TS_CRYPTO_OPCODE_KEY_DERIVATION_OUTPUT_BYTES (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 6)
59#define TS_CRYPTO_OPCODE_KEY_DERIVATION_OUTPUT_KEY (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 7)
60#define TS_CRYPTO_OPCODE_KEY_DERIVATION_ABORT (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 8)
61#define TS_CRYPTO_OPCODE_KEY_DERIVATION_KEY_AGREEMENT (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 9)
62#define TS_CRYPTO_OPCODE_KEY_DERIVATION_RAW_KEY_AGREEMENT (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 10)
63
Julian Halla6d3cbc2021-07-20 10:13:21 +010064/* MAC operations */
65#define TS_CRYPTO_OPCODE_MAC_BASE (0x0500)
66#define TS_CRYPTO_OPCODE_MAC_SIGN_SETUP (TS_CRYPTO_OPCODE_MAC_BASE + 1)
67#define TS_CRYPTO_OPCODE_MAC_VERIFY_SETUP (TS_CRYPTO_OPCODE_MAC_BASE + 2)
68#define TS_CRYPTO_OPCODE_MAC_UPDATE (TS_CRYPTO_OPCODE_MAC_BASE + 3)
69#define TS_CRYPTO_OPCODE_MAC_SIGN_FINISH (TS_CRYPTO_OPCODE_MAC_BASE + 4)
70#define TS_CRYPTO_OPCODE_MAC_VERIFY_FINISH (TS_CRYPTO_OPCODE_MAC_BASE + 5)
71#define TS_CRYPTO_OPCODE_MAC_ABORT (TS_CRYPTO_OPCODE_MAC_BASE + 6)
72
Julian Hall83456062021-07-22 11:37:09 +010073/* AEAD operations */
74#define TS_CRYPTO_OPCODE_AEAD_BASE (0x0600)
75#define TS_CRYPTO_OPCODE_AEAD_ENCRYPT_SETUP (TS_CRYPTO_OPCODE_AEAD_BASE + 1)
76#define TS_CRYPTO_OPCODE_AEAD_DECRYPT_SETUP (TS_CRYPTO_OPCODE_AEAD_BASE + 2)
77#define TS_CRYPTO_OPCODE_AEAD_GENERATE_NONCE (TS_CRYPTO_OPCODE_AEAD_BASE + 3)
78#define TS_CRYPTO_OPCODE_AEAD_SET_NONCE (TS_CRYPTO_OPCODE_AEAD_BASE + 4)
79#define TS_CRYPTO_OPCODE_AEAD_SET_LENGTHS (TS_CRYPTO_OPCODE_AEAD_BASE + 5)
80#define TS_CRYPTO_OPCODE_AEAD_UPDATE_AD (TS_CRYPTO_OPCODE_AEAD_BASE + 6)
81#define TS_CRYPTO_OPCODE_AEAD_UPDATE (TS_CRYPTO_OPCODE_AEAD_BASE + 7)
82#define TS_CRYPTO_OPCODE_AEAD_FINISH (TS_CRYPTO_OPCODE_AEAD_BASE + 8)
83#define TS_CRYPTO_OPCODE_AEAD_VERIFY (TS_CRYPTO_OPCODE_AEAD_BASE + 9)
84#define TS_CRYPTO_OPCODE_AEAD_ABORT (TS_CRYPTO_OPCODE_AEAD_BASE + 10)
85
Julian Hallc02fffb2020-11-23 18:22:06 +010086#endif /* TS_CRYPTO_OPCODES_H */