xref: /src/crypto/openssl/include/internal/skey.h (revision f25b8c9fb4f58cf61adb47d7570abe7caa6d385d) !
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