]> www.wagner.pp.ru Git - openssl-gost/engine.git/blobdiff - gost_gost2015.h
Magma/Kuznyechik ASN1 parameters and functions
[openssl-gost/engine.git] / gost_gost2015.h
diff --git a/gost_gost2015.h b/gost_gost2015.h
new file mode 100644 (file)
index 0000000..797fbca
--- /dev/null
@@ -0,0 +1,22 @@
+#ifndef GOST_GOST2015_H
+#define GOST_GOST2015_H
+
+#include <openssl/evp.h>
+
+#define MAGMA_MAC_MAX_SIZE 8
+#define KUZNYECHIK_MAC_MAX_SIZE 16
+
+int gost2015_final_call(EVP_CIPHER_CTX *ctx, EVP_MD_CTX *omac_ctx, size_t mac_size,
+                       unsigned char *encrypted_mac,
+                       int (*do_cipher) (EVP_CIPHER_CTX *ctx,
+                               unsigned char *out,
+                               const unsigned char *in,
+                               size_t inl));
+
+/* IV is expected to be 16 bytes*/
+int gost2015_get_asn1_params(const ASN1_TYPE *params, size_t ukm_size,
+       unsigned char *iv, size_t ukm_offset, unsigned char *kdf_seed);
+
+int gost2015_set_asn1_params(ASN1_TYPE *params,
+       const unsigned char *iv, size_t iv_size, const unsigned char *kdf_seed);
+#endif