aboutsummaryrefslogtreecommitdiff
path: root/ecp_id_tc26_gost_3410_2012_512_paramSetB.c
diff options
context:
space:
mode:
authorBilly Brumley <bbrumley@gmail.com>2020-07-10 19:55:32 +0300
committerDmitry Belyavskiy <beldmit@users.noreply.github.com>2020-07-10 20:24:57 +0300
commit409a1c2b76ac1d783bef6d35542e338d3777b5ac (patch)
treeaf03067292ef7af6acbb0e6b2042f76d22b93a88 /ecp_id_tc26_gost_3410_2012_512_paramSetB.c
parent136c63196d92b5d1eac34dfedcbc2b4a63f83752 (diff)
downloadgost-engine-409a1c2b76ac1d783bef6d35542e338d3777b5ac.zip
gost-engine-409a1c2b76ac1d783bef6d35542e338d3777b5ac.tar.gz
gost-engine-409a1c2b76ac1d783bef6d35542e338d3777b5ac.tar.bz2
GOST EC armv7 aarch64 fixes
char defaults to signed on x86/x64, but unsigned on ARM.
Diffstat (limited to 'ecp_id_tc26_gost_3410_2012_512_paramSetB.c')
-rw-r--r--ecp_id_tc26_gost_3410_2012_512_paramSetB.c34
1 files changed, 18 insertions, 16 deletions
diff --git a/ecp_id_tc26_gost_3410_2012_512_paramSetB.c b/ecp_id_tc26_gost_3410_2012_512_paramSetB.c
index e305747..83f2112 100644
--- a/ecp_id_tc26_gost_3410_2012_512_paramSetB.c
+++ b/ecp_id_tc26_gost_3410_2012_512_paramSetB.c
@@ -6469,9 +6469,9 @@ static int scalar_get_bit(const unsigned char in[64], int idx) {
* {\pm 1, \pm 3, \pm 5, \pm 7, \pm 9, ...}
* i.e. signed odd digits with _no zeroes_ -- that makes it "regular".
*/
-static void scalar_rwnaf(char out[103], const unsigned char in[64]) {
+static void scalar_rwnaf(int8_t out[103], const unsigned char in[64]) {
int i;
- char window, d;
+ int8_t window, d;
window = (in[0] & (DRADIX_WNAF - 1)) | 1;
for (i = 0; i < 102; i++) {
@@ -6491,9 +6491,9 @@ static void scalar_rwnaf(char out[103], const unsigned char in[64]) {
* Compute "textbook" wnaf representation of a scalar.
* NB: not constant time
*/
-static void scalar_wnaf(char out[513], const unsigned char in[64]) {
+static void scalar_wnaf(int8_t out[513], const unsigned char in[64]) {
int i;
- char window, d;
+ int8_t window, d;
window = in[0] & (DRADIX_WNAF - 1);
for (i = 0; i < 513; i++) {
@@ -6513,8 +6513,8 @@ static void scalar_wnaf(char out[513], const unsigned char in[64]) {
static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[64],
const unsigned char b[64], const pt_aff_t *P) {
int i, d, is_neg, is_inf = 1, flipped = 0;
- char anaf[513] = {0};
- char bnaf[513] = {0};
+ int8_t anaf[513] = {0};
+ int8_t bnaf[513] = {0};
pt_prj_t Q;
pt_prj_t precomp[DRADIX / 2];
@@ -6580,7 +6580,7 @@ static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[64],
static void var_smul_rwnaf(pt_aff_t *out, const unsigned char scalar[64],
const pt_aff_t *P) {
int i, j, d, diff, is_neg;
- char rnaf[103] = {0};
+ int8_t rnaf[103] = {0};
pt_prj_t Q, lut;
pt_prj_t precomp[DRADIX / 2];
@@ -6656,7 +6656,7 @@ static void var_smul_rwnaf(pt_aff_t *out, const unsigned char scalar[64],
*/
static void fixed_smul_cmb(pt_aff_t *out, const unsigned char scalar[64]) {
int i, j, k, d, diff, is_neg = 0;
- char rnaf[103] = {0};
+ int8_t rnaf[103] = {0};
pt_prj_t Q, R;
pt_aff_t lut;
@@ -6768,6 +6768,7 @@ static void point_mul(unsigned char outx[64], unsigned char outy[64],
fiat_id_tc26_gost_3410_2012_512_paramSetB_to_bytes(outy, P.Y);
}
+
#include <openssl/ec.h>
static const unsigned char const_zb[64] = {0};
@@ -21902,9 +21903,9 @@ static int scalar_get_bit(const unsigned char in[64], int idx) {
* {\pm 1, \pm 3, \pm 5, \pm 7, \pm 9, ...}
* i.e. signed odd digits with _no zeroes_ -- that makes it "regular".
*/
-static void scalar_rwnaf(char out[103], const unsigned char in[64]) {
+static void scalar_rwnaf(int8_t out[103], const unsigned char in[64]) {
int i;
- char window, d;
+ int8_t window, d;
window = (in[0] & (DRADIX_WNAF - 1)) | 1;
for (i = 0; i < 102; i++) {
@@ -21924,9 +21925,9 @@ static void scalar_rwnaf(char out[103], const unsigned char in[64]) {
* Compute "textbook" wnaf representation of a scalar.
* NB: not constant time
*/
-static void scalar_wnaf(char out[513], const unsigned char in[64]) {
+static void scalar_wnaf(int8_t out[513], const unsigned char in[64]) {
int i;
- char window, d;
+ int8_t window, d;
window = in[0] & (DRADIX_WNAF - 1);
for (i = 0; i < 513; i++) {
@@ -21946,8 +21947,8 @@ static void scalar_wnaf(char out[513], const unsigned char in[64]) {
static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[64],
const unsigned char b[64], const pt_aff_t *P) {
int i, d, is_neg, is_inf = 1, flipped = 0;
- char anaf[513] = {0};
- char bnaf[513] = {0};
+ int8_t anaf[513] = {0};
+ int8_t bnaf[513] = {0};
pt_prj_t Q;
pt_prj_t precomp[DRADIX / 2];
@@ -22013,7 +22014,7 @@ static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[64],
static void var_smul_rwnaf(pt_aff_t *out, const unsigned char scalar[64],
const pt_aff_t *P) {
int i, j, d, diff, is_neg;
- char rnaf[103] = {0};
+ int8_t rnaf[103] = {0};
pt_prj_t Q, lut;
pt_prj_t precomp[DRADIX / 2];
@@ -22089,7 +22090,7 @@ static void var_smul_rwnaf(pt_aff_t *out, const unsigned char scalar[64],
*/
static void fixed_smul_cmb(pt_aff_t *out, const unsigned char scalar[64]) {
int i, j, k, d, diff, is_neg = 0;
- char rnaf[103] = {0};
+ int8_t rnaf[103] = {0};
pt_prj_t Q, R;
pt_aff_t lut;
@@ -22201,6 +22202,7 @@ static void point_mul(unsigned char outx[64], unsigned char outy[64],
fiat_id_tc26_gost_3410_2012_512_paramSetB_to_bytes(outy, P.Y);
}
+
#include <openssl/ec.h>
static const unsigned char const_zb[64] = {0};