summaryrefslogtreecommitdiff
path: root/gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java
diff options
context:
space:
mode:
authorGuilhem Lavaux <guilhem@kaffe.org>2006-02-04 18:38:03 +0000
committerGuilhem Lavaux <guilhem@kaffe.org>2006-02-04 18:38:03 +0000
commit3af9dde820e3a7f8194964ec9dcc8539dd4af2b8 (patch)
tree7abe48072a9d59def3ea20a23d9609435d1a4548 /gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java
parenta92748b017d37f8e4a83997933c5850f9484df9d (diff)
downloadclasspath-3af9dde820e3a7f8194964ec9dcc8539dd4af2b8.tar.gz
2006-02-04 Guilhem Lavaux <guilhem@kaffe.org>
* Resynchronized with GNU Classpath's HEAD branch.
Diffstat (limited to 'gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java')
-rw-r--r--gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java80
1 files changed, 66 insertions, 14 deletions
diff --git a/gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java b/gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java
index 5cb1380d2..2f4d36d51 100644
--- a/gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java
+++ b/gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java
@@ -42,7 +42,10 @@ import gnu.java.security.Registry;
import gnu.java.security.key.dss.DSSKeyPairGenerator;
import java.security.InvalidAlgorithmParameterException;
+import java.security.InvalidParameterException;
import java.security.SecureRandom;
+import java.security.interfaces.DSAKeyPairGenerator;
+import java.security.interfaces.DSAParams;
import java.security.spec.AlgorithmParameterSpec;
import java.security.spec.DSAParameterSpec;
import java.util.HashMap;
@@ -55,9 +58,10 @@ import java.util.HashMap;
* a call to an <code>initialize()</code> method), the GNU Crypto provider
* uses a default <i>modulus</i> size (keysize) of 1024 bits.<p>
*
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.1.2.1 $
*/
-public class DSSKeyPairGeneratorSpi extends KeyPairGeneratorAdapter
+public class DSSKeyPairGeneratorSpi extends KeyPairGeneratorAdapter implements
+ DSAKeyPairGenerator
{
// Constants and variables
@@ -79,14 +83,7 @@ public class DSSKeyPairGeneratorSpi extends KeyPairGeneratorAdapter
public void initialize(int keysize, SecureRandom random)
{
- HashMap attributes = new HashMap();
- attributes.put(DSSKeyPairGenerator.MODULUS_LENGTH, new Integer(keysize));
- if (random != null)
- {
- attributes.put(DSSKeyPairGenerator.SOURCE_OF_RANDOMNESS, random);
- }
-
- adaptee.setup(attributes);
+ this.initialize(keysize, false, random);
}
public void initialize(AlgorithmParameterSpec params, SecureRandom random)
@@ -96,9 +93,9 @@ public class DSSKeyPairGeneratorSpi extends KeyPairGeneratorAdapter
if (params != null)
{
if (!(params instanceof DSAParameterSpec))
- {
- throw new InvalidAlgorithmParameterException("params");
- }
+ throw new InvalidAlgorithmParameterException(
+ "Parameters argument is not a non-null instance, or " +
+ "sub-instance, of java.security.spec.DSAParameterSpec");
attributes.put(DSSKeyPairGenerator.DSS_PARAMETERS, params);
}
@@ -108,6 +105,61 @@ public class DSSKeyPairGeneratorSpi extends KeyPairGeneratorAdapter
attributes.put(DSSKeyPairGenerator.SOURCE_OF_RANDOMNESS, random);
}
- adaptee.setup(attributes);
+ try
+ {
+ adaptee.setup(attributes);
+ }
+ catch (IllegalArgumentException x)
+ {
+ InvalidAlgorithmParameterException y =
+ new InvalidAlgorithmParameterException();
+ y.initCause(x);
+ throw y;
+ }
+ }
+
+ // java.security.interfaces.DSAKeyPairGenerator interface implementation -----
+
+ public void initialize(DSAParams params, SecureRandom random)
+ throws InvalidParameterException
+ {
+ if (params == null || !(params instanceof DSAParameterSpec))
+ throw new InvalidParameterException(
+ "Parameters argument is either null or is not an instance, or " +
+ "sub-instance, of java.security.spec.DSAParameterSpec");
+ DSAParameterSpec spec = (DSAParameterSpec) params;
+ try
+ {
+ this.initialize((AlgorithmParameterSpec) spec, random);
+ }
+ catch (InvalidAlgorithmParameterException x)
+ {
+ InvalidParameterException y = new InvalidParameterException();
+ y.initCause(x);
+ throw y;
+ }
+ }
+
+ public void initialize(int modlen, boolean genParams, SecureRandom random)
+ throws InvalidParameterException
+ {
+ HashMap attributes = new HashMap();
+ attributes.put(DSSKeyPairGenerator.MODULUS_LENGTH, new Integer(modlen));
+ if (random != null)
+ attributes.put(DSSKeyPairGenerator.SOURCE_OF_RANDOMNESS, random);
+
+ attributes.put(DSSKeyPairGenerator.USE_DEFAULTS,
+ Boolean.valueOf(!genParams));
+ attributes.put(DSSKeyPairGenerator.STRICT_DEFAULTS, Boolean.TRUE);
+ try
+ {
+ adaptee.setup(attributes);
+ }
+ catch (IllegalArgumentException x)
+ {
+ InvalidParameterException y = new InvalidParameterException();
+ y.initCause(x);
+ throw y;
+ }
}
}