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 */
};
typedef struct PSKeyTransport_st {
ASN1_OCTET_STRING *psexp;
X509_PUBKEY *ephem_key;
+ ASN1_OCTET_STRING *ukm;
} PSKeyTransport_gost;
DECLARE_ASN1_FUNCTIONS(PSKeyTransport_gost)
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;
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 {
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();