109a25192SPierre Pronchery /* 209a25192SPierre Pronchery * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. 309a25192SPierre Pronchery * 409a25192SPierre Pronchery * Licensed under the Apache License 2.0 (the "License"). You may not use 509a25192SPierre Pronchery * this file except in compliance with the License. You can obtain a copy 609a25192SPierre Pronchery * in the file LICENSE in the source distribution or at 709a25192SPierre Pronchery * https://www.openssl.org/source/license.html 809a25192SPierre Pronchery */ 909a25192SPierre Pronchery 1009a25192SPierre Pronchery #ifndef OSSL_CRYPTO_SKEY_H 1109a25192SPierre Pronchery #define OSSL_CRYPTO_SKEY_H 1209a25192SPierre Pronchery 1309a25192SPierre Pronchery /* Known symmetric key type definitions */ 1409a25192SPierre Pronchery #define SKEY_TYPE_GENERIC 1 /* generic bytes container unknown key types */ 1509a25192SPierre Pronchery #define SKEY_TYPE_AES 2 /* AES keys */ 1609a25192SPierre Pronchery 1709a25192SPierre Pronchery struct prov_skey_st { 1809a25192SPierre Pronchery /* 1909a25192SPierre Pronchery * Internal skey implementation, 2009a25192SPierre Pronchery * A symmetric key is basically just a buffer of bytes of 2109a25192SPierre Pronchery * defined length, and a type, that defines, what 2209a25192SPierre Pronchery * cryptosystem the key is meant for (AES, HMAC, etc...) 2309a25192SPierre Pronchery */ 2409a25192SPierre Pronchery OSSL_LIB_CTX *libctx; 2509a25192SPierre Pronchery 2609a25192SPierre Pronchery int type; 2709a25192SPierre Pronchery 2809a25192SPierre Pronchery unsigned char *data; 2909a25192SPierre Pronchery size_t length; 3009a25192SPierre Pronchery }; 3109a25192SPierre Pronchery 3209a25192SPierre Pronchery #endif /* OSSL_CRYPTO_SKEY_H */ 33