summaryrefslogtreecommitdiff
path: root/lib/rsa/rsa-verify.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2014-07-30 16:00:17 (GMT)
committerTom Rini <trini@ti.com>2014-08-09 15:17:04 (GMT)
commit542671623129f1db947801d2756186b501c98c49 (patch)
tree4eec89ac139e09980f5d81ade3cefb1a7ed1346a /lib/rsa/rsa-verify.c
parent8ac22a60e29c4d0925e3d640a3607eabb2732b26 (diff)
downloadu-boot-fsl-qoriq-542671623129f1db947801d2756186b501c98c49.tar.xz
rsa: Fix two errors in the implementation
1. Failure to set the return code correctly 2. Failure to detect the loop end condition when the value is equal to the modulus. Reported-by: Jeroen Hofstee <jeroen@myspectrum.nl> Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'lib/rsa/rsa-verify.c')
-rw-r--r--lib/rsa/rsa-verify.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/rsa/rsa-verify.c b/lib/rsa/rsa-verify.c
index c5bcdb6..4ef19b6 100644
--- a/lib/rsa/rsa-verify.c
+++ b/lib/rsa/rsa-verify.c
@@ -57,9 +57,9 @@ static void subtract_modulus(const struct rsa_public_key *key, uint32_t num[])
static int greater_equal_modulus(const struct rsa_public_key *key,
uint32_t num[])
{
- uint32_t i;
+ int i;
- for (i = key->len - 1; i >= 0; i--) {
+ for (i = (int)key->len - 1; i >= 0; i--) {
if (num[i] < key->modulus[i])
return 0;
if (num[i] > key->modulus[i])