]> www.wagner.pp.ru Git - openssl-gost/engine.git/blob - gost_gost2015.h
GOST CMS encryption implementation.
[openssl-gost/engine.git] / gost_gost2015.h
1 #ifndef GOST_GOST2015_H
2 #define GOST_GOST2015_H
3
4 #include <openssl/evp.h>
5 #include <openssl/x509.h>
6
7 #define MAGMA_MAC_MAX_SIZE 8
8 #define KUZNYECHIK_MAC_MAX_SIZE 16
9 #define OID_GOST_CMS_MAC "1.2.643.7.1.0.6.1.1"
10
11 int gost2015_final_call(EVP_CIPHER_CTX *ctx, EVP_MD_CTX *omac_ctx, size_t mac_size,
12                         unsigned char *encrypted_mac,
13                         int (*do_cipher) (EVP_CIPHER_CTX *ctx,
14                                 unsigned char *out,
15                                 const unsigned char *in,
16                                 size_t inl));
17
18 /* IV is expected to be 16 bytes*/
19 int gost2015_get_asn1_params(const ASN1_TYPE *params, size_t ukm_size,
20         unsigned char *iv, size_t ukm_offset, unsigned char *kdf_seed);
21
22 int gost2015_set_asn1_params(ASN1_TYPE *params,
23         const unsigned char *iv, size_t iv_size, const unsigned char *kdf_seed);
24
25 int gost2015_process_unprotected_attributes(STACK_OF(X509_ATTRIBUTE) *attrs,
26             int encryption, size_t mac_len, unsigned char *final_tag);
27
28 int gost2015_acpkm_omac_init(int nid, int enc, const unsigned char *inkey,
29                              EVP_MD_CTX *omac_ctx,
30                              unsigned char *outkey, unsigned char *kdf_seed);
31 int init_zero_kdf_seed(unsigned char *kdf_seed);
32
33 #endif