Skip to content

Commit 4d00d63

Browse files
committed
added check for null private exponent with CRT key.
1 parent 72ee97f commit 4d00d63

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

core/src/main/java/org/bouncycastle/crypto/engines/RSACoreEngine.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,13 @@ public BigInteger processBlock(BigInteger input)
221221

222222
return m;
223223
}
224+
else
225+
{
226+
if (key.getExponent() == null)
227+
{
228+
throw new IllegalStateException("null exponent, should \"org.bouncycastle.rsa.no_lenstra_check\" be enabled?");
229+
}
230+
}
224231
}
225232

226233
return input.modPow(key.getExponent(), key.getModulus());

core/src/test/java/org/bouncycastle/crypto/test/RSABlindedTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,20 @@ public void performTest()
435435
bEng.init(true, privParameters);
436436

437437
bEng.processBlock(new byte[]{ 1 }, 0, 1);
438+
439+
privParameters = new RSAPrivateCrtKeyParameters(mod, null, null, p, q, pExp, qExp, crtCoef);
440+
441+
bEng.init(true, privParameters);
442+
443+
try
444+
{
445+
bEng.processBlock(new byte[]{1}, 0, 1);
446+
fail("no exception");
447+
}
448+
catch (IllegalStateException e)
449+
{
450+
// ignore - expected.
451+
}
438452
}
439453

440454

0 commit comments

Comments
 (0)