tls: avoid using int16 in pstm code
function old new delta pstm_div 1472 1522 +50 psRsaEncryptPub 403 413 +10 pstm_2expt 91 96 +5 pstm_clear 68 72 +4 pstm_init 39 42 +3 pstm_unsigned_bin_size 36 37 +1 pstm_montgomery_reduce 398 399 +1 pstm_init_size 45 46 +1 pstm_zero 39 38 -1 pstm_set 35 34 -1 pstm_read_unsigned_bin 112 109 -3 pstm_mulmod 123 120 -3 pstm_mod 116 113 -3 pstm_cmp 57 54 -3 pstm_sub 107 102 -5 pstm_to_unsigned_bin 157 151 -6 pstm_clamp 63 57 -6 pstm_add 116 108 -8 pstm_grow 81 72 -9 pstm_count_bits 57 48 -9 pstm_init_copy 84 72 -12 pstm_cmp_mag 93 78 -15 pstm_sqr_comba 567 551 -16 pstm_montgomery_calc_normalization 158 140 -18 pstm_copy 115 92 -23 pstm_lshd 133 109 -24 pstm_mul_comba 525 500 -25 pstm_mul_d 251 224 -27 s_pstm_sub 256 228 -28 s_pstm_add 370 337 -33 pstm_div_2d 444 409 -35 pstm_mul_2 195 156 -39 pstm_rshd 154 104 -50 pstm_mul_2d 247 186 -61 pstm_exptmod 1524 1463 -61 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 8/27 up/down: 75/-524) Total: -449 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
636c3b627c
commit
229d3c467d
@ -475,7 +475,7 @@ static void prf_hmac_sha256(/*tls_state_t *tls,*/
|
||||
uint8_t a[TLS_MAX_MAC_SIZE];
|
||||
uint8_t *out_p = outbuf;
|
||||
unsigned label_size = strlen(label);
|
||||
unsigned MAC_size = SHA256_OUTSIZE;///tls->MAC_size;
|
||||
unsigned MAC_size = SHA256_OUTSIZE;
|
||||
|
||||
/* In P_hash() calculation, "seed" is "label + seed": */
|
||||
#define SEED label, label_size, seed, seed_size
|
||||
@ -486,7 +486,7 @@ static void prf_hmac_sha256(/*tls_state_t *tls,*/
|
||||
hmac_sha256(/*tls,*/ a, SECRET, SEED, NULL);
|
||||
//TODO: convert hmac to precomputed
|
||||
|
||||
for(;;) {
|
||||
for (;;) {
|
||||
/* HMAC_hash(secret, A(1) + seed) */
|
||||
if (outbuf_size <= MAC_size) {
|
||||
/* Last, possibly incomplete, block */
|
||||
|
@ -47,7 +47,7 @@
|
||||
//#include "../cryptoApi.h"
|
||||
#ifndef DISABLE_PSTM
|
||||
|
||||
static int32 pstm_mul_2d(pstm_int *a, int16 b, pstm_int *c);
|
||||
static int32 pstm_mul_2d(pstm_int *a, int b, pstm_int *c); //bbox: was int16 b
|
||||
|
||||
/******************************************************************************/
|
||||
/*
|
||||
@ -64,7 +64,7 @@ int32 pstm_init_size(psPool_t *pool, pstm_int * a, uint32 size)
|
||||
a->dp = xzalloc(sizeof (pstm_digit) * size);//bbox
|
||||
//bbox a->pool = pool;
|
||||
a->used = 0;
|
||||
a->alloc = (int16)size;
|
||||
a->alloc = size;
|
||||
a->sign = PSTM_ZPOS;
|
||||
/*
|
||||
zero the digits
|
||||
@ -111,9 +111,9 @@ int32 pstm_init(psPool_t *pool, pstm_int * a)
|
||||
/*
|
||||
Grow as required
|
||||
*/
|
||||
int32 pstm_grow(pstm_int * a, int16 size)
|
||||
int32 pstm_grow(pstm_int * a, int size)
|
||||
{
|
||||
int16 i;
|
||||
int i; //bbox: was int16
|
||||
pstm_digit *tmp;
|
||||
|
||||
/*
|
||||
@ -298,7 +298,7 @@ void pstm_zero(pstm_int * a)
|
||||
*/
|
||||
int32 pstm_cmp_mag(pstm_int * a, pstm_int * b)
|
||||
{
|
||||
int16 n;
|
||||
int n; //bbox: was int16
|
||||
pstm_digit *tmpa, *tmpb;
|
||||
|
||||
/*
|
||||
@ -406,7 +406,7 @@ int32 pstm_read_unsigned_bin(pstm_int *a, unsigned char *b, int32 c)
|
||||
c -= excess;
|
||||
b += excess;
|
||||
}
|
||||
a->used = (int16)((c + sizeof(pstm_digit) - 1)/sizeof(pstm_digit));
|
||||
a->used = ((c + sizeof(pstm_digit) - 1)/sizeof(pstm_digit));
|
||||
if (a->alloc < a->used) {
|
||||
if (pstm_grow(a, a->used) != PSTM_OKAY) {
|
||||
return PSTM_MEM;
|
||||
@ -460,9 +460,9 @@ int32 pstm_read_unsigned_bin(pstm_int *a, unsigned char *b, int32 c)
|
||||
/******************************************************************************/
|
||||
/*
|
||||
*/
|
||||
int16 pstm_count_bits (pstm_int * a)
|
||||
int pstm_count_bits (pstm_int * a)
|
||||
{
|
||||
int16 r;
|
||||
int r; //bbox: was int16
|
||||
pstm_digit q;
|
||||
|
||||
if (a->used == 0) {
|
||||
@ -500,9 +500,9 @@ void pstm_set(pstm_int *a, pstm_digit b)
|
||||
/*
|
||||
Right shift
|
||||
*/
|
||||
void pstm_rshd(pstm_int *a, int16 x)
|
||||
void pstm_rshd(pstm_int *a, int x)
|
||||
{
|
||||
int16 y;
|
||||
int y; //bbox: was int16
|
||||
|
||||
/* too many digits just zero and return */
|
||||
if (x >= a->used) {
|
||||
@ -529,9 +529,9 @@ void pstm_rshd(pstm_int *a, int16 x)
|
||||
/*
|
||||
Shift left a certain amount of digits.
|
||||
*/
|
||||
int32 pstm_lshd(pstm_int * a, int16 b)
|
||||
int32 pstm_lshd(pstm_int * a, int b)
|
||||
{
|
||||
int16 x;
|
||||
int x; //bbox: was int16
|
||||
int32 res;
|
||||
|
||||
/*
|
||||
@ -582,9 +582,9 @@ int32 pstm_lshd(pstm_int * a, int16 b)
|
||||
/*
|
||||
computes a = 2**b
|
||||
*/
|
||||
int32 pstm_2expt(pstm_int *a, int16 b)
|
||||
int32 pstm_2expt(pstm_int *a, int b)
|
||||
{
|
||||
int16 z;
|
||||
int z; //bbox: was int16
|
||||
|
||||
/* zero a as per default */
|
||||
pstm_zero (a);
|
||||
@ -619,7 +619,7 @@ int32 pstm_2expt(pstm_int *a, int16 b)
|
||||
int32 pstm_mul_2(pstm_int * a, pstm_int * b)
|
||||
{
|
||||
int32 res;
|
||||
int16 x, oldused;
|
||||
int x, oldused; //bbox: was int16
|
||||
|
||||
/*
|
||||
grow to accomodate result
|
||||
@ -684,7 +684,7 @@ int32 pstm_mul_2(pstm_int * a, pstm_int * b)
|
||||
*/
|
||||
int32 s_pstm_sub(pstm_int *a, pstm_int *b, pstm_int *c)
|
||||
{
|
||||
int16 oldbused, oldused;
|
||||
int oldbused, oldused; //bbox: was int16
|
||||
int32 x;
|
||||
pstm_word t;
|
||||
|
||||
@ -724,7 +724,7 @@ int32 s_pstm_sub(pstm_int *a, pstm_int *b, pstm_int *c)
|
||||
*/
|
||||
static int32 s_pstm_add(pstm_int *a, pstm_int *b, pstm_int *c)
|
||||
{
|
||||
int16 x, y, oldused;
|
||||
int x, y, oldused; //bbox: was int16
|
||||
register pstm_word t, adp, bdp;
|
||||
|
||||
y = a->used;
|
||||
@ -781,8 +781,8 @@ static int32 s_pstm_add(pstm_int *a, pstm_int *b, pstm_int *c)
|
||||
*/
|
||||
int32 pstm_sub(pstm_int *a, pstm_int *b, pstm_int *c)
|
||||
{
|
||||
int32 res;
|
||||
int16 sa, sb;
|
||||
int32 res;
|
||||
int sa, sb; //bbox: was int16
|
||||
|
||||
sa = a->sign;
|
||||
sb = b->sign;
|
||||
@ -881,7 +881,7 @@ int32 pstm_montgomery_setup(pstm_int *a, pstm_digit *rho)
|
||||
int32 pstm_montgomery_calc_normalization(pstm_int *a, pstm_int *b)
|
||||
{
|
||||
int32 x;
|
||||
int16 bits;
|
||||
int bits; //bbox: was int16
|
||||
|
||||
/* how many bits of last digit does b use */
|
||||
bits = pstm_count_bits (b) % DIGIT_BIT;
|
||||
@ -916,10 +916,10 @@ int32 pstm_montgomery_calc_normalization(pstm_int *a, pstm_int *b)
|
||||
/*
|
||||
c = a * 2**d
|
||||
*/
|
||||
static int32 pstm_mul_2d(pstm_int *a, int16 b, pstm_int *c)
|
||||
static int32 pstm_mul_2d(pstm_int *a, int b, pstm_int *c)
|
||||
{
|
||||
pstm_digit carry, carrytmp, shift;
|
||||
int16 x;
|
||||
int x; //bbox: was int16
|
||||
|
||||
/* copy it */
|
||||
if (pstm_copy(a, c) != PSTM_OKAY) {
|
||||
@ -961,9 +961,9 @@ static int32 pstm_mul_2d(pstm_int *a, int16 b, pstm_int *c)
|
||||
/*
|
||||
c = a mod 2**d
|
||||
*/
|
||||
static int32 pstm_mod_2d(pstm_int *a, int16 b, pstm_int *c)
|
||||
static int32 pstm_mod_2d(pstm_int *a, int b, pstm_int *c) //bbox: was int16 b
|
||||
{
|
||||
int16 x;
|
||||
int x; //bbox: was int16
|
||||
|
||||
/* zero if count less than or equal to zero */
|
||||
if (b <= 0) {
|
||||
@ -1001,7 +1001,7 @@ int32 pstm_mul_d(pstm_int *a, pstm_digit b, pstm_int *c)
|
||||
{
|
||||
pstm_word w;
|
||||
int32 res;
|
||||
int16 x, oldused;
|
||||
int x, oldused; //bbox: was int16
|
||||
|
||||
if (c->alloc < a->used + 1) {
|
||||
if ((res = pstm_grow (c, a->used + 1)) != PSTM_OKAY) {
|
||||
@ -1032,12 +1032,12 @@ int32 pstm_mul_d(pstm_int *a, pstm_digit b, pstm_int *c)
|
||||
/*
|
||||
c = a / 2**b
|
||||
*/
|
||||
int32 pstm_div_2d(psPool_t *pool, pstm_int *a, int16 b, pstm_int *c,
|
||||
int32 pstm_div_2d(psPool_t *pool, pstm_int *a, int b, pstm_int *c,
|
||||
pstm_int *d)
|
||||
{
|
||||
pstm_digit D, r, rr;
|
||||
int32 res;
|
||||
int16 x;
|
||||
int x; //bbox: was int16
|
||||
pstm_int t;
|
||||
|
||||
/* if the shift count is <= 0 then we do no work */
|
||||
@ -1120,7 +1120,7 @@ LBL_DONE:
|
||||
*/
|
||||
int32 pstm_div_2(pstm_int * a, pstm_int * b)
|
||||
{
|
||||
int16 x, oldused;
|
||||
int x, oldused; //bbox: was int16
|
||||
|
||||
if (b->alloc < a->used) {
|
||||
if (pstm_grow(b, a->used) != PSTM_OKAY) {
|
||||
@ -1166,9 +1166,9 @@ int32 pstm_div_2(pstm_int * a, pstm_int * b)
|
||||
/*
|
||||
Creates "a" then copies b into it
|
||||
*/
|
||||
int32 pstm_init_copy(psPool_t *pool, pstm_int * a, pstm_int * b, int16 toSqr)
|
||||
int32 pstm_init_copy(psPool_t *pool, pstm_int * a, pstm_int * b, int toSqr)
|
||||
{
|
||||
int16 x;
|
||||
int x; //bbox: was int16
|
||||
int32 res;
|
||||
|
||||
if (a == b) {
|
||||
@ -1279,7 +1279,7 @@ int32 pstm_div(psPool_t *pool, pstm_int *a, pstm_int *b, pstm_int *c,
|
||||
{
|
||||
pstm_int q, x, y, t1, t2;
|
||||
int32 res;
|
||||
int16 n, t, i, norm, neg;
|
||||
int n, t, i, norm, neg; //bbox: was int16
|
||||
|
||||
/* is divisor zero ? */
|
||||
if (pstm_iszero (b) == 1) {
|
||||
@ -1531,7 +1531,7 @@ int32 pstm_mulmod(psPool_t *pool, pstm_int *a, pstm_int *b, pstm_int *c,
|
||||
pstm_int *d)
|
||||
{
|
||||
int32 res;
|
||||
int16 size;
|
||||
int size; //bbox: was int16
|
||||
pstm_int tmp;
|
||||
|
||||
/*
|
||||
@ -1567,7 +1567,7 @@ int32 pstm_exptmod(psPool_t *pool, pstm_int *G, pstm_int *X, pstm_int *P,
|
||||
pstm_digit buf, mp;
|
||||
pstm_digit *paD;
|
||||
int32 err, bitbuf;
|
||||
int16 bitcpy, bitcnt, mode, digidx, x, y, winsize;
|
||||
int bitcpy, bitcnt, mode, digidx, x, y, winsize; //bbox: was int16
|
||||
uint32 paDlen;
|
||||
|
||||
/* set window size from what user set as optimization */
|
||||
@ -1804,7 +1804,7 @@ LBL_RES:pstm_clear(&res);
|
||||
int32 pstm_add(pstm_int *a, pstm_int *b, pstm_int *c)
|
||||
{
|
||||
int32 res;
|
||||
int16 sa, sb;
|
||||
int sa, sb; //bbox: was int16
|
||||
|
||||
/* get sign of both inputs */
|
||||
sa = a->sign;
|
||||
@ -1817,7 +1817,7 @@ int32 pstm_add(pstm_int *a, pstm_int *b, pstm_int *c)
|
||||
if ((res = s_pstm_add (a, b, c)) != PSTM_OKAY) {
|
||||
return res;
|
||||
}
|
||||
} else {
|
||||
} else {
|
||||
/*
|
||||
one positive, the other negative
|
||||
subtract the one with the greater magnitude from the one of the lesser
|
||||
@ -1842,7 +1842,7 @@ int32 pstm_add(pstm_int *a, pstm_int *b, pstm_int *c)
|
||||
/*
|
||||
reverse an array, used for radix code
|
||||
*/
|
||||
static void pstm_reverse (unsigned char *s, int16 len)
|
||||
static void pstm_reverse (unsigned char *s, int len) //bbox: was int16 len
|
||||
{
|
||||
int32 ix, iy;
|
||||
unsigned char t;
|
||||
@ -1865,7 +1865,7 @@ static void pstm_reverse (unsigned char *s, int16 len)
|
||||
int32 pstm_to_unsigned_bin_nr(psPool_t *pool, pstm_int *a, unsigned char *b)
|
||||
{
|
||||
int32 res;
|
||||
int16 x;
|
||||
int x; //bbox: was int16
|
||||
pstm_int t = { 0 };
|
||||
|
||||
if ((res = pstm_init_copy(pool, &t, a, 0)) != PSTM_OKAY) {
|
||||
@ -1890,7 +1890,7 @@ int32 pstm_to_unsigned_bin_nr(psPool_t *pool, pstm_int *a, unsigned char *b)
|
||||
int32 pstm_to_unsigned_bin(psPool_t *pool, pstm_int *a, unsigned char *b)
|
||||
{
|
||||
int32 res;
|
||||
int16 x;
|
||||
int x; //bbox: was int16
|
||||
pstm_int t = { 0 };
|
||||
|
||||
if ((res = pstm_init_copy(pool, &t, a, 0)) != PSTM_OKAY) {
|
||||
|
@ -122,7 +122,7 @@
|
||||
#define PSTM_MAX_SIZE 4096
|
||||
|
||||
typedef struct {
|
||||
int16 used, alloc, sign;
|
||||
int used, alloc, sign; //bbox: was int16
|
||||
pstm_digit *dp;
|
||||
//bbox psPool_t *pool;
|
||||
} pstm_int;
|
||||
@ -154,9 +154,9 @@ extern int32 pstm_init_size(psPool_t *pool, pstm_int * a, uint32 size);
|
||||
#define pstm_init_copy(pool, a, b, toSqr) \
|
||||
pstm_init_copy( a, b, toSqr)
|
||||
extern int32 pstm_init_copy(psPool_t *pool, pstm_int * a, pstm_int * b,
|
||||
int16 toSqr);
|
||||
int toSqr); //bbox: was int16 toSqr
|
||||
|
||||
extern int16 pstm_count_bits (pstm_int * a);
|
||||
extern int pstm_count_bits (pstm_int * a); //bbox: was returning int16
|
||||
|
||||
//bbox: pool unused
|
||||
#define pstm_init_for_read_unsigned_bin(pool, a, len) \
|
||||
@ -178,7 +178,7 @@ extern void pstm_clear_multi(pstm_int *mp0, pstm_int *mp1, pstm_int *mp2,
|
||||
pstm_int *mp3, pstm_int *mp4, pstm_int *mp5, pstm_int *mp6,
|
||||
pstm_int *mp7);
|
||||
|
||||
extern int32 pstm_grow(pstm_int * a, int16 size);
|
||||
extern int32 pstm_grow(pstm_int * a, int size); //bbox: was int16 size
|
||||
|
||||
extern void pstm_clamp(pstm_int * a);
|
||||
|
||||
@ -186,9 +186,9 @@ extern int32 pstm_cmp(pstm_int * a, pstm_int * b);
|
||||
|
||||
extern int32 pstm_cmp_mag(pstm_int * a, pstm_int * b);
|
||||
|
||||
extern void pstm_rshd(pstm_int *a, int16 x);
|
||||
extern void pstm_rshd(pstm_int *a, int x); //bbox: was int16 x
|
||||
|
||||
extern int32 pstm_lshd(pstm_int * a, int16 b);
|
||||
extern int32 pstm_lshd(pstm_int * a, int b); //bbox: was int16 b
|
||||
|
||||
//bbox: pool unused
|
||||
#define pstm_div(pool, a, b, c, d) \
|
||||
@ -199,8 +199,8 @@ extern int32 pstm_div(psPool_t *pool, pstm_int *a, pstm_int *b, pstm_int *c,
|
||||
//bbox: pool unused
|
||||
#define pstm_div_2d(pool, a, b, c, d) \
|
||||
pstm_div_2d( a, b, c, d)
|
||||
extern int32 pstm_div_2d(psPool_t *pool, pstm_int *a, int16 b, pstm_int *c,
|
||||
pstm_int *d);
|
||||
extern int32 pstm_div_2d(psPool_t *pool, pstm_int *a, int b, pstm_int *c,
|
||||
pstm_int *d); //bbox: was int16 b
|
||||
|
||||
extern int32 pstm_div_2(pstm_int * a, pstm_int * b);
|
||||
|
||||
@ -232,7 +232,7 @@ extern int32 pstm_mulmod(psPool_t *pool, pstm_int *a, pstm_int *b, pstm_int *c,
|
||||
extern int32 pstm_exptmod(psPool_t *pool, pstm_int *G, pstm_int *X, pstm_int *P,
|
||||
pstm_int *Y);
|
||||
|
||||
extern int32 pstm_2expt(pstm_int *a, int16 b);
|
||||
extern int32 pstm_2expt(pstm_int *a, int b); //bbox: was int16 b
|
||||
|
||||
extern int32 pstm_add(pstm_int *a, pstm_int *b, pstm_int *c);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user