tls: commented out psPool_t use

function                                             old     new   delta
psAesEncrypt                                         159     162      +3
der_binary_to_pstm                                    42      40      -2
xwrite_and_hash                                      437     434      -3
xread_tls_block                                      446     443      -3
pstm_div_2d                                          449     444      -5
psAesDecrypt                                         179     174      -5
pstm_init_size                                        52      45      -7
pstm_init                                             46      39      -7
pstm_to_unsigned_bin                                 165     157      -8
tls_main                                            1265    1256      -9
pstm_mulmod                                          132     123      -9
pstm_mod                                             125     116      -9
pstm_init_copy                                        93      84      -9
psAesInitKey                                         840     825     -15
send_client_key_exchange                             362     342     -20
psAesInit                                            103      80     -23
psRsaEncryptPub                                      429     403     -26
psAesDecryptBlock                                   1211    1184     -27
psAesEncryptBlock                                   1223    1193     -30
pstm_exptmod                                        1582    1524     -58
pstm_div                                            1557    1472     -85
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/20 up/down: 3/-360)          Total: -357 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2017-01-19 15:51:00 +01:00
parent 1bfc4b85a7
commit 6b1b004845
10 changed files with 122 additions and 69 deletions

View File

@ -66,8 +66,7 @@ typedef int32_t int32;
typedef uint16_t uint16; typedef uint16_t uint16;
typedef int16_t int16; typedef int16_t int16;
//FIXME //typedef char psPool_t;
typedef char psPool_t;
//#ifdef PS_PUBKEY_OPTIMIZE_FOR_SMALLER_RAM //#ifdef PS_PUBKEY_OPTIMIZE_FOR_SMALLER_RAM
#define PS_EXPTMOD_WINSIZE 3 #define PS_EXPTMOD_WINSIZE 3

View File

@ -6,7 +6,7 @@
#include "tls.h" #include "tls.h"
/* The file is taken almost verbatim from matrixssl-3-7-2b-open/crypto/symmetric/. /* The file is taken almost verbatim from matrixssl-3-7-2b-open/crypto/symmetric/.
* Changes are flagged with ///bbox * Changes are flagged with //bbox
*/ */
/** /**
@ -43,7 +43,7 @@
*/ */
/******************************************************************************/ /******************************************************************************/
///vda //bbox
//#include "../cryptoApi.h" //#include "../cryptoApi.h"
#ifdef USE_AES #ifdef USE_AES
@ -1084,10 +1084,11 @@ int32 psAesInit(psCipherContext_t *ctx, unsigned char *IV,
{ {
int32 x, err; int32 x, err;
if (IV == NULL || key == NULL || ctx == NULL) { //bbox
psTraceCrypto("psAesInit arg fail\n"); // if (IV == NULL || key == NULL || ctx == NULL) {
return PS_ARG_FAIL; // psTraceCrypto("psAesInit arg fail\n");
} // return PS_ARG_FAIL;
// }
memset(ctx, 0x0, sizeof(psCipherContext_t)); memset(ctx, 0x0, sizeof(psCipherContext_t));
/* /*
setup cipher setup cipher
@ -1112,10 +1113,13 @@ int32 psAesEncrypt(psCipherContext_t *ctx, unsigned char *pt,
uint32 i; uint32 i;
unsigned char tmp[MAXBLOCKSIZE]; unsigned char tmp[MAXBLOCKSIZE];
if (pt == NULL || ct == NULL || ctx == NULL || (len & 0x7) != 0) { //bbox
psTraceCrypto("Bad parameters to psAesEncrypt\n"); // if (pt == NULL || ct == NULL || ctx == NULL || (len & 0x7) != 0) {
return PS_ARG_FAIL; // psTraceCrypto("Bad parameters to psAesEncrypt\n");
} // return PS_ARG_FAIL;
// }
if ((len & 0x7) != 0)
bb_error_msg_and_die("AES len:%d", len);
/* /*
is blocklen valid? is blocklen valid?
@ -1159,10 +1163,13 @@ int32 psAesDecrypt(psCipherContext_t *ctx, unsigned char *ct,
uint32 i; uint32 i;
unsigned char tmp[MAXBLOCKSIZE], tmp2[MAXBLOCKSIZE]; unsigned char tmp[MAXBLOCKSIZE], tmp2[MAXBLOCKSIZE];
if (pt == NULL || ct == NULL || ctx == NULL || (len & 0x7) != 0) { //bbox
psTraceCrypto("Bad parameters to psAesDecrypt\n"); // if (pt == NULL || ct == NULL || ctx == NULL || (len & 0x7) != 0) {
return PS_ARG_FAIL; // psTraceCrypto("Bad parameters to psAesDecrypt\n");
} // return PS_ARG_FAIL;
// }
if ((len & 0x7) != 0)
bb_error_msg_and_die("AES len:%d", len);
/* /*
is blocklen valid? is blocklen valid?
@ -1221,14 +1228,15 @@ int32 psAesInitKey(const unsigned char *key, uint32 keylen, psAesKey_t *skey)
int32 i, j; int32 i, j;
uint32 temp, *rk, *rrk; uint32 temp, *rk, *rrk;
if (key == NULL || skey == NULL) { //bbox
psTraceCrypto("Bad args to psAesInitKey\n"); // if (key == NULL || skey == NULL) {
return PS_ARG_FAIL; // psTraceCrypto("Bad args to psAesInitKey\n");
} // return PS_ARG_FAIL;
// }
if (keylen != 16 && keylen != 24 && keylen != 32) { if (keylen != 16 && keylen != 24 && keylen != 32) {
psTraceCrypto("Invalid AES key length\n"); psTraceCrypto("Invalid AES key length\n");
///bbox return CRYPT_INVALID_KEYSIZE; //bbox return CRYPT_INVALID_KEYSIZE;
//unreachable anyway //unreachable anyway
return PS_ARG_FAIL; return PS_ARG_FAIL;
} }
@ -1398,9 +1406,10 @@ void psAesEncryptBlock(const unsigned char *pt, unsigned char *ct,
uint32 s0, s1, s2, s3, t0, t1, t2, t3, *rk; uint32 s0, s1, s2, s3, t0, t1, t2, t3, *rk;
int32 Nr, r; int32 Nr, r;
if (pt == NULL || ct == NULL || skey == NULL) { //bbox
return; // if (pt == NULL || ct == NULL || skey == NULL) {
} // return;
// }
Nr = skey->Nr; Nr = skey->Nr;
rk = skey->eK; rk = skey->eK;
@ -1562,9 +1571,10 @@ void psAesDecryptBlock(const unsigned char *ct, unsigned char *pt,
uint32 s0, s1, s2, s3, t0, t1, t2, t3, *rk; uint32 s0, s1, s2, s3, t0, t1, t2, t3, *rk;
int32 Nr, r; int32 Nr, r;
if (pt == NULL || ct == NULL || skey == NULL) { //bbox
return; // if (pt == NULL || ct == NULL || skey == NULL) {
} // return;
// }
Nr = skey->Nr; Nr = skey->Nr;
rk = skey->dK; rk = skey->dK;

View File

@ -6,7 +6,7 @@
#include "tls.h" #include "tls.h"
/* The file is taken almost verbatim from matrixssl-3-7-2b-open/crypto/math/. /* The file is taken almost verbatim from matrixssl-3-7-2b-open/crypto/math/.
* Changes are flagged with ///bbox * Changes are flagged with //bbox
*/ */
/** /**
@ -43,7 +43,7 @@
*/ */
/******************************************************************************/ /******************************************************************************/
///bbox //bbox
//#include "../cryptoApi.h" //#include "../cryptoApi.h"
#ifndef DISABLE_PSTM #ifndef DISABLE_PSTM
@ -55,21 +55,21 @@ static int32 pstm_mul_2d(pstm_int *a, int16 b, pstm_int *c);
*/ */
int32 pstm_init_size(psPool_t *pool, pstm_int * a, uint32 size) int32 pstm_init_size(psPool_t *pool, pstm_int * a, uint32 size)
{ {
///bbox //bbox
// uint16 x; // uint16 x;
/* /*
alloc mem alloc mem
*/ */
a->dp = xzalloc(sizeof (pstm_digit) * size);///bbox a->dp = xzalloc(sizeof (pstm_digit) * size);//bbox
a->pool = pool; //bbox a->pool = pool;
a->used = 0; a->used = 0;
a->alloc = (int16)size; a->alloc = (int16)size;
a->sign = PSTM_ZPOS; a->sign = PSTM_ZPOS;
/* /*
zero the digits zero the digits
*/ */
///bbox //bbox
// for (x = 0; x < size; x++) { // for (x = 0; x < size; x++) {
// a->dp[x] = 0; // a->dp[x] = 0;
// } // }
@ -82,16 +82,16 @@ int32 pstm_init_size(psPool_t *pool, pstm_int * a, uint32 size)
*/ */
int32 pstm_init(psPool_t *pool, pstm_int * a) int32 pstm_init(psPool_t *pool, pstm_int * a)
{ {
///bbox //bbox
// int32 i; // int32 i;
/* /*
allocate memory required and clear it allocate memory required and clear it
*/ */
a->dp = xzalloc(sizeof (pstm_digit) * PSTM_DEFAULT_INIT);///bbox a->dp = xzalloc(sizeof (pstm_digit) * PSTM_DEFAULT_INIT);//bbox
/* /*
set the digits to zero set the digits to zero
*/ */
///bbox //bbox
// for (i = 0; i < PSTM_DEFAULT_INIT; i++) { // for (i = 0; i < PSTM_DEFAULT_INIT; i++) {
// a->dp[i] = 0; // a->dp[i] = 0;
// } // }
@ -99,7 +99,7 @@ int32 pstm_init(psPool_t *pool, pstm_int * a)
set the used to zero, allocated digits to the default precision and sign set the used to zero, allocated digits to the default precision and sign
to positive to positive
*/ */
a->pool = pool; //bbox a->pool = pool;
a->used = 0; a->used = 0;
a->alloc = PSTM_DEFAULT_INIT; a->alloc = PSTM_DEFAULT_INIT;
a->sign = PSTM_ZPOS; a->sign = PSTM_ZPOS;
@ -126,7 +126,7 @@ int32 pstm_grow(pstm_int * a, int16 size)
We store the return in a temporary variable in case the operation We store the return in a temporary variable in case the operation
failed we don't want to overwrite the dp member of a. failed we don't want to overwrite the dp member of a.
*/ */
tmp = xrealloc(a->dp, sizeof (pstm_digit) * size);///bbox tmp = xrealloc(a->dp, sizeof (pstm_digit) * size);//bbox
/* /*
reallocation succeeded so set a->dp reallocation succeeded so set a->dp
*/ */
@ -1622,7 +1622,7 @@ int32 pstm_exptmod(psPool_t *pool, pstm_int *G, pstm_int *X, pstm_int *P,
Pre-allocated digit. Used for mul, sqr, AND reduce Pre-allocated digit. Used for mul, sqr, AND reduce
*/ */
paDlen = ((M[1].used + 3) * 2) * sizeof(pstm_digit); paDlen = ((M[1].used + 3) * 2) * sizeof(pstm_digit);
paD = xzalloc(paDlen);///bbox paD = xzalloc(paDlen);//bbox
/* /*
compute the value at M[1<<(winsize-1)] by squaring M[1] (winsize-1) times compute the value at M[1<<(winsize-1)] by squaring M[1] (winsize-1) times
*/ */
@ -1941,6 +1941,9 @@ int32 pstm_cmp_d(pstm_int *a, pstm_digit b)
in cases where dQ > dP. The values must be switched and a new qP must be in cases where dQ > dP. The values must be switched and a new qP must be
calculated using this function calculated using this function
*/ */
//bbox: pool unused
#define pstm_invmod_slow(pool, a, b, c) \
pstm_invmod_slow( a, b, c)
static int32 pstm_invmod_slow(psPool_t *pool, pstm_int * a, pstm_int * b, static int32 pstm_invmod_slow(psPool_t *pool, pstm_int * a, pstm_int * b,
pstm_int * c) pstm_int * c)
{ {

View File

@ -4,7 +4,7 @@
* Licensed under GPLv2, see file LICENSE in this source tree. * Licensed under GPLv2, see file LICENSE in this source tree.
*/ */
/* The file is taken almost verbatim from matrixssl-3-7-2b-open/crypto/math/. /* The file is taken almost verbatim from matrixssl-3-7-2b-open/crypto/math/.
* Changes are flagged with ///bbox * Changes are flagged with //bbox
*/ */
/** /**
@ -124,7 +124,7 @@
typedef struct { typedef struct {
int16 used, alloc, sign; int16 used, alloc, sign;
pstm_digit *dp; pstm_digit *dp;
psPool_t *pool; //bbox psPool_t *pool;
} pstm_int; } pstm_int;
/******************************************************************************/ /******************************************************************************/
@ -140,15 +140,27 @@ extern void pstm_set(pstm_int *a, pstm_digit b);
extern void pstm_zero(pstm_int * a); extern void pstm_zero(pstm_int * a);
//bbox: pool unused
#define pstm_init(pool, a) \
pstm_init( a)
extern int32 pstm_init(psPool_t *pool, pstm_int * a); extern int32 pstm_init(psPool_t *pool, pstm_int * a);
//bbox: pool unused
#define pstm_init_size(pool, a, size) \
pstm_init_size( a, size)
extern int32 pstm_init_size(psPool_t *pool, pstm_int * a, uint32 size); extern int32 pstm_init_size(psPool_t *pool, pstm_int * a, uint32 size);
//bbox: pool unused
#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, extern int32 pstm_init_copy(psPool_t *pool, pstm_int * a, pstm_int * b,
int16 toSqr); int16 toSqr);
extern int16 pstm_count_bits (pstm_int * a); extern int16 pstm_count_bits (pstm_int * a);
//bbox: pool unused
#define pstm_init_for_read_unsigned_bin(pool, a, len) \
pstm_init_for_read_unsigned_bin( a, len)
extern int32 pstm_init_for_read_unsigned_bin(psPool_t *pool, pstm_int *a, extern int32 pstm_init_for_read_unsigned_bin(psPool_t *pool, pstm_int *a,
uint32 len); uint32 len);
@ -178,9 +190,15 @@ extern void pstm_rshd(pstm_int *a, int16 x);
extern int32 pstm_lshd(pstm_int * a, int16 b); extern int32 pstm_lshd(pstm_int * a, int16 b);
//bbox: pool unused
#define pstm_div(pool, a, b, c, d) \
pstm_div( a, b, c, d)
extern int32 pstm_div(psPool_t *pool, pstm_int *a, pstm_int *b, pstm_int *c, extern int32 pstm_div(psPool_t *pool, pstm_int *a, pstm_int *b, pstm_int *c,
pstm_int *d); pstm_int *d);
//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, extern int32 pstm_div_2d(psPool_t *pool, pstm_int *a, int16 b, pstm_int *c,
pstm_int *d); pstm_int *d);
@ -190,15 +208,27 @@ extern int32 s_pstm_sub(pstm_int *a, pstm_int *b, pstm_int *c);
extern int32 pstm_sub(pstm_int *a, pstm_int *b, pstm_int *c); extern int32 pstm_sub(pstm_int *a, pstm_int *b, pstm_int *c);
//bbox: pool unused
#define pstm_sub_d(pool, a, b, c) \
pstm_sub_d( a, b, c)
extern int32 pstm_sub_d(psPool_t *pool, pstm_int *a, pstm_digit b, pstm_int *c); extern int32 pstm_sub_d(psPool_t *pool, pstm_int *a, pstm_digit b, pstm_int *c);
extern int32 pstm_mul_2(pstm_int * a, pstm_int * b); extern int32 pstm_mul_2(pstm_int * a, pstm_int * b);
//bbox: pool unused
#define pstm_mod(pool, a, b, c) \
pstm_mod( a, b, c)
extern int32 pstm_mod(psPool_t *pool, pstm_int *a, pstm_int *b, pstm_int *c); extern int32 pstm_mod(psPool_t *pool, pstm_int *a, pstm_int *b, pstm_int *c);
//bbox: pool unused
#define pstm_mulmod(pool, a, b, c, d) \
pstm_mulmod( a, b, c, d)
extern int32 pstm_mulmod(psPool_t *pool, pstm_int *a, pstm_int *b, pstm_int *c, extern int32 pstm_mulmod(psPool_t *pool, pstm_int *a, pstm_int *b, pstm_int *c,
pstm_int *d); pstm_int *d);
//bbox: pool unused
#define pstm_exptmod(pool, G, X, P, Y) \
pstm_exptmod( G, X, P, Y)
extern int32 pstm_exptmod(psPool_t *pool, pstm_int *G, pstm_int *X, pstm_int *P, extern int32 pstm_exptmod(psPool_t *pool, pstm_int *G, pstm_int *X, pstm_int *P,
pstm_int *Y); pstm_int *Y);
@ -206,15 +236,21 @@ extern int32 pstm_2expt(pstm_int *a, int16 b);
extern int32 pstm_add(pstm_int *a, pstm_int *b, pstm_int *c); extern int32 pstm_add(pstm_int *a, pstm_int *b, pstm_int *c);
//bbox: pool unused
#define pstm_to_unsigned_bin(pool, a, b) \
pstm_to_unsigned_bin( a, b)
extern int32 pstm_to_unsigned_bin(psPool_t *pool, pstm_int *a, extern int32 pstm_to_unsigned_bin(psPool_t *pool, pstm_int *a,
unsigned char *b); unsigned char *b);
//bbox: pool unused
#define pstm_to_unsigned_bin_nr(pool, a, b) \
pstm_to_unsigned_bin_nr( a, b)
extern int32 pstm_to_unsigned_bin_nr(psPool_t *pool, pstm_int *a, extern int32 pstm_to_unsigned_bin_nr(psPool_t *pool, pstm_int *a,
unsigned char *b); unsigned char *b);
extern int32 pstm_montgomery_setup(pstm_int *a, pstm_digit *rho); extern int32 pstm_montgomery_setup(pstm_int *a, pstm_digit *rho);
///bbox: pool unused //bbox: pool unused
#define pstm_montgomery_reduce(pool, a, m, mp, paD, paDlen) \ #define pstm_montgomery_reduce(pool, a, m, mp, paD, paDlen) \
pstm_montgomery_reduce( a, m, mp, paD, paDlen) pstm_montgomery_reduce( a, m, mp, paD, paDlen)
extern int32 pstm_montgomery_reduce(psPool_t *pool, pstm_int *a, pstm_int *m, extern int32 pstm_montgomery_reduce(psPool_t *pool, pstm_int *a, pstm_int *m,
@ -225,7 +261,7 @@ extern int32 pstm_montgomery_reduce(psPool_t *pool, pstm_int *a, pstm_int *m,
extern int32 pstm_mul_comba(psPool_t *pool, pstm_int *A, pstm_int *B, extern int32 pstm_mul_comba(psPool_t *pool, pstm_int *A, pstm_int *B,
pstm_int *C, pstm_digit *paD, uint32 paDlen); pstm_int *C, pstm_digit *paD, uint32 paDlen);
///bbox: pool unused //bbox: pool unused
#define pstm_sqr_comba(pool, A, B, paD, paDlen) \ #define pstm_sqr_comba(pool, A, B, paD, paDlen) \
pstm_sqr_comba( A, B, paD, paDlen) pstm_sqr_comba( A, B, paD, paDlen)
extern int32 pstm_sqr_comba(psPool_t *pool, pstm_int *A, pstm_int *B, extern int32 pstm_sqr_comba(psPool_t *pool, pstm_int *A, pstm_int *B,
@ -237,6 +273,9 @@ extern int32 pstm_montgomery_calc_normalization(pstm_int *a, pstm_int *b);
extern int32 pstm_mul_d(pstm_int *a, pstm_digit b, pstm_int *c); extern int32 pstm_mul_d(pstm_int *a, pstm_digit b, pstm_int *c);
//bbox: pool unused
#define pstm_invmod(pool, a, b, c) \
pstm_invmod( a, b, c)
extern int32 pstm_invmod(psPool_t *pool, pstm_int * a, pstm_int * b, extern int32 pstm_invmod(psPool_t *pool, pstm_int * a, pstm_int * b,
pstm_int * c); pstm_int * c);

View File

@ -6,7 +6,7 @@
#include "tls.h" #include "tls.h"
/* The file is taken almost verbatim from matrixssl-3-7-2b-open/crypto/math/. /* The file is taken almost verbatim from matrixssl-3-7-2b-open/crypto/math/.
* Changes are flagged with ///bbox * Changes are flagged with //bbox
*/ */
/** /**
@ -43,7 +43,7 @@
*/ */
/******************************************************************************/ /******************************************************************************/
///bbox //bbox
//#include "../cryptoApi.h" //#include "../cryptoApi.h"
#ifndef DISABLE_PSTM #ifndef DISABLE_PSTM
@ -357,7 +357,7 @@ int32 pstm_montgomery_reduce(psPool_t *pool, pstm_int *a, pstm_int *m,
c = paD; c = paD;
memset(c, 0x0, paDlen); memset(c, 0x0, paDlen);
} else { } else {
c = xzalloc(2*pa+1);///bbox c = xzalloc(2*pa+1);//bbox
} }
/* copy the input */ /* copy the input */
oldused = a->used; oldused = a->used;

View File

@ -6,7 +6,7 @@
#include "tls.h" #include "tls.h"
/* The file is taken almost verbatim from matrixssl-3-7-2b-open/crypto/math/. /* The file is taken almost verbatim from matrixssl-3-7-2b-open/crypto/math/.
* Changes are flagged with ///bbox * Changes are flagged with //bbox
*/ */
/** /**
@ -43,7 +43,7 @@
*/ */
/******************************************************************************/ /******************************************************************************/
///bbox //bbox
//#include "../cryptoApi.h" //#include "../cryptoApi.h"
#ifndef DISABLE_PSTM #ifndef DISABLE_PSTM
@ -222,7 +222,7 @@ asm( \
/******************************************************************************/ /******************************************************************************/
/* generic PxQ multiplier */ /* generic PxQ multiplier */
///bbox: pool unused //bbox: pool unused
#define pstm_mul_comba_gen(pool, A, B, C, paD, paDlen) \ #define pstm_mul_comba_gen(pool, A, B, C, paD, paDlen) \
pstm_mul_comba_gen( A, B, C, paD, paDlen) pstm_mul_comba_gen( A, B, C, paD, paDlen)
static int32 pstm_mul_comba_gen(psPool_t *pool, pstm_int *A, pstm_int *B, static int32 pstm_mul_comba_gen(psPool_t *pool, pstm_int *A, pstm_int *B,
@ -250,13 +250,13 @@ static int32 pstm_mul_comba_gen(psPool_t *pool, pstm_int *A, pstm_int *B,
if (paD != NULL) { if (paD != NULL) {
if (paDlen < (sizeof(pstm_digit) * pa)) { if (paDlen < (sizeof(pstm_digit) * pa)) {
paDfail = 1; /* have a paD but it's not large enough */ paDfail = 1; /* have a paD but it's not large enough */
dst = xzalloc(sizeof(pstm_digit) * pa);///bbox dst = xzalloc(sizeof(pstm_digit) * pa);//bbox
} else { } else {
dst = paD; dst = paD;
memset(dst, 0x0, paDlen); memset(dst, 0x0, paDlen);
} }
} else { } else {
dst = xzalloc(sizeof(pstm_digit) * pa);///bbox dst = xzalloc(sizeof(pstm_digit) * pa);//bbox
} }
for (ix = 0; ix < pa; ix++) { for (ix = 0; ix < pa; ix++) {

View File

@ -6,7 +6,7 @@
#include "tls.h" #include "tls.h"
/* The file is taken almost verbatim from matrixssl-3-7-2b-open/crypto/math/. /* The file is taken almost verbatim from matrixssl-3-7-2b-open/crypto/math/.
* Changes are flagged with ///bbox * Changes are flagged with //bbox
*/ */
/** /**
@ -43,7 +43,7 @@
*/ */
/******************************************************************************/ /******************************************************************************/
///bbox //bbox
//#include "../cryptoApi.h" //#include "../cryptoApi.h"
#ifndef DISABLE_PSTM #ifndef DISABLE_PSTM
@ -439,7 +439,7 @@ asm( \
/* /*
Non-unrolled comba squarer Non-unrolled comba squarer
*/ */
///bbox: pool unused //bbox: pool unused
#define pstm_sqr_comba_gen(pool, A, B, paD, paDlen) \ #define pstm_sqr_comba_gen(pool, A, B, paD, paDlen) \
pstm_sqr_comba_gen( A, B, paD, paDlen) pstm_sqr_comba_gen( A, B, paD, paDlen)
static int32 pstm_sqr_comba_gen(psPool_t *pool, pstm_int *A, pstm_int *B, static int32 pstm_sqr_comba_gen(psPool_t *pool, pstm_int *A, pstm_int *B,
@ -470,13 +470,13 @@ static int32 pstm_sqr_comba_gen(psPool_t *pool, pstm_int *A, pstm_int *B,
if (paD != NULL) { if (paD != NULL) {
if (paDlen < (sizeof(pstm_digit) * pa)) { if (paDlen < (sizeof(pstm_digit) * pa)) {
paDfail = 1; /* have a paD, but it's not big enough */ paDfail = 1; /* have a paD, but it's not big enough */
dst = xzalloc(sizeof(pstm_digit) * pa);///bbox dst = xzalloc(sizeof(pstm_digit) * pa);//bbox
} else { } else {
dst = paD; dst = paD;
memset(dst, 0x0, paDlen); memset(dst, 0x0, paDlen);
} }
} else { } else {
dst = xzalloc(sizeof(pstm_digit) * pa);///bbox dst = xzalloc(sizeof(pstm_digit) * pa);//bbox
} }
for (ix = 0; ix < pa; ix++) { for (ix = 0; ix < pa; ix++) {

View File

@ -8,12 +8,12 @@
/* The code below is taken from parts of /* The code below is taken from parts of
* matrixssl-3-7-2b-open/crypto/pubkey/pkcs.c * matrixssl-3-7-2b-open/crypto/pubkey/pkcs.c
* matrixssl-3-7-2b-open/crypto/pubkey/rsa.c * matrixssl-3-7-2b-open/crypto/pubkey/rsa.c
* and (so far) almost not modified. Changes are flagged with ///bbox * and (so far) almost not modified. Changes are flagged with //bbox
*/ */
#define pkcs1Pad(in, inlen, out, outlen, cryptType, userPtr) \ #define pkcs1Pad(in, inlen, out, outlen, cryptType, userPtr) \
pkcs1Pad(in, inlen, out, outlen, cryptType) pkcs1Pad(in, inlen, out, outlen, cryptType)
static ///bbox static //bbox
int32 pkcs1Pad(unsigned char *in, uint32 inlen, unsigned char *out, int32 pkcs1Pad(unsigned char *in, uint32 inlen, unsigned char *out,
uint32 outlen, int32 cryptType, void *userPtr) uint32 outlen, int32 cryptType, void *userPtr)
{ {
@ -57,8 +57,8 @@ int32 pkcs1Pad(unsigned char *in, uint32 inlen, unsigned char *out,
} }
#define psRsaCrypt(pool, in, inlen, out, outlen, key, type, data) \ #define psRsaCrypt(pool, in, inlen, out, outlen, key, type, data) \
psRsaCrypt(pool, in, inlen, out, outlen, key, type) psRsaCrypt( in, inlen, out, outlen, key, type)
static ///bbox static //bbox
int32 psRsaCrypt(psPool_t *pool, const unsigned char *in, uint32 inlen, int32 psRsaCrypt(psPool_t *pool, const unsigned char *in, uint32 inlen,
unsigned char *out, uint32 *outlen, psRsaKey_t *key, int32 type, unsigned char *out, uint32 *outlen, psRsaKey_t *key, int32 type,
void *data) void *data)
@ -67,10 +67,11 @@ int32 psRsaCrypt(psPool_t *pool, const unsigned char *in, uint32 inlen,
int32 res; int32 res;
uint32 x; uint32 x;
if (in == NULL || out == NULL || outlen == NULL || key == NULL) { //bbox
psTraceCrypto("NULL parameter error in psRsaCrypt\n"); // if (in == NULL || out == NULL || outlen == NULL || key == NULL) {
return PS_ARG_FAIL; // psTraceCrypto("NULL parameter error in psRsaCrypt\n");
} // return PS_ARG_FAIL;
// }
tmp.dp = tmpa.dp = tmpb.dp = NULL; tmp.dp = tmpa.dp = tmpb.dp = NULL;
@ -187,7 +188,8 @@ int32 psRsaEncryptPub(psPool_t *pool, psRsaKey_t *key,
size = key->size; size = key->size;
if (outlen < size) { if (outlen < size) {
psTraceCrypto("Error on bad outlen parameter to psRsaEncryptPub: outlen:%d < size:%d", outlen, size); //bbox psTraceCrypto("Error on bad outlen parameter to psRsaEncryptPub\n");
bb_error_msg_and_die("RSA crypt outlen:%d < size:%d", outlen, size);
return PS_ARG_FAIL; return PS_ARG_FAIL;
} }

View File

@ -10,11 +10,11 @@ typedef struct {
pstm_int e, d, N, qP, dP, dQ, p, q; pstm_int e, d, N, qP, dP, dQ, p, q;
uint32 size; /* Size of the key in bytes */ uint32 size; /* Size of the key in bytes */
int32 optimized; /* 1 for optimized */ int32 optimized; /* 1 for optimized */
psPool_t *pool; //bbox psPool_t *pool;
} psRsaKey_t; } psRsaKey_t;
#define psRsaEncryptPub(pool, key, in, inlen, out, outlen, data) \ #define psRsaEncryptPub(pool, key, in, inlen, out, outlen, data) \
psRsaEncryptPub(pool, key, in, inlen, out, outlen) psRsaEncryptPub( key, in, inlen, out, outlen)
int32 psRsaEncryptPub(psPool_t *pool, psRsaKey_t *key, int32 psRsaEncryptPub(psPool_t *pool, psRsaKey_t *key,
unsigned char *in, uint32 inlen, unsigned char *in, uint32 inlen,
unsigned char *out, uint32 outlen, void *data); unsigned char *out, uint32 outlen, void *data);

View File

@ -6,7 +6,7 @@
/* The part below is a section of matrixssl-3-7-2b-open/crypto/cryptolib.h /* The part below is a section of matrixssl-3-7-2b-open/crypto/cryptolib.h
* Changes are flagged with ///bbox * Changes are flagged with //bbox
* TODO: * TODO:
* Take a look at "roll %%cl" part... rotates by constant use fewer registers, * Take a look at "roll %%cl" part... rotates by constant use fewer registers,
* and on many Intel CPUs rotates by %cl are slower: they take 2 cycles, not 1. * and on many Intel CPUs rotates by %cl are slower: they take 2 cycles, not 1.
@ -299,7 +299,7 @@ x = (((uint64)((y)[0] & 255))<<56)|(((uint64)((y)[1] & 255))<<48)| \
/* The part below is taken almost verbatim from matrixssl-3-7-2b-open/crypto/symmetric/. /* The part below is taken almost verbatim from matrixssl-3-7-2b-open/crypto/symmetric/.
* Changes are flagged with ///bbox * Changes are flagged with //bbox
*/ */
/** /**