mirror of https://github.com/wolfSSL/wolfssl.git
Merge pull request #72 from wolfSSL/smallstack
dummy buffer replacement in timing resistant functions.pull/74/head
commit
670c325f29
|
@ -6062,11 +6062,10 @@ static int TimingPadVerify(WOLFSSL* ssl, const byte* input, int padLen, int t,
|
||||||
int pLen, int content)
|
int pLen, int content)
|
||||||
{
|
{
|
||||||
byte verify[MAX_DIGEST_SIZE];
|
byte verify[MAX_DIGEST_SIZE];
|
||||||
byte dummy[MAX_PAD_SIZE];
|
byte dmy[sizeof(WOLFSSL) >= MAX_PAD_SIZE ? 1 : MAX_PAD_SIZE] = {0};
|
||||||
|
byte* dummy = sizeof(dmy) < MAX_PAD_SIZE ? (byte*) ssl : dmy;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
XMEMSET(dummy, 1, sizeof(dummy));
|
|
||||||
|
|
||||||
if ( (t + padLen + 1) > pLen) {
|
if ( (t + padLen + 1) > pLen) {
|
||||||
WOLFSSL_MSG("Plain Len not long enough for pad/mac");
|
WOLFSSL_MSG("Plain Len not long enough for pad/mac");
|
||||||
PadCheck(dummy, (byte)padLen, MAX_PAD_SIZE);
|
PadCheck(dummy, (byte)padLen, MAX_PAD_SIZE);
|
||||||
|
@ -6300,9 +6299,8 @@ static INLINE int VerifyMac(WOLFSSL* ssl, const byte* input, word32 msgSz,
|
||||||
else { /* sslv3, some implementations have bad padding, but don't
|
else { /* sslv3, some implementations have bad padding, but don't
|
||||||
* allow bad read */
|
* allow bad read */
|
||||||
int badPadLen = 0;
|
int badPadLen = 0;
|
||||||
byte dummy[MAX_PAD_SIZE];
|
byte dmy[sizeof(WOLFSSL) >= MAX_PAD_SIZE ? 1 : MAX_PAD_SIZE] = {0};
|
||||||
|
byte* dummy = sizeof(dmy) < MAX_PAD_SIZE ? (byte*) ssl : dmy;
|
||||||
XMEMSET(dummy, 1, sizeof(dummy));
|
|
||||||
|
|
||||||
if (pad > (msgSz - digestSz - 1)) {
|
if (pad > (msgSz - digestSz - 1)) {
|
||||||
WOLFSSL_MSG("Plain Len not long enough for pad/mac");
|
WOLFSSL_MSG("Plain Len not long enough for pad/mac");
|
||||||
|
|
Loading…
Reference in New Issue