]> www.wagner.pp.ru Git - openssl-gost/engine.git/blobdiff - gost_lcl.h
Making a gost provider - Add the ciphers
[openssl-gost/engine.git] / gost_lcl.h
index 8471ed062cecde22fe78931015eaec8b0b5eb483..edfabcfd173d97479e086dfd2b4e065337d96607 100644 (file)
@@ -10,6 +10,7 @@
  *         OpenSSL 0.9.9 libraries required to compile and use        *
  *                              this code                             *
  **********************************************************************/
+# include <openssl/core.h>
 # include <openssl/bn.h>
 # include <openssl/evp.h>
 # include <openssl/asn1t.h>
@@ -36,11 +37,14 @@ typedef struct R3410_ec {
     char *x;
     char *y;
     char *cofactor;
+    EC_GROUP *group;
 } R3410_ec_params;
 
 extern R3410_ec_params R3410_2001_paramset[],
     *R3410_2012_256_paramset, R3410_2012_512_paramset[];
 
+void free_cached_groups(void);
+
 extern const ENGINE_CMD_DEFN gost_cmds[];
 int gost_control_func(ENGINE *e, int cmd, long i, void *p, void (*f) (void));
 const char *get_gost_engine_param(int param);
@@ -305,6 +309,9 @@ int pack_sign_cp(ECDSA_SIG *s, int order, unsigned char *sig, size_t *siglen);
 /* Get private key as BIGNUM from both 34.10-2001 keys*/
 /* Returns pointer into EVP_PKEY structure */
 BIGNUM *gost_get0_priv_key(const EVP_PKEY *pkey);
+/* from gost_crypt.c */
+/* Decrements 8-byte sequence */ 
+int decrement_sequence(unsigned char *seq, int decrement);
 
 /* Struct describing cipher and used for init/deinit.*/
 struct gost_cipher_st {
@@ -330,6 +337,7 @@ typedef struct gost_cipher_st GOST_cipher;
 EVP_CIPHER *GOST_init_cipher(GOST_cipher *c);
 void GOST_deinit_cipher(GOST_cipher *c);
 
+/* ENGINE implementation data */
 extern GOST_cipher Gost28147_89_cipher;
 extern GOST_cipher Gost28147_89_cbc_cipher;
 extern GOST_cipher Gost28147_89_cnt_cipher;
@@ -348,6 +356,10 @@ extern GOST_cipher grasshopper_ctr_acpkm_omac_cipher;
 extern GOST_cipher magma_kexp15_cipher;
 extern GOST_cipher kuznyechik_kexp15_cipher;
 
+/* Provider implementation data */
+extern const OSSL_ALGORITHM GOST_prov_ciphers[];
+void GOST_prov_deinit_ciphers(void);
+
 struct gost_digest_st {
     struct gost_digest_st *template;
     int nid;