aboutsummaryrefslogtreecommitdiff
path: root/gost_prov.c
diff options
context:
space:
mode:
authorRichard Levitte <richard@levitte.org>2021-02-13 14:56:17 +0100
committerDmitry Belyavskiy <beldmit@users.noreply.github.com>2021-10-11 19:34:09 +0300
commitdd645e71d12ec790dc6c2e1c44163e2683ae4c6a (patch)
treee25ee4494237ac6f1e34867c4bbf3d87e2af527d /gost_prov.c
parentbd2d5542f307ae0e9e98a291f0d765a0be58b5fd (diff)
downloadgost-engine-dd645e71d12ec790dc6c2e1c44163e2683ae4c6a.zip
gost-engine-dd645e71d12ec790dc6c2e1c44163e2683ae4c6a.tar.gz
gost-engine-dd645e71d12ec790dc6c2e1c44163e2683ae4c6a.tar.bz2
Making a gost provider - Add the digests
We add the digests for the provider as wrappers around the routines designed for ENGINEs. This is not the most elegant, but it does the job. When an algorithm has an OID, it's included in the OSSL_ALGORITHM name as an aliase. This is the way to avoid having to register the OIDs in OpenSSL proper. test/01-digest.t is modified to test the provider as well.
Diffstat (limited to 'gost_prov.c')
-rw-r--r--gost_prov.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gost_prov.c b/gost_prov.c
index 04f4f3d..ba7120b 100644
--- a/gost_prov.c
+++ b/gost_prov.c
@@ -89,6 +89,8 @@ static const OSSL_ALGORITHM *gost_operation(void *vprovctx,
switch (operation_id) {
case OSSL_OP_CIPHER:
return GOST_prov_ciphers;
+ case OSSL_OP_DIGEST:
+ return GOST_prov_digests;
}
return NULL;
}
@@ -110,6 +112,7 @@ static const OSSL_ITEM *gost_get_reason_strings(void *provctx)
static void gost_teardown(void *vprovctx)
{
GOST_prov_deinit_ciphers();
+ GOST_prov_deinit_digests();
provider_ctx_free(vprovctx);
}