1/*
2 * {- join("\n * ", @autowarntext) -}
3 *
4 * Copyright 2019-2025 The OpenSSL Project Authors. All Rights Reserved.
5 *
6 * Licensed under the Apache License 2.0 (the "License").  You may not use
7 * this file except in compliance with the License.  You can obtain a copy
8 * in the file LICENSE in the source distribution or at
9 * https://www.openssl.org/source/license.html
10 */
11{-
12use OpenSSL::paramnames qw(generate_public_macros);
13-}
14
15#ifndef OPENSSL_CORE_NAMES_H
16# define OPENSSL_CORE_NAMES_H
17# pragma once
18
19# ifdef __cplusplus
20extern "C" {
21# endif
22
23/* OSSL_CIPHER_PARAM_CTS_MODE Values */
24# define OSSL_CIPHER_CTS_MODE_CS1 "CS1"
25# define OSSL_CIPHER_CTS_MODE_CS2 "CS2"
26# define OSSL_CIPHER_CTS_MODE_CS3 "CS3"
27
28/* Known CIPHER names (not a complete list) */
29# define OSSL_CIPHER_NAME_AES_128_GCM_SIV      "AES-128-GCM-SIV"
30# define OSSL_CIPHER_NAME_AES_192_GCM_SIV      "AES-192-GCM-SIV"
31# define OSSL_CIPHER_NAME_AES_256_GCM_SIV      "AES-256-GCM-SIV"
32
33/* Known DIGEST names (not a complete list) */
34# define OSSL_DIGEST_NAME_MD5            "MD5"
35# define OSSL_DIGEST_NAME_MD5_SHA1       "MD5-SHA1"
36# define OSSL_DIGEST_NAME_SHA1           "SHA1"
37# define OSSL_DIGEST_NAME_SHA2_224       "SHA2-224"
38# define OSSL_DIGEST_NAME_SHA2_256       "SHA2-256"
39# define OSSL_DIGEST_NAME_SHA2_256_192   "SHA2-256/192"
40# define OSSL_DIGEST_NAME_SHA2_384       "SHA2-384"
41# define OSSL_DIGEST_NAME_SHA2_512       "SHA2-512"
42# define OSSL_DIGEST_NAME_SHA2_512_224   "SHA2-512/224"
43# define OSSL_DIGEST_NAME_SHA2_512_256   "SHA2-512/256"
44# define OSSL_DIGEST_NAME_MD2            "MD2"
45# define OSSL_DIGEST_NAME_MD4            "MD4"
46# define OSSL_DIGEST_NAME_MDC2           "MDC2"
47# define OSSL_DIGEST_NAME_RIPEMD160      "RIPEMD160"
48# define OSSL_DIGEST_NAME_SHA3_224       "SHA3-224"
49# define OSSL_DIGEST_NAME_SHA3_256       "SHA3-256"
50# define OSSL_DIGEST_NAME_SHA3_384       "SHA3-384"
51# define OSSL_DIGEST_NAME_SHA3_512       "SHA3-512"
52# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128"
53# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256"
54# define OSSL_DIGEST_NAME_SM3            "SM3"
55
56/* Known MAC names */
57# define OSSL_MAC_NAME_BLAKE2BMAC    "BLAKE2BMAC"
58# define OSSL_MAC_NAME_BLAKE2SMAC    "BLAKE2SMAC"
59# define OSSL_MAC_NAME_CMAC          "CMAC"
60# define OSSL_MAC_NAME_GMAC          "GMAC"
61# define OSSL_MAC_NAME_HMAC          "HMAC"
62# define OSSL_MAC_NAME_KMAC128       "KMAC128"
63# define OSSL_MAC_NAME_KMAC256       "KMAC256"
64# define OSSL_MAC_NAME_POLY1305      "POLY1305"
65# define OSSL_MAC_NAME_SIPHASH       "SIPHASH"
66
67/* Known KDF names */
68# define OSSL_KDF_NAME_HKDF           "HKDF"
69# define OSSL_KDF_NAME_HKDF_SHA256    "HKDF-SHA256"
70# define OSSL_KDF_NAME_HKDF_SHA384    "HKDF-SHA384"
71# define OSSL_KDF_NAME_HKDF_SHA512    "HKDF-SHA512"
72# define OSSL_KDF_NAME_TLS1_3_KDF     "TLS13-KDF"
73# define OSSL_KDF_NAME_PBKDF1         "PBKDF1"
74# define OSSL_KDF_NAME_PBKDF2         "PBKDF2"
75# define OSSL_KDF_NAME_SCRYPT         "SCRYPT"
76# define OSSL_KDF_NAME_SSHKDF         "SSHKDF"
77# define OSSL_KDF_NAME_SSKDF          "SSKDF"
78# define OSSL_KDF_NAME_TLS1_PRF       "TLS1-PRF"
79# define OSSL_KDF_NAME_X942KDF_ASN1   "X942KDF-ASN1"
80# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT"
81# define OSSL_KDF_NAME_X963KDF        "X963KDF"
82# define OSSL_KDF_NAME_KBKDF          "KBKDF"
83# define OSSL_KDF_NAME_KRB5KDF        "KRB5KDF"
84# define OSSL_KDF_NAME_HMACDRBGKDF    "HMAC-DRBG-KDF"
85
86/* RSA padding modes */
87# define OSSL_PKEY_RSA_PAD_MODE_NONE    "none"
88# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1"
89# define OSSL_PKEY_RSA_PAD_MODE_OAEP    "oaep"
90# define OSSL_PKEY_RSA_PAD_MODE_X931    "x931"
91# define OSSL_PKEY_RSA_PAD_MODE_PSS     "pss"
92
93/* RSA pss padding salt length */
94# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest"
95# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX    "max"
96# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO   "auto"
97# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax"
98
99/* OSSL_PKEY_PARAM_EC_ENCODING values */
100# define OSSL_PKEY_EC_ENCODING_EXPLICIT  "explicit"
101# define OSSL_PKEY_EC_ENCODING_GROUP     "named_curve"
102
103# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed"
104# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED   "compressed"
105# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID       "hybrid"
106
107# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT     "default"
108# define OSSL_PKEY_EC_GROUP_CHECK_NAMED       "named"
109# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST  "named-nist"
110
111/* PROV_SKEY well known key types */
112# define OSSL_SKEY_TYPE_GENERIC             "GENERIC-SECRET"
113# define OSSL_SKEY_TYPE_AES                 "AES"
114
115/* OSSL_KEM_PARAM_OPERATION values */
116#define OSSL_KEM_PARAM_OPERATION_RSASVE     "RSASVE"
117#define OSSL_KEM_PARAM_OPERATION_DHKEM      "DHKEM"
118
119/* Provider configuration variables */
120#define OSSL_PKEY_RETAIN_SEED   "pkey_retain_seed"
121
122/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */
123{- generate_public_macros(); -}
124
125# ifdef __cplusplus
126}
127# endif
128
129#endif
130