Lines Matching defs:decoder
12 #include <openssl/decoder.h>
18 #include "crypto/decoder.h"
29 OSSL_DECODER *decoder = NULL;
31 if ((decoder = OPENSSL_zalloc(sizeof(*decoder))) == NULL
32 || (decoder->base.lock = CRYPTO_THREAD_lock_new()) == NULL) {
33 OSSL_DECODER_free(decoder);
38 decoder->base.refcnt = 1;
40 return decoder;
43 int OSSL_DECODER_up_ref(OSSL_DECODER *decoder)
47 CRYPTO_UP_REF(&decoder->base.refcnt, &ref, decoder->base.lock);
51 void OSSL_DECODER_free(OSSL_DECODER *decoder)
55 if (decoder == NULL)
58 CRYPTO_DOWN_REF(&decoder->base.refcnt, &ref, decoder->base.lock);
61 OPENSSL_free(decoder->base.name);
62 ossl_property_free(decoder->base.parsed_propdef);
63 ossl_provider_free(decoder->base.prov);
64 CRYPTO_THREAD_lock_free(decoder->base.lock);
65 OPENSSL_free(decoder);
68 /* Permanent decoder method store, constructor and destructor */
104 /* Temporary decoder method store, constructor and destructor */
120 /* Get the permanent decoder store */
149 /* Get decoder methods from a store, or put one in */
219 /* Create and populate a decoder method */
223 OSSL_DECODER *decoder = NULL;
227 if ((decoder = ossl_decoder_new()) == NULL)
229 decoder->base.id = id;
230 if ((decoder->base.name = ossl_algorithm_get1_first_name(algodef)) == NULL) {
231 OSSL_DECODER_free(decoder);
234 decoder->base.algodef = algodef;
235 if ((decoder->base.parsed_propdef
237 OSSL_DECODER_free(decoder);
244 if (decoder->newctx == NULL)
245 decoder->newctx = OSSL_FUNC_decoder_newctx(fns);
248 if (decoder->freectx == NULL)
249 decoder->freectx = OSSL_FUNC_decoder_freectx(fns);
252 if (decoder->get_params == NULL)
253 decoder->get_params =
257 if (decoder->gettable_params == NULL)
258 decoder->gettable_params =
262 if (decoder->set_ctx_params == NULL)
263 decoder->set_ctx_params =
267 if (decoder->settable_ctx_params == NULL)
268 decoder->settable_ctx_params =
272 if (decoder->does_selection == NULL)
273 decoder->does_selection =
277 if (decoder->decode == NULL)
278 decoder->decode = OSSL_FUNC_decoder_decode(fns);
281 if (decoder->export_object == NULL)
282 decoder->export_object = OSSL_FUNC_decoder_export_object(fns);
291 if (!((decoder->newctx == NULL && decoder->freectx == NULL)
292 || (decoder->newctx != NULL && decoder->freectx != NULL))
293 || decoder->decode == NULL) {
294 OSSL_DECODER_free(decoder);
300 OSSL_DECODER_free(decoder);
304 decoder->base.prov = prov;
305 return decoder;
499 const OSSL_PROVIDER *OSSL_DECODER_get0_provider(const OSSL_DECODER *decoder)
501 if (!ossl_assert(decoder != NULL)) {
506 return decoder->base.prov;
509 const char *OSSL_DECODER_get0_properties(const OSSL_DECODER *decoder)
511 if (!ossl_assert(decoder != NULL)) {
516 return decoder->base.algodef->property_definition;
520 ossl_decoder_parsed_properties(const OSSL_DECODER *decoder)
522 if (!ossl_assert(decoder != NULL)) {
527 return decoder->base.parsed_propdef;
530 int ossl_decoder_get_number(const OSSL_DECODER *decoder)
532 if (!ossl_assert(decoder != NULL)) {
537 return decoder->base.id;
540 const char *OSSL_DECODER_get0_name(const OSSL_DECODER *decoder)
542 return decoder->base.name;
545 const char *OSSL_DECODER_get0_description(const OSSL_DECODER *decoder)
547 return decoder->base.algodef->algorithm_description;
550 int OSSL_DECODER_is_a(const OSSL_DECODER *decoder, const char *name)
552 if (decoder->base.prov != NULL) {
553 OSSL_LIB_CTX *libctx = ossl_provider_libctx(decoder->base.prov);
556 return ossl_namemap_name2num(namemap, name) == decoder->base.id;
562 void (*user_fn)(OSSL_DECODER *decoder, void *arg);
574 void (*user_fn)(OSSL_DECODER *decoder,
593 int OSSL_DECODER_names_do_all(const OSSL_DECODER *decoder,
597 if (decoder == NULL)
600 if (decoder->base.prov != NULL) {
601 OSSL_LIB_CTX *libctx = ossl_provider_libctx(decoder->base.prov);
604 return ossl_namemap_doall_names(namemap, decoder->base.id, fn, data);
611 OSSL_DECODER_gettable_params(OSSL_DECODER *decoder)
613 if (decoder != NULL && decoder->gettable_params != NULL) {
614 void *provctx = ossl_provider_ctx(OSSL_DECODER_get0_provider(decoder));
616 return decoder->gettable_params(provctx);
621 int OSSL_DECODER_get_params(OSSL_DECODER *decoder, OSSL_PARAM params[])
623 if (decoder != NULL && decoder->get_params != NULL)
624 return decoder->get_params(params);
629 OSSL_DECODER_settable_ctx_params(OSSL_DECODER *decoder)
631 if (decoder != NULL && decoder->settable_ctx_params != NULL) {
632 void *provctx = ossl_provider_ctx(OSSL_DECODER_get0_provider(decoder));
634 return decoder->settable_ctx_params(provctx);
644 * |encoder| value NULL is valid, and signifies that there is no decoder.
646 * Functions that want to verify if there is a decoder can do so with
678 OSSL_DECODER *decoder =
683 if (decoderctx == NULL || decoder->set_ctx_params == NULL)
685 if (!decoder->set_ctx_params(decoderctx, params))