aboutsummaryrefslogtreecommitdiff
path: root/gost_grasshopper_cipher.h
diff options
context:
space:
mode:
authorVitaly Chikunov <vt@altlinux.org>2018-07-26 07:34:07 +0300
committerVitaly Chikunov <vt@altlinux.org>2018-07-26 18:52:29 +0300
commit488f3da97f0833c1608bffb6ea510be4314cef7f (patch)
tree978ef8e65063fe833cc6290c8e41d81826885f30 /gost_grasshopper_cipher.h
parent234823a6d6971a72b29247a4893db5a61f8b992a (diff)
downloadgost-engine-488f3da97f0833c1608bffb6ea510be4314cef7f.zip
gost-engine-488f3da97f0833c1608bffb6ea510be4314cef7f.tar.gz
gost-engine-488f3da97f0833c1608bffb6ea510be4314cef7f.tar.bz2
Add kuznyechik_ctracpkm
Diffstat (limited to 'gost_grasshopper_cipher.h')
-rw-r--r--gost_grasshopper_cipher.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/gost_grasshopper_cipher.h b/gost_grasshopper_cipher.h
index c8957a0..0ab17c1 100644
--- a/gost_grasshopper_cipher.h
+++ b/gost_grasshopper_cipher.h
@@ -32,6 +32,9 @@ typedef struct {
typedef struct {
gost_grasshopper_cipher_ctx c;
grasshopper_w128_t partial_buffer;
+ unsigned int skip_sections; /* 1 or 0, used to skip meshing for a first section */
+ unsigned int section_size; /* After how much bytes mesh the key,
+ if 0 never mesh and work like plain ctr. */
} gost_grasshopper_cipher_ctx_ctr;
typedef int (* grasshopper_init_cipher_func)(EVP_CIPHER_CTX* ctx, const unsigned char* key, const unsigned char* iv,
@@ -56,6 +59,8 @@ int gost_grasshopper_cipher_init_cfb(EVP_CIPHER_CTX* ctx, const unsigned char* k
int gost_grasshopper_cipher_init_ctr(EVP_CIPHER_CTX* ctx, const unsigned char* key, const unsigned char* iv, int enc);
+int gost_grasshopper_cipher_init_ctracpkm(EVP_CIPHER_CTX* ctx, const unsigned char* key, const unsigned char* iv, int enc);
+
int gost_grasshopper_cipher_init(EVP_CIPHER_CTX* ctx, const unsigned char* key,
const unsigned char* iv, int enc);
@@ -76,6 +81,8 @@ int gost_grasshopper_cipher_do_cfb(EVP_CIPHER_CTX* ctx, unsigned char* out,
int gost_grasshopper_cipher_do_ctr(EVP_CIPHER_CTX* ctx, unsigned char* out,
const unsigned char* in, size_t inl);
+int gost_grasshopper_cipher_do_ctracpkm(EVP_CIPHER_CTX* ctx, unsigned char* out,
+ const unsigned char* in, size_t inl);
int gost_grasshopper_cipher_cleanup(EVP_CIPHER_CTX* ctx);
@@ -96,6 +103,7 @@ extern const EVP_CIPHER* cipher_gost_grasshopper_cbc();
extern const EVP_CIPHER* cipher_gost_grasshopper_ofb();
extern const EVP_CIPHER* cipher_gost_grasshopper_cfb();
extern const EVP_CIPHER* cipher_gost_grasshopper_ctr();
+extern const EVP_CIPHER* cipher_gost_grasshopper_ctracpkm();
void cipher_gost_grasshopper_destroy(void);