/*
- * Copyright 2020 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2020-2023 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
#include "prov/providercommon.h"
#include "prov/implementations.h"
#include "prov/provider_util.h"
-#include "internal/nelem.h"
/*
* Forward declarations to ensure that interface functions are correctly
}
static const OSSL_ALGORITHM base_encoder[] = {
-#define ENCODER(name, _fips, _output, func_table) \
- { name, \
- "provider=base,fips=" _fips ",output=" _output, \
- (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 */
(void (*)(void))base_gettable_params },
{ OSSL_FUNC_PROVIDER_GET_PARAMS, (void (*)(void))base_get_params },
{ OSSL_FUNC_PROVIDER_QUERY_OPERATION, (void (*)(void))base_query },
- { 0, NULL }
+ OSSL_DISPATCH_END
};
OSSL_provider_init_fn ossl_base_provider_init;
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;