diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2020-09-04 23:57:27 +0700 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2020-09-04 23:57:27 +0700 |
commit | 86a4479929bd5f3fa5ce2cabfe6a4ebb53944df4 (patch) | |
tree | 2610425aacd90c6153402495afa3ea84077c741c /crypto/src/bcpg | |
parent | Remove unnecessary locking (diff) | |
download | BouncyCastle.NET-ed25519-86a4479929bd5f3fa5ce2cabfe6a4ebb53944df4.tar.xz |
'safegcd' modular inversion
Diffstat (limited to 'crypto/src/bcpg')
-rw-r--r-- | crypto/src/bcpg/RsaSecretBcpgKey.cs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/crypto/src/bcpg/RsaSecretBcpgKey.cs b/crypto/src/bcpg/RsaSecretBcpgKey.cs index 5c04d9f85..783f083ce 100644 --- a/crypto/src/bcpg/RsaSecretBcpgKey.cs +++ b/crypto/src/bcpg/RsaSecretBcpgKey.cs @@ -1,6 +1,7 @@ using System; using Org.BouncyCastle.Math; +using Org.BouncyCastle.Utilities; namespace Org.BouncyCastle.Bcpg { @@ -21,7 +22,7 @@ namespace Org.BouncyCastle.Bcpg this.expP = d.Value.Remainder(p.Value.Subtract(BigInteger.One)); this.expQ = d.Value.Remainder(q.Value.Subtract(BigInteger.One)); - this.crt = q.Value.ModInverse(p.Value); + this.crt = BigIntegers.ModOddInverse(p.Value, q.Value); } public RsaSecretBcpgKey( @@ -44,11 +45,11 @@ namespace Org.BouncyCastle.Bcpg this.d = new MPInteger(d); this.p = new MPInteger(p); this.q = new MPInteger(q); - this.u = new MPInteger(p.ModInverse(q)); + this.u = new MPInteger(BigIntegers.ModOddInverse(q, p)); this.expP = d.Remainder(p.Subtract(BigInteger.One)); this.expQ = d.Remainder(q.Subtract(BigInteger.One)); - this.crt = q.ModInverse(p); + this.crt = BigIntegers.ModOddInverse(p, q); } public BigInteger Modulus |