Fix for padding X9.31 padding check and zero padding bytes.

This commit is contained in:
Dr. Stephen Henson 2005-06-06 22:39:43 +00:00
parent 8fa6a40be2
commit a78c0632ed

View File

@ -115,9 +115,9 @@ int RSA_padding_check_X931(unsigned char *to, int tlen,
return -1; return -1;
} }
j=flen-3;
if (*p++ == 0x6B) if (*p++ == 0x6B)
{ {
j=flen-3;
for (i = 0; i < j; i++) for (i = 0; i < j; i++)
{ {
unsigned char c = *p++; unsigned char c = *p++;
@ -130,7 +130,6 @@ int RSA_padding_check_X931(unsigned char *to, int tlen,
return -1; return -1;
} }
} }
}
j -= i; j -= i;
@ -140,6 +139,9 @@ int RSA_padding_check_X931(unsigned char *to, int tlen,
return -1; return -1;
} }
}
else j = flen - 2;
if (p[j] != 0xCC) if (p[j] != 0xCC)
{ {
RSAerr(RSA_F_RSA_PADDING_CHECK_X931, RSA_R_INVALID_TRAILER); RSAerr(RSA_F_RSA_PADDING_CHECK_X931, RSA_R_INVALID_TRAILER);