X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=gost_lcl.h;h=f63f23ce18b39921df706a3838dd20dc3f64a600;hb=75796d263c62a57a330f596d4a03d9ed22ec9f74;hp=9dac7d4a486d208e01eef95ee2bc0764dcde652c;hpb=286a33984c698f2efa98dd06995c7d734569409c;p=openssl-gost%2Fengine.git diff --git a/gost_lcl.h b/gost_lcl.h index 9dac7d4..f63f23c 100644 --- a/gost_lcl.h +++ b/gost_lcl.h @@ -21,9 +21,11 @@ /* Control commands */ # define GOST_PARAM_CRYPT_PARAMS 0 # define GOST_PARAM_PBE_PARAMS 1 -# define GOST_PARAM_MAX 1 +# define GOST_PARAM_PK_FORMAT 2 +# define GOST_PARAM_MAX 2 # define GOST_CTRL_CRYPT_PARAMS (ENGINE_CMD_BASE+GOST_PARAM_CRYPT_PARAMS) # define GOST_CTRL_PBE_PARAMS (ENGINE_CMD_BASE+GOST_PARAM_PBE_PARAMS) +# define GOST_CTRL_PK_FORMAT (ENGINE_CMD_BASE+GOST_PARAM_PK_FORMAT) typedef struct R3410_ec { int nid; @@ -33,6 +35,7 @@ typedef struct R3410_ec { char *q; char *x; char *y; + char *cofactor; } R3410_ec_params; extern R3410_ec_params R3410_2001_paramset[], @@ -176,6 +179,12 @@ EVP_MD *imit_gost_cpa(void); void imit_gost_cpa_destroy(void); EVP_MD *imit_gost_cp_12(void); void imit_gost_cp_12_destroy(void); +EVP_MD *magma_omac(void); +void magma_omac_destroy(void); +EVP_MD *grasshopper_omac(void); +EVP_MD *grasshopper_omac_acpkm(void); +void grasshopper_omac_destroy(void); +void grasshopper_omac_acpkm_destroy(void); /* Cipher context used for EVP_CIPHER operation */ struct ossl_gost_cipher_ctx { int paramNID; @@ -209,7 +218,12 @@ const EVP_CIPHER *cipher_gost(); const EVP_CIPHER *cipher_gost_cbc(); const EVP_CIPHER *cipher_gost_cpacnt(); const EVP_CIPHER *cipher_gost_cpcnt_12(); +const EVP_CIPHER *cipher_magma_cbc(); +const EVP_CIPHER *cipher_magma_ctr(); void cipher_gost_destroy(); + +void inc_counter(unsigned char* buffer, size_t buf_len); + # define EVP_MD_CTRL_KEY_LEN (EVP_MD_CTRL_ALG_CTRL+3) # define EVP_MD_CTRL_SET_KEY (EVP_MD_CTRL_ALG_CTRL+4) # define EVP_MD_CTRL_MAC_LEN (EVP_MD_CTRL_ALG_CTRL+5) @@ -245,7 +259,7 @@ BIGNUM *hashsum2bn(const unsigned char *dgst, int len); * Store bignum in byte array of given length, prepending by zeros if * nesseccary */ -int store_bignum(BIGNUM *bn, unsigned char *buf, int len); +int store_bignum(const BIGNUM *bn, unsigned char *buf, int len); /* Pack GOST R 34.10 signature according to CryptoPro rules */ int pack_sign_cp(DSA_SIG *s, int order, unsigned char *sig, size_t *siglen); /* from ameth.c */