diff options
Diffstat (limited to 'core/src/main/java/org/spongycastle/crypto/params/RSAKeyGenerationParameters.java')
-rw-r--r-- | core/src/main/java/org/spongycastle/crypto/params/RSAKeyGenerationParameters.java | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/core/src/main/java/org/spongycastle/crypto/params/RSAKeyGenerationParameters.java b/core/src/main/java/org/spongycastle/crypto/params/RSAKeyGenerationParameters.java new file mode 100644 index 00000000..6c047059 --- /dev/null +++ b/core/src/main/java/org/spongycastle/crypto/params/RSAKeyGenerationParameters.java @@ -0,0 +1,48 @@ +package org.spongycastle.crypto.params; + +import java.math.BigInteger; +import java.security.SecureRandom; + +import org.spongycastle.crypto.KeyGenerationParameters; + +public class RSAKeyGenerationParameters + extends KeyGenerationParameters +{ + private BigInteger publicExponent; + private int certainty; + + public RSAKeyGenerationParameters( + BigInteger publicExponent, + SecureRandom random, + int strength, + int certainty) + { + super(random, strength); + + if (strength < 12) + { + throw new IllegalArgumentException("key strength too small"); + } + + // + // public exponent cannot be even + // + if (!publicExponent.testBit(0)) + { + throw new IllegalArgumentException("public exponent cannot be even"); + } + + this.publicExponent = publicExponent; + this.certainty = certainty; + } + + public BigInteger getPublicExponent() + { + return publicExponent; + } + + public int getCertainty() + { + return certainty; + } +} |