aboutsummaryrefslogtreecommitdiff
path: root/gost_keyexpimp.c
diff options
context:
space:
mode:
authorDmitry Belyavskiy <beldmit@gmail.com>2020-09-18 16:52:47 +0300
committerDmitry Belyavskiy <beldmit@gmail.com>2020-09-18 16:53:30 +0300
commitb8ede042a2dcc26c96d0f41b57ef5fd205f55d64 (patch)
treeef397a3d3103742b2963058c55f341c059388c3b /gost_keyexpimp.c
parent22d446a1f4320318704d4050b0486567505dc960 (diff)
downloadgost-engine-b8ede042a2dcc26c96d0f41b57ef5fd205f55d64.zip
gost-engine-b8ede042a2dcc26c96d0f41b57ef5fd205f55d64.tar.gz
gost-engine-b8ede042a2dcc26c96d0f41b57ef5fd205f55d64.tar.bz2
KDF Tree fix for BIG_ENDIAN
(cherry picked from commit 47be42da87cb9bf9bad6f415c442b586ce0752ef)
Diffstat (limited to 'gost_keyexpimp.c')
-rw-r--r--gost_keyexpimp.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/gost_keyexpimp.c b/gost_keyexpimp.c
index 3979b10..b94531f 100644
--- a/gost_keyexpimp.c
+++ b/gost_keyexpimp.c
@@ -231,17 +231,10 @@ int gost_kdftree2012_256(unsigned char *keyout, size_t keyout_len,
int gost_tlstree(int cipher_nid, const unsigned char *in, unsigned char *out,
const unsigned char *tlsseq)
{
-#ifndef L_ENDIAN
- uint64_t gh_c1 = 0xFFFFFFFF00000000, gh_c2 = 0xFFFFFFFFFFF80000,
- gh_c3 = 0xFFFFFFFFFFFFFFC0;
- uint64_t mg_c1 = 0xFFFFFFC000000000, mg_c2 = 0xFFFFFFFFFE000000,
- mg_c3 = 0xFFFFFFFFFFFFF000;
-#else
uint64_t gh_c1 = 0x00000000FFFFFFFF, gh_c2 = 0x0000F8FFFFFFFFFF,
gh_c3 = 0xC0FFFFFFFFFFFFFF;
uint64_t mg_c1 = 0x00000000C0FFFFFF, mg_c2 = 0x000000FEFFFFFFFF,
mg_c3 = 0x00F0FFFFFFFFFFFF;
-#endif
uint64_t c1, c2, c3;
uint64_t seed1, seed2, seed3;
uint64_t seq;
@@ -262,7 +255,7 @@ int gost_tlstree(int cipher_nid, const unsigned char *in, unsigned char *out,
return 0;
}
#ifndef L_ENDIAN
- BUF_reverse(&seq, tlsseq, 8);
+ BUF_reverse((unsigned char *)&seq, tlsseq, 8);
#else
memcpy(&seq, tlsseq, 8);
#endif