]>
Commit | Line | Data |
---|---|---|
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 | ||
37 | /* | |
38 | * The module filename | |
39 | * Type: OSSL_PARAM_OCTET_STRING | |
40 | */ | |
41 | #define OSSL_PROV_PARAM_MODULE_FILENAME "module-filename" | |
42 | ||
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 */ | |
50 | #define OSSL_ALG_PARAM_MAC "mac" /* utf8_string */ | |
51 | #define OSSL_ALG_PARAM_ENGINE "engine" /* utf8_string */ | |
52 | #define OSSL_ALG_PARAM_PROPERTIES "properties"/* utf8_string */ | |
53 | ||
54 | /* cipher parameters */ | |
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 */ | |
58 | #define OSSL_CIPHER_PARAM_FLAGS "flags" /* ulong */ | |
59 | #define OSSL_CIPHER_PARAM_KEYLEN "keylen" /* size_t */ | |
60 | #define OSSL_CIPHER_PARAM_IVLEN "ivlen" /* size_t */ | |
61 | #define OSSL_CIPHER_PARAM_IV "iv" /* octet_string OR octet_ptr */ | |
62 | #define OSSL_CIPHER_PARAM_NUM "num" /* uint */ | |
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 */ | |
67 | #define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN | |
68 | #define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" /* size_t */ | |
69 | #define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" /* octet_string */ | |
70 | ||
71 | /* digest parameters */ | |
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 */ | |
79 | ||
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 | ||
84 | /* MAC parameters */ | |
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 */ | |
91 | /* | |
92 | * If "engine" or "properties" are specified, they should always be paired | |
93 | * with "cipher" or "digest". | |
94 | */ | |
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 */ | |
99 | #define OSSL_MAC_PARAM_SIZE "size" /* size_t */ | |
100 | ||
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 | ||
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 */ | |
112 | #define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST /* utf8 string */ | |
113 | #define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC /* utf8 string */ | |
114 | #define OSSL_KDF_PARAM_MAC_SIZE "maclen" /* size_t */ | |
115 | #define OSSL_KDF_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE /* utf8 string */ | |
116 | #define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES /* utf8 string */ | |
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 | ||
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 | ||
143 | /* PKEY parameters */ | |
144 | /* Diffie-Hellman/DSA Parameters */ | |
145 | #define OSSL_PKEY_PARAM_FFC_P "p" | |
146 | #define OSSL_PKEY_PARAM_FFC_G "g" | |
147 | #define OSSL_PKEY_PARAM_FFC_Q "q" | |
148 | ||
149 | /* Diffie-Hellman Keys */ | |
150 | #define OSSL_PKEY_PARAM_DH_PUB_KEY "pub" | |
151 | #define OSSL_PKEY_PARAM_DH_PRIV_KEY "priv" | |
152 | ||
153 | /* DSA Keys */ | |
154 | #define OSSL_PKEY_PARAM_DSA_PUB_KEY "pub" | |
155 | #define OSSL_PKEY_PARAM_DSA_PRIV_KEY "priv" | |
156 | ||
157 | /* Key Exchange parameters */ | |
158 | ||
159 | #define OSSL_EXCHANGE_PARAM_PAD "pad" /* uint */ | |
160 | ||
161 | /* Signature parameters */ | |
162 | #define OSSL_SIGNATURE_PARAM_DIGEST "digest" | |
163 | #define OSSL_SIGNATURE_PARAM_DIGEST_SIZE "digest-size" | |
164 | ||
165 | # ifdef __cplusplus | |
166 | } | |
167 | # endif | |
168 | ||
169 | #endif |