blob: 35b81599b6c84299bfff947f1a373706c61fb270 [file] [log] [blame]
/*
* Copyright (c) 2020-2023, Arm Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef TS_CRYPTO_OPCODES_H
#define TS_CRYPTO_OPCODES_H
/* C/C++ definition of crypto service opcodes
*/
/* Core operations */
#define TS_CRYPTO_OPCODE_BASE (0x0100)
#define TS_CRYPTO_OPCODE_GENERATE_KEY (TS_CRYPTO_OPCODE_BASE + 1)
#define TS_CRYPTO_OPCODE_DESTROY_KEY (TS_CRYPTO_OPCODE_BASE + 2)
#define TS_CRYPTO_OPCODE_EXPORT_KEY (TS_CRYPTO_OPCODE_BASE + 5)
#define TS_CRYPTO_OPCODE_EXPORT_PUBLIC_KEY (TS_CRYPTO_OPCODE_BASE + 6)
#define TS_CRYPTO_OPCODE_IMPORT_KEY (TS_CRYPTO_OPCODE_BASE + 7)
#define TS_CRYPTO_OPCODE_SIGN_HASH (TS_CRYPTO_OPCODE_BASE + 8)
#define TS_CRYPTO_OPCODE_VERIFY_HASH (TS_CRYPTO_OPCODE_BASE + 9)
#define TS_CRYPTO_OPCODE_ASYMMETRIC_DECRYPT (TS_CRYPTO_OPCODE_BASE + 10)
#define TS_CRYPTO_OPCODE_ASYMMETRIC_ENCRYPT (TS_CRYPTO_OPCODE_BASE + 11)
#define TS_CRYPTO_OPCODE_GENERATE_RANDOM (TS_CRYPTO_OPCODE_BASE + 12)
#define TS_CRYPTO_OPCODE_COPY_KEY (TS_CRYPTO_OPCODE_BASE + 13)
#define TS_CRYPTO_OPCODE_PURGE_KEY (TS_CRYPTO_OPCODE_BASE + 14)
#define TS_CRYPTO_OPCODE_GET_KEY_ATTRIBUTES (TS_CRYPTO_OPCODE_BASE + 15)
#define TS_CRYPTO_OPCODE_SIGN_MESSAGE (TS_CRYPTO_OPCODE_BASE + 16)
#define TS_CRYPTO_OPCODE_VERIFY_MESSAGE (TS_CRYPTO_OPCODE_BASE + 17)
#define TS_CRYPTO_OPCODE_VERIFY_PKCS7_SIGNATURE (TS_CRYPTO_OPCODE_BASE + 18)
/* Hash operations */
#define TS_CRYPTO_OPCODE_HASH_BASE (0x0200)
#define TS_CRYPTO_OPCODE_HASH_SETUP (TS_CRYPTO_OPCODE_HASH_BASE + 1)
#define TS_CRYPTO_OPCODE_HASH_UPDATE (TS_CRYPTO_OPCODE_HASH_BASE + 2)
#define TS_CRYPTO_OPCODE_HASH_FINISH (TS_CRYPTO_OPCODE_HASH_BASE + 3)
#define TS_CRYPTO_OPCODE_HASH_ABORT (TS_CRYPTO_OPCODE_HASH_BASE + 4)
#define TS_CRYPTO_OPCODE_HASH_VERIFY (TS_CRYPTO_OPCODE_HASH_BASE + 5)
#define TS_CRYPTO_OPCODE_HASH_CLONE (TS_CRYPTO_OPCODE_HASH_BASE + 6)
/* Cipher operations */
#define TS_CRYPTO_OPCODE_CIPHER_BASE (0x0300)
#define TS_CRYPTO_OPCODE_CIPHER_ENCRYPT_SETUP (TS_CRYPTO_OPCODE_CIPHER_BASE + 1)
#define TS_CRYPTO_OPCODE_CIPHER_DECRYPT_SETUP (TS_CRYPTO_OPCODE_CIPHER_BASE + 2)
#define TS_CRYPTO_OPCODE_CIPHER_GENERATE_IV (TS_CRYPTO_OPCODE_CIPHER_BASE + 3)
#define TS_CRYPTO_OPCODE_CIPHER_SET_IV (TS_CRYPTO_OPCODE_CIPHER_BASE + 4)
#define TS_CRYPTO_OPCODE_CIPHER_UPDATE (TS_CRYPTO_OPCODE_CIPHER_BASE + 5)
#define TS_CRYPTO_OPCODE_CIPHER_FINISH (TS_CRYPTO_OPCODE_CIPHER_BASE + 6)
#define TS_CRYPTO_OPCODE_CIPHER_ABORT (TS_CRYPTO_OPCODE_CIPHER_BASE + 7)
/* Key derivation operations */
#define TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE (0x0400)
#define TS_CRYPTO_OPCODE_KEY_DERIVATION_SETUP (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 1)
#define TS_CRYPTO_OPCODE_KEY_DERIVATION_GET_CAPACITY (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 2)
#define TS_CRYPTO_OPCODE_KEY_DERIVATION_SET_CAPACITY (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 3)
#define TS_CRYPTO_OPCODE_KEY_DERIVATION_INPUT_BYTES (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 4)
#define TS_CRYPTO_OPCODE_KEY_DERIVATION_INPUT_KEY (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 5)
#define TS_CRYPTO_OPCODE_KEY_DERIVATION_OUTPUT_BYTES (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 6)
#define TS_CRYPTO_OPCODE_KEY_DERIVATION_OUTPUT_KEY (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 7)
#define TS_CRYPTO_OPCODE_KEY_DERIVATION_ABORT (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 8)
#define TS_CRYPTO_OPCODE_KEY_DERIVATION_KEY_AGREEMENT (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 9)
#define TS_CRYPTO_OPCODE_KEY_DERIVATION_RAW_KEY_AGREEMENT (TS_CRYPTO_OPCODE_KEY_DERIVATION_BASE + 10)
/* MAC operations */
#define TS_CRYPTO_OPCODE_MAC_BASE (0x0500)
#define TS_CRYPTO_OPCODE_MAC_SIGN_SETUP (TS_CRYPTO_OPCODE_MAC_BASE + 1)
#define TS_CRYPTO_OPCODE_MAC_VERIFY_SETUP (TS_CRYPTO_OPCODE_MAC_BASE + 2)
#define TS_CRYPTO_OPCODE_MAC_UPDATE (TS_CRYPTO_OPCODE_MAC_BASE + 3)
#define TS_CRYPTO_OPCODE_MAC_SIGN_FINISH (TS_CRYPTO_OPCODE_MAC_BASE + 4)
#define TS_CRYPTO_OPCODE_MAC_VERIFY_FINISH (TS_CRYPTO_OPCODE_MAC_BASE + 5)
#define TS_CRYPTO_OPCODE_MAC_ABORT (TS_CRYPTO_OPCODE_MAC_BASE + 6)
/* AEAD operations */
#define TS_CRYPTO_OPCODE_AEAD_BASE (0x0600)
#define TS_CRYPTO_OPCODE_AEAD_ENCRYPT_SETUP (TS_CRYPTO_OPCODE_AEAD_BASE + 1)
#define TS_CRYPTO_OPCODE_AEAD_DECRYPT_SETUP (TS_CRYPTO_OPCODE_AEAD_BASE + 2)
#define TS_CRYPTO_OPCODE_AEAD_GENERATE_NONCE (TS_CRYPTO_OPCODE_AEAD_BASE + 3)
#define TS_CRYPTO_OPCODE_AEAD_SET_NONCE (TS_CRYPTO_OPCODE_AEAD_BASE + 4)
#define TS_CRYPTO_OPCODE_AEAD_SET_LENGTHS (TS_CRYPTO_OPCODE_AEAD_BASE + 5)
#define TS_CRYPTO_OPCODE_AEAD_UPDATE_AD (TS_CRYPTO_OPCODE_AEAD_BASE + 6)
#define TS_CRYPTO_OPCODE_AEAD_UPDATE (TS_CRYPTO_OPCODE_AEAD_BASE + 7)
#define TS_CRYPTO_OPCODE_AEAD_FINISH (TS_CRYPTO_OPCODE_AEAD_BASE + 8)
#define TS_CRYPTO_OPCODE_AEAD_VERIFY (TS_CRYPTO_OPCODE_AEAD_BASE + 9)
#define TS_CRYPTO_OPCODE_AEAD_ABORT (TS_CRYPTO_OPCODE_AEAD_BASE + 10)
#endif /* TS_CRYPTO_OPCODES_H */