aboutsummaryrefslogtreecommitdiff
path: root/gost_lcl.h
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_lcl.h
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_lcl.h')
-rw-r--r--gost_lcl.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gost_lcl.h b/gost_lcl.h
index edfabcf..0e544ee 100644
--- a/gost_lcl.h
+++ b/gost_lcl.h
@@ -381,6 +381,7 @@ typedef struct gost_digest_st GOST_digest;
EVP_MD *GOST_init_digest(GOST_digest *d);
void GOST_deinit_digest(GOST_digest *d);
+/* ENGINE implementation data */
extern GOST_digest GostR3411_94_digest;
extern GOST_digest Gost28147_89_MAC_digest;
extern GOST_digest Gost28147_89_mac_12_digest;
@@ -390,5 +391,9 @@ extern GOST_digest magma_mac_digest;
extern GOST_digest grasshopper_mac_digest;
extern GOST_digest kuznyechik_ctracpkm_omac_digest;
+/* Provider implementation data */
+extern const OSSL_ALGORITHM GOST_prov_digests[];
+void GOST_prov_deinit_digests(void);
+
#endif
/* vim: set expandtab cinoptions=\:0,l1,t0,g0,(0 sw=4 : */