/*
- * Copyright 2020 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
OSSL_PARAM_DEFN(OSSL_PROV_PARAM_NAME, OSSL_PARAM_UTF8_PTR, NULL, 0),
OSSL_PARAM_DEFN(OSSL_PROV_PARAM_VERSION, OSSL_PARAM_UTF8_PTR, NULL, 0),
OSSL_PARAM_DEFN(OSSL_PROV_PARAM_BUILDINFO, OSSL_PARAM_UTF8_PTR, NULL, 0),
+ OSSL_PARAM_DEFN(OSSL_PROV_PARAM_STATUS, OSSL_PARAM_INTEGER, NULL, 0),
OSSL_PARAM_END
};
p = OSSL_PARAM_locate(params, OSSL_PROV_PARAM_BUILDINFO);
if (p != NULL && !OSSL_PARAM_set_utf8_ptr(p, OPENSSL_FULL_VERSION_STR))
return 0;
+ p = OSSL_PARAM_locate(params, OSSL_PROV_PARAM_STATUS);
+ if (p != NULL && !OSSL_PARAM_set_int(p, ossl_prov_is_running()))
+ return 0;
return 1;
}
static const OSSL_ALGORITHM base_encoder[] = {
-#define ENCODER(name, _fips, _format, _type, func_table) \
- { name, \
- "provider=base,fips=" _fips ",format=" _format ",type=" _type, \
- (func_table) }
-
+#define ENCODER_PROVIDER "base"
#include "encoders.inc"
{ NULL, NULL, NULL }
+#undef ENCODER_PROVIDER
};
-#undef ENCODER
static const OSSL_ALGORITHM base_decoder[] = {
-#define DECODER(name, _fips, _input, func_table) \
- { name, \
- "provider=base,fips=" _fips ",input=" _input, \
- (func_table) }
-
+#define DECODER_PROVIDER "base"
#include "decoders.inc"
{ NULL, NULL, NULL }
+#undef DECODER_PROVIDER
};
-#undef DECODER
static const OSSL_ALGORITHM base_store[] = {
#define STORE(name, _fips, func_table) \
static void base_teardown(void *provctx)
{
- BIO_meth_free(PROV_CTX_get0_core_bio_method(provctx));
- PROV_CTX_free(provctx);
+ BIO_meth_free(ossl_prov_ctx_get0_core_bio_method(provctx));
+ ossl_prov_ctx_free(provctx);
}
/* Functions we provide to the core */
const OSSL_DISPATCH *in, const OSSL_DISPATCH **out,
void **provctx)
{
- OSSL_FUNC_core_get_library_context_fn *c_get_libctx = NULL;
+ OSSL_FUNC_core_get_libctx_fn *c_get_libctx = NULL;
BIO_METHOD *corebiometh;
if (!ossl_prov_bio_from_dispatch(in))
case OSSL_FUNC_CORE_GET_PARAMS:
c_get_params = OSSL_FUNC_core_get_params(in);
break;
- case OSSL_FUNC_CORE_GET_LIBRARY_CONTEXT:
- c_get_libctx = OSSL_FUNC_core_get_library_context(in);
+ case OSSL_FUNC_CORE_GET_LIBCTX:
+ c_get_libctx = OSSL_FUNC_core_get_libctx(in);
break;
default:
/* Just ignore anything we don't understand */
* This only works for built-in providers. Most providers should
* create their own library context.
*/
- if ((*provctx = PROV_CTX_new()) == NULL
- || (corebiometh = bio_prov_init_bio_method()) == NULL) {
- PROV_CTX_free(*provctx);
+ if ((*provctx = ossl_prov_ctx_new()) == NULL
+ || (corebiometh = ossl_bio_prov_init_bio_method()) == NULL) {
+ ossl_prov_ctx_free(*provctx);
*provctx = NULL;
return 0;
}
- PROV_CTX_set0_library_context(*provctx, (OPENSSL_CTX *)c_get_libctx(handle));
- PROV_CTX_set0_handle(*provctx, handle);
- PROV_CTX_set0_core_bio_method(*provctx, corebiometh);
+ ossl_prov_ctx_set0_libctx(*provctx,
+ (OSSL_LIB_CTX *)c_get_libctx(handle));
+ ossl_prov_ctx_set0_handle(*provctx, handle);
+ ossl_prov_ctx_set0_core_bio_method(*provctx, corebiometh);
*out = base_dispatch_table;