Skip to content

Commit 445f6ac

Browse files
authored
Merge pull request #46 from bandi13/fixSettableFunc
Fix settable func
2 parents 49c2238 + 443b358 commit 445f6ac

File tree

6 files changed

+77
-11
lines changed

6 files changed

+77
-11
lines changed

.gitignore

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,11 @@
5353
*.gcda
5454

5555
# Installed dependencies
56-
/openssl*
57-
/wolfssl*
56+
/openssl-source/
57+
/openssl-install/
58+
/wolfssl-source/
59+
/wolfssl-install/
60+
/wolfprov-install/
5861
/artifacts
5962

6063
IDE/Android/android-ndk-r26b/

provider-fips.conf

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
openssl_conf = openssl_init
2+
3+
[openssl_init]
4+
providers = provider_sect
5+
alg_section = algorithm_sect
6+
7+
[provider_sect]
8+
libwolfprov = libwolfprov_sect
9+
10+
[libwolfprov_sect]
11+
activate = 1
12+
13+
[algorithm_sect]
14+
default_properties = fips=yes

scripts/utils-openssl.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ init_openssl() {
122122
OPENSSL_BIN=${OPENSSL_INSTALL_DIR}/bin/openssl
123123
OPENSSL_TEST=${OPENSSL_SOURCE_DIR}/test
124124

125-
OSSL_VER=`LD_LIBRARY_PATH=${OPENSSL_INSTALL_DIR}/lib64 $OPENSSL_BIN version`
125+
OSSL_VER=`LD_LIBRARY_PATH=${OPENSSL_INSTALL_DIR}/lib64 $OPENSSL_BIN version | tail -n1`
126126
case $OSSL_VER in
127127
OpenSSL\ 3.*) ;;
128128
*)

scripts/utils-wolfprovider.sh

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,14 @@ source ${SCRIPT_DIR}/utils-wolfssl.sh
2525

2626
WOLFPROV_SOURCE_DIR=${SCRIPT_DIR}/..
2727
WOLFPROV_INSTALL_DIR=${SCRIPT_DIR}/../wolfprov-install
28-
WOLFPROV_CONFIG=${WOLFPROV_CONFIG:-"$WOLFPROV_SOURCE_DIR/provider.conf"}
28+
if [ "$WOLFSSL_ISFIPS" -eq "1" ]; then
29+
WOLFPROV_CONFIG=${WOLFPROV_CONFIG:-"$WOLFPROV_SOURCE_DIR/provider-fips.conf"}
30+
else
31+
WOLFPROV_CONFIG=${WOLFPROV_CONFIG:-"$WOLFPROV_SOURCE_DIR/provider.conf"}
32+
fi
2933

3034
WOLFPROV_NAME="libwolfprov"
3135
WOLFPROV_PATH=$WOLFPROV_INSTALL_DIR/lib
32-
export OPENSSL_MODULES=$WOLFPROV_PATH
3336

3437
WOLFPROV_DEBUG=${WOLFPROV_DEBUG:-0}
3538

@@ -95,5 +98,8 @@ install_wolfprov() {
9598
init_wolfprov() {
9699
install_wolfprov
97100
printf "\twolfProvider installed in: ${WOLFPROV_INSTALL_DIR}\n"
101+
102+
export OPENSSL_MODULES=$WOLFPROV_PATH
103+
export OPENSSL_CONF=${WOLFPROV_CONFIG}
98104
}
99105

src/wp_kdf_exch.c

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -218,17 +218,50 @@ static int wp_kdf_set_ctx_params(wp_KdfCtx* ctx, const OSSL_PARAM params[])
218218
}
219219

220220
/**
221-
* Return an array of supported settable parameters for the KDF ke context.
221+
* Return an array of supported settable parameters for the HKDF ke context.
222222
*
223223
* @param [in] ctx ECDH key exchange context object. Unused.
224224
* @param [in] provCtx Provider context object. Unused.
225225
* @return Array of parameters with data type.
226226
*/
227-
static const OSSL_PARAM* wp_kdf_settable_ctx_params(wp_KdfCtx* ctx,
227+
static const OSSL_PARAM* wp_hkdf_settable_ctx_params(wp_KdfCtx* ctx,
228228
WOLFPROV_CTX* provCtx)
229229
{
230+
(void)ctx;
230231
(void)provCtx;
231-
return EVP_KDF_settable_ctx_params(EVP_KDF_CTX_kdf(ctx->kdfCtx));
232+
static const OSSL_PARAM settable_ctx_params[] = {
233+
OSSL_PARAM_utf8_string(OSSL_KDF_PARAM_MODE, NULL, 0),
234+
OSSL_PARAM_int(OSSL_KDF_PARAM_MODE, NULL),
235+
OSSL_PARAM_utf8_string(OSSL_KDF_PARAM_PROPERTIES, NULL, 0),
236+
OSSL_PARAM_utf8_string(OSSL_KDF_PARAM_DIGEST, NULL, 0),
237+
OSSL_PARAM_octet_string(OSSL_KDF_PARAM_KEY, NULL, 0),
238+
OSSL_PARAM_octet_string(OSSL_KDF_PARAM_SALT, NULL, 0),
239+
OSSL_PARAM_octet_string(OSSL_KDF_PARAM_INFO, NULL, 0),
240+
OSSL_PARAM_END
241+
};
242+
return settable_ctx_params;
243+
}
244+
245+
/**
246+
* Return an array of supported settable parameters for the HKDF ke context.
247+
*
248+
* @param [in] ctx ECDH key exchange context object. Unused.
249+
* @param [in] provCtx Provider context object. Unused.
250+
* @return Array of parameters with data type.
251+
*/
252+
static const OSSL_PARAM* wp_tls1_prf_settable_ctx_params(wp_KdfCtx* ctx,
253+
WOLFPROV_CTX* provCtx)
254+
{
255+
(void)ctx;
256+
(void)provCtx;
257+
static const OSSL_PARAM settable_ctx_params[] = {
258+
OSSL_PARAM_utf8_string(OSSL_KDF_PARAM_PROPERTIES, NULL, 0),
259+
OSSL_PARAM_utf8_string(OSSL_KDF_PARAM_DIGEST, NULL, 0),
260+
OSSL_PARAM_octet_string(OSSL_KDF_PARAM_SECRET, NULL, 0),
261+
OSSL_PARAM_octet_string(OSSL_KDF_PARAM_SEED, NULL, 0),
262+
OSSL_PARAM_END
263+
};
264+
return settable_ctx_params;
232265
}
233266

234267
/*
@@ -256,7 +289,7 @@ const OSSL_DISPATCH wp_hkdf_keyexch_functions[] = {
256289
{ OSSL_FUNC_KEYEXCH_DERIVE, (DFUNC)wp_kdf_derive },
257290
{ OSSL_FUNC_KEYEXCH_SET_CTX_PARAMS, (DFUNC)wp_kdf_set_ctx_params },
258291
{ OSSL_FUNC_KEYEXCH_SETTABLE_CTX_PARAMS,
259-
(DFUNC)wp_kdf_settable_ctx_params },
292+
(DFUNC)wp_hkdf_settable_ctx_params },
260293
{ 0, NULL }
261294
};
262295

@@ -285,7 +318,7 @@ const OSSL_DISPATCH wp_tls1_prf_keyexch_functions[] = {
285318
{ OSSL_FUNC_KEYEXCH_DERIVE, (DFUNC)wp_kdf_derive },
286319
{ OSSL_FUNC_KEYEXCH_SET_CTX_PARAMS, (DFUNC)wp_kdf_set_ctx_params },
287320
{ OSSL_FUNC_KEYEXCH_SETTABLE_CTX_PARAMS,
288-
(DFUNC)wp_kdf_settable_ctx_params },
321+
(DFUNC)wp_tls1_prf_settable_ctx_params },
289322
{ 0, NULL }
290323
};
291324

src/wp_mac_sig.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,8 +326,18 @@ static int wp_mac_set_ctx_params(wp_MacSigCtx *ctx, const OSSL_PARAM params[])
326326
static const OSSL_PARAM *wp_mac_settable_ctx_params(wp_MacSigCtx *ctx,
327327
WOLFPROV_CTX* provCtx)
328328
{
329+
(void)ctx;
329330
(void)provCtx;
330-
return EVP_MAC_settable_ctx_params(EVP_MAC_CTX_get0_mac(ctx->macCtx));
331+
static const OSSL_PARAM settable_ctx_params[] = {
332+
OSSL_PARAM_utf8_string(OSSL_MAC_PARAM_DIGEST, NULL, 0),
333+
OSSL_PARAM_utf8_string(OSSL_MAC_PARAM_PROPERTIES, NULL, 0),
334+
OSSL_PARAM_octet_string(OSSL_MAC_PARAM_KEY, NULL, 0),
335+
OSSL_PARAM_int(OSSL_MAC_PARAM_DIGEST_NOINIT, NULL),
336+
OSSL_PARAM_int(OSSL_MAC_PARAM_DIGEST_ONESHOT, NULL),
337+
OSSL_PARAM_size_t(OSSL_MAC_PARAM_TLS_DATA_SIZE, NULL),
338+
OSSL_PARAM_END
339+
};
340+
return settable_ctx_params;
331341
}
332342

333343
/*

0 commit comments

Comments
 (0)