summaryrefslogtreecommitdiffstats
path: root/libjava/java/security/KeyPairGenerator.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/security/KeyPairGenerator.java')
-rw-r--r--libjava/java/security/KeyPairGenerator.java86
1 files changed, 86 insertions, 0 deletions
diff --git a/libjava/java/security/KeyPairGenerator.java b/libjava/java/security/KeyPairGenerator.java
new file mode 100644
index 00000000000..7954c3270ac
--- /dev/null
+++ b/libjava/java/security/KeyPairGenerator.java
@@ -0,0 +1,86 @@
+/* Copyright (C) 2000 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+package java.security;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 10, 2000.
+ */
+
+/**
+ * Written using on-line Java Platform 1.2 API Specification.
+ * Status: Partially implemented to the 1.1 spec.
+ * It is known not to comply with the 1.2 spec.
+ */
+
+public abstract class KeyPairGenerator extends KeyPairGeneratorSpi
+{
+ protected KeyPairGenerator(String algorithm)
+ {
+ name = algorithm;
+ }
+
+ public static KeyPairGenerator getInstance(String algorithm)
+ throws NoSuchAlgorithmException
+ {
+ String name = "KeyPairGenerator." + algorithm;
+ Provider[] provs = Security.getProviders();
+ for (int i = 0; i < provs.length; ++i)
+ {
+ String val = provs[i].getProperty(name);
+ if (val != null)
+ {
+ try
+ {
+ return (KeyPairGenerator) Class.forName(val).newInstance();
+ }
+ catch (Throwable _)
+ {
+ // We just ignore failures.
+ }
+ }
+ }
+
+ throw new NoSuchAlgorithmException(algorithm);
+ }
+
+ public static KeyPairGenerator getInstance(String algorithm, String provider)
+ throws NoSuchAlgorithmException, NoSuchProviderException
+ {
+ String name = "KeyPairGenerator." + algorithm;
+ Provider p = Security.getProvider(provider);
+ if (p == null)
+ throw new NoSuchProviderException(provider);
+ String val = p.getProperty(name);
+ if (val != null)
+ {
+ try
+ {
+ return (KeyPairGenerator) Class.forName(val).newInstance();
+ }
+ catch (Throwable _)
+ {
+ // Nothing.
+ }
+ }
+
+ throw new NoSuchAlgorithmException(algorithm);
+ }
+
+ public String getAlgorithm()
+ {
+ return name;
+ }
+
+ public abstract void initialize(int strength, SecureRandom random);
+ public abstract KeyPair generateKeyPair();
+
+ // Algorithm name.
+ private String name;
+}
OpenPOWER on IntegriCloud