]>
Commit | Line | Data |
---|---|---|
8a73348b MC |
1 | /* |
2 | * Copyright 2019 The OpenSSL Project Authors. All Rights Reserved. | |
3 | * | |
4 | * Licensed under the Apache License 2.0 (the "License"). You may not use | |
5 | * this file except in compliance with the License. You can obtain a copy | |
6 | * in the file LICENSE in the source distribution or at | |
7 | * https://www.openssl.org/source/license.html | |
8 | */ | |
9 | ||
10 | #ifndef OSSL_CORE_NAMES_H | |
11 | # define OSSL_CORE_NAMES_H | |
12 | ||
13 | # ifdef __cplusplus | |
14 | extern "C" { | |
15 | # endif | |
16 | ||
17 | /* | |
18 | * Well known parameter names that Providers can define | |
19 | */ | |
20 | ||
21 | /* | |
22 | * A printable name for this provider | |
23 | * Type: OSSL_PARAM_UTF8_STRING | |
24 | */ | |
25 | #define OSSL_PROV_PARAM_NAME "name" | |
26 | /* | |
27 | * A version string for this provider | |
28 | * Type: OSSL_PARAM_UTF8_STRING | |
29 | */ | |
30 | #define OSSL_PROV_PARAM_VERSION "version" | |
31 | /* | |
32 | * A string providing provider specific build information | |
33 | * Type: OSSL_PARAM_UTF8_STRING | |
34 | */ | |
35 | #define OSSL_PROV_PARAM_BUILDINFO "buildinfo" | |
36 | ||
25e60144 SL |
37 | /* |
38 | * The module filename | |
39 | * Type: OSSL_PARAM_OCTET_STRING | |
40 | */ | |
41 | #define OSSL_PROV_PARAM_MODULE_FILENAME "module-filename" | |
df05f2ce | 42 | |
cb74317b P |
43 | /* |
44 | * Algorithm parameters | |
45 | * If "engine" or "properties" are specified, they should always be paired | |
46 | * with the algorithm type. | |
47 | */ | |
48 | #define OSSL_ALG_PARAM_DIGEST "digest" /* utf8_string */ | |
49 | #define OSSL_ALG_PARAM_CIPHER "cipher" /* utf8_string */ | |
4e8b8e47 | 50 | #define OSSL_ALG_PARAM_MAC "mac" /* utf8_string */ |
cb74317b P |
51 | #define OSSL_ALG_PARAM_ENGINE "engine" /* utf8_string */ |
52 | #define OSSL_ALG_PARAM_PROPERTIES "properties"/* utf8_string */ | |
53 | ||
459b15d4 | 54 | /* cipher parameters */ |
1c3ace68 SL |
55 | #define OSSL_CIPHER_PARAM_PADDING "padding" /* uint */ |
56 | #define OSSL_CIPHER_PARAM_MODE "mode" /* uint */ | |
57 | #define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" /* size_t */ | |
459b15d4 | 58 | #define OSSL_CIPHER_PARAM_FLAGS "flags" /* ulong */ |
1c3ace68 SL |
59 | #define OSSL_CIPHER_PARAM_KEYLEN "keylen" /* size_t */ |
60 | #define OSSL_CIPHER_PARAM_IVLEN "ivlen" /* size_t */ | |
459b15d4 | 61 | #define OSSL_CIPHER_PARAM_IV "iv" /* octet_string OR octet_ptr */ |
1c3ace68 | 62 | #define OSSL_CIPHER_PARAM_NUM "num" /* uint */ |
459b15d4 SL |
63 | #define OSSL_CIPHER_PARAM_AEAD_TAG "tag" /* octet_string */ |
64 | #define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" /* octet_string */ | |
65 | #define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" /* size_t */ | |
66 | #define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" /* octet_string */ | |
dc64dc2e SL |
67 | #define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN |
68 | #define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" /* size_t */ | |
4a42e264 | 69 | #define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" /* octet_string */ |
df05f2ce | 70 | |
d5e5e2ff | 71 | /* digest parameters */ |
1c3ace68 SL |
72 | #define OSSL_DIGEST_PARAM_XOFLEN "xoflen" /* size_t */ |
73 | #define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" /* octet string */ | |
74 | #define OSSL_DIGEST_PARAM_PAD_TYPE "pad_type" /* uint */ | |
75 | #define OSSL_DIGEST_PARAM_MICALG "micalg" /* utf8 string */ | |
76 | #define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" /* size_t */ | |
77 | #define OSSL_DIGEST_PARAM_SIZE "size" /* size_t */ | |
78 | #define OSSL_DIGEST_PARAM_FLAGS "flags" /* ulong */ | |
d5e5e2ff | 79 | |
81ff9eeb RL |
80 | /* Known DIGEST names (not a complete list) */ |
81 | #define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK_KMAC128" | |
82 | #define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK_KMAC256" | |
83 | ||
e74bd290 | 84 | /* MAC parameters */ |
1c3ace68 SL |
85 | #define OSSL_MAC_PARAM_KEY "key" /* octet string */ |
86 | #define OSSL_MAC_PARAM_IV "iv" /* octet string */ | |
87 | #define OSSL_MAC_PARAM_CUSTOM "custom" /* utf8 string */ | |
88 | #define OSSL_MAC_PARAM_SALT "salt" /* octet string */ | |
89 | #define OSSL_MAC_PARAM_XOF "xof" /* int, 0 or 1 */ | |
90 | #define OSSL_MAC_PARAM_FLAGS "flags" /* int */ | |
703170d4 RL |
91 | /* |
92 | * If "engine" or "properties" are specified, they should always be paired | |
93 | * with "cipher" or "digest". | |
94 | */ | |
cb74317b P |
95 | #define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER /* utf8 string */ |
96 | #define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST /* utf8 string */ | |
97 | #define OSSL_MAC_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE /* utf8 string */ | |
98 | #define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES /* utf8 string */ | |
1c3ace68 | 99 | #define OSSL_MAC_PARAM_SIZE "size" /* size_t */ |
e74bd290 | 100 | |
81ff9eeb RL |
101 | /* Known MAC names (not a complete list) */ |
102 | #define OSSL_MAC_NAME_CMAC "CMAC" | |
103 | #define OSSL_MAC_NAME_HMAC "HMAC" | |
104 | #define OSSL_MAC_NAME_KMAC128 "KMAC128" | |
105 | #define OSSL_MAC_NAME_KMAC256 "KMAC256" | |
106 | ||
2f755701 P |
107 | /* KDF / PRF parameters */ |
108 | #define OSSL_KDF_PARAM_SECRET "secret" /* octet string */ | |
109 | #define OSSL_KDF_PARAM_KEY "key" /* octet string */ | |
110 | #define OSSL_KDF_PARAM_SALT "salt" /* octet string */ | |
111 | #define OSSL_KDF_PARAM_PASSWORD "pass" /* octet string */ | |
4e8b8e47 RL |
112 | #define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST /* utf8 string */ |
113 | #define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC /* utf8 string */ | |
2f755701 | 114 | #define OSSL_KDF_PARAM_MAC_SIZE "maclen" /* size_t */ |
cb74317b P |
115 | #define OSSL_KDF_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE /* utf8 string */ |
116 | #define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES /* utf8 string */ | |
2f755701 P |
117 | #define OSSL_KDF_PARAM_ITER "iter" /* unsigned int */ |
118 | #define OSSL_KDF_PARAM_MODE "mode" /* utf8 string or int */ | |
119 | #define OSSL_KDF_PARAM_PKCS5 "pkcs5" /* int */ | |
120 | #define OSSL_KDF_PARAM_UKM "ukm" /* octet string */ | |
121 | #define OSSL_KDF_PARAM_CEK_ALG "cekalg" /* utf8 string */ | |
122 | #define OSSL_KDF_PARAM_SCRYPT_N "n" /* uint64_t */ | |
123 | #define OSSL_KDF_PARAM_SCRYPT_R "r" /* uint32_t */ | |
124 | #define OSSL_KDF_PARAM_SCRYPT_P "p" /* uint32_t */ | |
125 | #define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" /* uint64_t */ | |
126 | #define OSSL_KDF_PARAM_INFO "info" /* octet string */ | |
127 | #define OSSL_KDF_PARAM_SEED "seed" /* octet string */ | |
128 | #define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" /* octet string */ | |
129 | #define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" /* octet string */ | |
130 | #define OSSL_KDF_PARAM_SSHKDF_TYPE "type" /* int */ | |
131 | #define OSSL_KDF_PARAM_SIZE "size" /* size_t */ | |
132 | ||
d810cc19 P |
133 | /* Known KDF names */ |
134 | #define OSSL_KDF_NAME_HKDF "HKDF" | |
135 | #define OSSL_KDF_NAME_PBKDF2 "PBKDF2" | |
136 | #define OSSL_KDF_NAME_SCRYPT "id-scrypt" | |
137 | #define OSSL_KDF_NAME_SSHKDF "SSHKDF" | |
138 | #define OSSL_KDF_NAME_SSKDF "SSKDF" | |
139 | #define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" | |
140 | #define OSSL_KDF_NAME_X942KDF "X942KDF" | |
141 | #define OSSL_KDF_NAME_X963KDF "X963KDF" | |
142 | ||
ff64702b | 143 | /* PKEY parameters */ |
4889dadc | 144 | /* Diffie-Hellman/DSA Parameters */ |
20bf3d8b MC |
145 | #define OSSL_PKEY_PARAM_FFC_P "p" |
146 | #define OSSL_PKEY_PARAM_FFC_G "g" | |
147 | #define OSSL_PKEY_PARAM_FFC_Q "q" | |
4889dadc | 148 | |
ff64702b | 149 | /* Diffie-Hellman Keys */ |
20bf3d8b MC |
150 | #define OSSL_PKEY_PARAM_DH_PUB_KEY "pub" |
151 | #define OSSL_PKEY_PARAM_DH_PRIV_KEY "priv" | |
ff64702b | 152 | |
4889dadc | 153 | /* DSA Keys */ |
20bf3d8b MC |
154 | #define OSSL_PKEY_PARAM_DSA_PUB_KEY "pub" |
155 | #define OSSL_PKEY_PARAM_DSA_PRIV_KEY "priv" | |
4889dadc | 156 | |
35aca9ec MC |
157 | /* Key Exchange parameters */ |
158 | ||
20bf3d8b | 159 | #define OSSL_EXCHANGE_PARAM_PAD "pad" /* uint */ |
35aca9ec | 160 | |
4889dadc MC |
161 | /* Signature parameters */ |
162 | #define OSSL_SIGNATURE_PARAM_DIGEST "digest" | |
163 | #define OSSL_SIGNATURE_PARAM_DIGEST_SIZE "digest-size" | |
164 | ||
8a73348b MC |
165 | # ifdef __cplusplus |
166 | } | |
167 | # endif | |
168 | ||
169 | #endif |