X-Git-Url: https://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=gost_lcl.h;h=e693841b08c70dd9bf44c0a661c65e6ecf518b91;hb=748a6c3d85314ce5f8a643dca6e7b19cd7f089c7;hp=9740994a41c45d2c30e9852a32661437df090e60;hpb=3b31dea89630ecd3f741171ed3e1d4259adabf0e;p=openssl-gost%2Fengine.git diff --git a/gost_lcl.h b/gost_lcl.h index 9740994..e693841 100644 --- a/gost_lcl.h +++ b/gost_lcl.h @@ -68,8 +68,8 @@ struct gost_pmeth_data { int sign_param_nid; /* Should be set whenever parameters are * filled */ EVP_MD *md; - unsigned char *shared_ukm; - size_t shared_ukm_size; /* XXX temporary use shared_ukm and hash for 2018 CKE */ + unsigned char shared_ukm[32]; + size_t shared_ukm_size; int peer_key_used; int cipher_nid; /* KExp15/KImp15 algs */ }; @@ -167,6 +167,12 @@ typedef struct { DECLARE_ASN1_FUNCTIONS(GOST_CIPHER_PARAMS) +typedef struct { + ASN1_OCTET_STRING *ukm; + } GOST2015_CIPHER_PARAMS; + +DECLARE_ASN1_FUNCTIONS(GOST2015_CIPHER_PARAMS) + typedef struct { ASN1_OCTET_STRING *masked_priv_key; ASN1_OCTET_STRING *public_key; @@ -211,7 +217,10 @@ struct ossl_gost_cipher_ctx { int paramNID; unsigned int count; int key_meshing; + unsigned char kdf_seed[8]; + unsigned char tag[8]; gost_ctx cctx; + EVP_MD_CTX *omac_ctx; }; /* Structure to map parameter NID to S-block */ struct gost_cipher_info { @@ -241,6 +250,8 @@ 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(); +const EVP_CIPHER *cipher_magma_ctr_acpkm(); +const EVP_CIPHER *cipher_magma_ctr_acpkm_omac(); const EVP_CIPHER *cipher_magma_wrap(); const EVP_CIPHER *cipher_kuznyechik_wrap(); void cipher_gost_destroy();