Lines Matching refs:encoder

12 #include <openssl/encoder.h>
18 #include "crypto/encoder.h"
29 OSSL_ENCODER *encoder = NULL;
31 if ((encoder = OPENSSL_zalloc(sizeof(*encoder))) == NULL
32 || (encoder->base.lock = CRYPTO_THREAD_lock_new()) == NULL) {
33 OSSL_ENCODER_free(encoder);
38 encoder->base.refcnt = 1;
40 return encoder;
43 int OSSL_ENCODER_up_ref(OSSL_ENCODER *encoder)
47 CRYPTO_UP_REF(&encoder->base.refcnt, &ref, encoder->base.lock);
51 void OSSL_ENCODER_free(OSSL_ENCODER *encoder)
55 if (encoder == NULL)
58 CRYPTO_DOWN_REF(&encoder->base.refcnt, &ref, encoder->base.lock);
61 OPENSSL_free(encoder->base.name);
62 ossl_property_free(encoder->base.parsed_propdef);
63 ossl_provider_free(encoder->base.prov);
64 CRYPTO_THREAD_lock_free(encoder->base.lock);
65 OPENSSL_free(encoder);
68 /* Permanent encoder method store, constructor and destructor */
104 /* Temporary encoder method store, constructor and destructor */
120 /* Get the permanent encoder store */
149 /* Get encoder methods from a store, or put one in */
219 /* Create and populate a encoder method */
223 OSSL_ENCODER *encoder = NULL;
227 if ((encoder = ossl_encoder_new()) == NULL)
229 encoder->base.id = id;
230 if ((encoder->base.name = ossl_algorithm_get1_first_name(algodef)) == NULL) {
231 OSSL_ENCODER_free(encoder);
234 encoder->base.algodef = algodef;
235 if ((encoder->base.parsed_propdef
237 OSSL_ENCODER_free(encoder);
244 if (encoder->newctx == NULL)
245 encoder->newctx =
249 if (encoder->freectx == NULL)
250 encoder->freectx =
254 if (encoder->get_params == NULL)
255 encoder->get_params =
259 if (encoder->gettable_params == NULL)
260 encoder->gettable_params =
264 if (encoder->set_ctx_params == NULL)
265 encoder->set_ctx_params =
269 if (encoder->settable_ctx_params == NULL)
270 encoder->settable_ctx_params =
274 if (encoder->does_selection == NULL)
275 encoder->does_selection =
279 if (encoder->encode == NULL)
280 encoder->encode = OSSL_FUNC_encoder_encode(fns);
283 if (encoder->import_object == NULL)
284 encoder->import_object =
288 if (encoder->free_object == NULL)
289 encoder->free_object =
299 if (!((encoder->newctx == NULL && encoder->freectx == NULL)
300 || (encoder->newctx != NULL && encoder->freectx != NULL)
301 || (encoder->import_object != NULL && encoder->free_object != NULL)
302 || (encoder->import_object == NULL && encoder->free_object == NULL))
303 || encoder->encode == NULL) {
304 OSSL_ENCODER_free(encoder);
310 OSSL_ENCODER_free(encoder);
314 encoder->base.prov = prov;
315 return encoder;
508 const OSSL_PROVIDER *OSSL_ENCODER_get0_provider(const OSSL_ENCODER *encoder)
510 if (!ossl_assert(encoder != NULL)) {
515 return encoder->base.prov;
518 const char *OSSL_ENCODER_get0_properties(const OSSL_ENCODER *encoder)
520 if (!ossl_assert(encoder != NULL)) {
525 return encoder->base.algodef->property_definition;
529 ossl_encoder_parsed_properties(const OSSL_ENCODER *encoder)
531 if (!ossl_assert(encoder != NULL)) {
536 return encoder->base.parsed_propdef;
539 int ossl_encoder_get_number(const OSSL_ENCODER *encoder)
541 if (!ossl_assert(encoder != NULL)) {
546 return encoder->base.id;
549 const char *OSSL_ENCODER_get0_name(const OSSL_ENCODER *encoder)
551 return encoder->base.name;
554 const char *OSSL_ENCODER_get0_description(const OSSL_ENCODER *encoder)
556 return encoder->base.algodef->algorithm_description;
559 int OSSL_ENCODER_is_a(const OSSL_ENCODER *encoder, const char *name)
561 if (encoder->base.prov != NULL) {
562 OSSL_LIB_CTX *libctx = ossl_provider_libctx(encoder->base.prov);
565 return ossl_namemap_name2num(namemap, name) == encoder->base.id;
571 void (*user_fn)(OSSL_ENCODER *encoder, void *arg);
583 void (*user_fn)(OSSL_ENCODER *encoder,
602 int OSSL_ENCODER_names_do_all(const OSSL_ENCODER *encoder,
606 if (encoder == NULL)
609 if (encoder->base.prov != NULL) {
610 OSSL_LIB_CTX *libctx = ossl_provider_libctx(encoder->base.prov);
613 return ossl_namemap_doall_names(namemap, encoder->base.id, fn, data);
620 OSSL_ENCODER_gettable_params(OSSL_ENCODER *encoder)
622 if (encoder != NULL && encoder->gettable_params != NULL) {
623 void *provctx = ossl_provider_ctx(OSSL_ENCODER_get0_provider(encoder));
625 return encoder->gettable_params(provctx);
630 int OSSL_ENCODER_get_params(OSSL_ENCODER *encoder, OSSL_PARAM params[])
632 if (encoder != NULL && encoder->get_params != NULL)
633 return encoder->get_params(params);
637 const OSSL_PARAM *OSSL_ENCODER_settable_ctx_params(OSSL_ENCODER *encoder)
639 if (encoder != NULL && encoder->settable_ctx_params != NULL) {
640 void *provctx = ossl_provider_ctx(OSSL_ENCODER_get0_provider(encoder));
642 return encoder->settable_ctx_params(provctx);
680 OSSL_ENCODER *encoder = OSSL_ENCODER_INSTANCE_get_encoder(encoder_inst);
683 if (encoderctx == NULL || encoder->set_ctx_params == NULL)
685 if (!encoder->set_ctx_params(encoderctx, params))