/* Gost-specific pmeth control-function parameters */
/* For GOST R34.10 parameters */
# define param_ctrl_string "paramset"
+# define ukm_ctrl_string "ukmhex"
# define EVP_PKEY_CTRL_GOST_PARAMSET (EVP_PKEY_ALG_CTRL+1)
/* For GOST 28147 MAC */
# define key_ctrl_string "key"
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;
const EVP_CIPHER *cipher_gost_cpcnt_12();
const EVP_CIPHER *cipher_magma_cbc();
const EVP_CIPHER *cipher_magma_ctr();
+const EVP_CIPHER *cipher_magma_wrap();
+const EVP_CIPHER *cipher_kuznyechik_wrap();
void cipher_gost_destroy();
+void wrap_ciphers_destroy();
-void inc_counter(unsigned char *buffer, size_t buf_len);
+void inc_counter(unsigned char *counter, size_t counter_bytes);
# define EVP_MD_CTRL_KEY_LEN (EVP_MD_CTRL_ALG_CTRL+3)
# define EVP_MD_CTRL_SET_KEY (EVP_MD_CTRL_ALG_CTRL+4)
const unsigned char *seed, size_t seed_len,
const size_t representation);
-int gost_tlstree(int cipher_nid, const unsigned char* inkey,
- unsigned char *outkey, const unsigned char *tlsseq);
+int gost_tlstree(int cipher_nid, const unsigned char *in, unsigned char *out,
+ const unsigned char *tlsseq);
/* KExp/KImp */
int gost_kexp15(const unsigned char *shared_key, const int shared_len,
int cipher_nid, const unsigned char *cipher_key,