X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gost_lcl.h;h=8af52cea6e086de7d7463b2a5f0c2e8765db9fd7;hb=9465f47596fb0ca5db8ea89c69ba07990e682ced;hp=4c099dd27d34315c5b5ec4b635df8007edae75f2;hpb=359bc05a9d4ee696f3a025ac0d35d27c89ea62ac;p=openssl-gost%2Fengine.git diff --git a/gost_lcl.h b/gost_lcl.h index 4c099dd..8af52ce 100644 --- a/gost_lcl.h +++ b/gost_lcl.h @@ -130,6 +130,7 @@ typedef struct { /* FIXME incomplete */ typedef struct PSKeyTransport_st { ASN1_OCTET_STRING *psexp; X509_PUBKEY *ephem_key; + ASN1_OCTET_STRING *ukm; } PSKeyTransport_gost; DECLARE_ASN1_FUNCTIONS(PSKeyTransport_gost) @@ -166,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; @@ -210,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 { @@ -240,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();