From 40c0aefda7679310c150f24fcb88b9177cf56485 Mon Sep 17 00:00:00 2001 From: Mateusz Kulikowski Date: Mon, 11 Apr 2016 15:51:51 +0200 Subject: [PATCH] Add yaca_ctx_get|set_param prototypes. Change-Id: I714a47663e742bc8c3eeb446483eee0a58a8a056 Signed-off-by: Mateusz Kulikowski --- src/crypto.c | 16 ++++++++++++++-- src/internal.h | 4 ++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/crypto.c b/src/crypto.c index 550abf0..a90d0d9 100644 --- a/src/crypto.c +++ b/src/crypto.c @@ -92,13 +92,25 @@ API int yaca_rand_bytes(char *data, size_t data_len) API int yaca_ctx_set_param(yaca_ctx_h ctx, yaca_ex_param_e param, const void *value, size_t value_len) { - return YACA_ERROR_NOT_IMPLEMENTED; + if (ctx == YACA_CTX_NULL) + return YACA_ERROR_INVALID_ARGUMENT; + + if (ctx->set_param == NULL) + return YACA_ERROR_NOT_SUPPORTED; + + return ctx->set_param(ctx, param, value, value_len); } API int yaca_ctx_get_param(const yaca_ctx_h ctx, yaca_ex_param_e param, void **value, size_t *value_len) { - return YACA_ERROR_NOT_IMPLEMENTED; + if (ctx == YACA_CTX_NULL) + return YACA_ERROR_INVALID_ARGUMENT; + + if (ctx->get_param == NULL) + return YACA_ERROR_NOT_SUPPORTED; + + return ctx->get_param(ctx, param, value, value_len); } API void yaca_ctx_free(yaca_ctx_h ctx) diff --git a/src/internal.h b/src/internal.h index 504fb6d..25f0edc 100644 --- a/src/internal.h +++ b/src/internal.h @@ -46,6 +46,10 @@ struct yaca_ctx_s void (*ctx_destroy)(const yaca_ctx_h ctx); int (*get_output_length)(const yaca_ctx_h ctx, size_t input_len); + int (*set_param)(yaca_ctx_h ctx, yaca_ex_param_e param, + const void *value, size_t value_len); + int (*get_param)(const yaca_ctx_h ctx, yaca_ex_param_e param, + void **value, size_t *value_len); }; -- 2.7.4