Fix for padding X9.31 padding check and zero padding bytes.
diff --git a/crypto/rsa/rsa_x931.c b/crypto/rsa/rsa_x931.c index 7d77213..e918654 100644 --- a/crypto/rsa/rsa_x931.c +++ b/crypto/rsa/rsa_x931.c
@@ -115,9 +115,9 @@ return -1; } - j=flen-3; if (*p++ == 0x6B) { + j=flen-3; for (i = 0; i < j; i++) { unsigned char c = *p++; @@ -130,15 +130,17 @@ return -1; } } - } - j -= i; + j -= i; - if (i == 0) - { - RSAerr(RSA_F_RSA_PADDING_CHECK_X931, RSA_R_INVALID_PADDING); - return -1; + if (i == 0) + { + RSAerr(RSA_F_RSA_PADDING_CHECK_X931, RSA_R_INVALID_PADDING); + return -1; + } + } + else j = flen - 2; if (p[j] != 0xCC) {