]> gcc.gnu.org Git - gcc.git/commitdiff
AlgorithmParameterGeneratorSpi.java: New file.
authorWarren Levy <warrenl@cygnus.com>
Fri, 10 Mar 2000 02:43:57 +0000 (02:43 +0000)
committerWarren Levy <warrenl@gcc.gnu.org>
Fri, 10 Mar 2000 02:43:57 +0000 (02:43 +0000)
* java/security/AlgorithmParameterGeneratorSpi.java: New file.
* java/security/DigestException.java: New file.
* java/security/GeneralSecurityException.java: New file.
* java/security/InvalidAlgorithmParameterException.java: New file.
* java/security/InvalidKeyException.java: New file.
* java/security/InvalidParameterException.java: New file.
* java/security/Key.java: New file.
* java/security/KeyException.java: New file.
* java/security/KeyPair.java: New file.
* java/security/KeyPairGenerator.java: New file.
* java/security/KeyPairGeneratorSpi.java: New file.
* java/security/NoSuchProviderException.java: New file.
* java/security/PrivateKey.java: New file.
* java/security/Provider.java: New file.
* java/security/PublicKey.java: New file.
* java/security/SecureRandom.java: New file.
* java/security/Security.java: New file.
* java/security/Signature.java: New file.
* java/security/SignatureException.java: New file.
* java/security/interfaces/DSAKey.java: New file.
* java/security/interfaces/DSAParams.java: New file.
* java/security/interfaces/DSAPrivateKey.java: New file.
* java/security/interfaces/DSAPublicKey.java: New file.
* java/security/interfaces/RSAPrivateCrtKey.java: New file.
* java/security/interfaces/RSAPrivateKey.java: New file.
* java/security/interfaces/RSAPublicKey.java: New file.
* java/security/spec/AlgorithmParameterSpec.java: New file.
* java/security/spec/InvalidKeySpecException.java: New file.
* java/security/spec/InvalidParameterSpecException.java: New file.
* java/security/spec/KeySpec.java: New file.
* java/security/spec/RSAPrivateCrtKeySpec.java: New file.
* java/security/spec/RSAPrivateKeySpec.java: New file.
* java/security/spec/RSAPublicKeySpec.java: New file.
* Makefile.am: Added above java.security files.
* Makefile.in: Rebuilt.

* java/security/MessageDigest.java: Rewritten.
* java/security/SecureClassLoader.java: Added JDK1.2 comment.

From-SVN: r32461

38 files changed:
libjava/ChangeLog
libjava/Makefile.am
libjava/Makefile.in
libjava/java/security/AlgorithmParameterGeneratorSpi.java [new file with mode: 0644]
libjava/java/security/DigestException.java [new file with mode: 0644]
libjava/java/security/GeneralSecurityException.java [new file with mode: 0644]
libjava/java/security/InvalidAlgorithmParameterException.java [new file with mode: 0644]
libjava/java/security/InvalidKeyException.java [new file with mode: 0644]
libjava/java/security/InvalidParameterException.java [new file with mode: 0644]
libjava/java/security/Key.java [new file with mode: 0644]
libjava/java/security/KeyException.java [new file with mode: 0644]
libjava/java/security/KeyPair.java [new file with mode: 0644]
libjava/java/security/KeyPairGenerator.java [new file with mode: 0644]
libjava/java/security/KeyPairGeneratorSpi.java [new file with mode: 0644]
libjava/java/security/MessageDigest.java
libjava/java/security/NoSuchProviderException.java [new file with mode: 0644]
libjava/java/security/PrivateKey.java [new file with mode: 0644]
libjava/java/security/Provider.java [new file with mode: 0644]
libjava/java/security/PublicKey.java [new file with mode: 0644]
libjava/java/security/SecureClassLoader.java
libjava/java/security/SecureRandom.java [new file with mode: 0644]
libjava/java/security/Security.java [new file with mode: 0644]
libjava/java/security/Signature.java [new file with mode: 0644]
libjava/java/security/SignatureException.java [new file with mode: 0644]
libjava/java/security/interfaces/DSAKey.java [new file with mode: 0644]
libjava/java/security/interfaces/DSAParams.java [new file with mode: 0644]
libjava/java/security/interfaces/DSAPrivateKey.java [new file with mode: 0644]
libjava/java/security/interfaces/DSAPublicKey.java [new file with mode: 0644]
libjava/java/security/interfaces/RSAPrivateCrtKey.java [new file with mode: 0644]
libjava/java/security/interfaces/RSAPrivateKey.java [new file with mode: 0644]
libjava/java/security/interfaces/RSAPublicKey.java [new file with mode: 0644]
libjava/java/security/spec/AlgorithmParameterSpec.java [new file with mode: 0644]
libjava/java/security/spec/InvalidKeySpecException.java [new file with mode: 0644]
libjava/java/security/spec/InvalidParameterSpecException.java [new file with mode: 0644]
libjava/java/security/spec/KeySpec.java [new file with mode: 0644]
libjava/java/security/spec/RSAPrivateCrtKeySpec.java [new file with mode: 0644]
libjava/java/security/spec/RSAPrivateKeySpec.java [new file with mode: 0644]
libjava/java/security/spec/RSAPublicKeySpec.java [new file with mode: 0644]

index cbafeb92bc6c702a7385c3828442ef4bf7a34102..bc37c8a4bfc9eccbaaa6858134e549b574dadde0 100644 (file)
@@ -1,3 +1,44 @@
+2000-03-09  Warren Levy  <warrenl@cygnus.com>
+
+       * java/security/AlgorithmParameterGeneratorSpi.java: New file.
+       * java/security/DigestException.java: New file.
+       * java/security/GeneralSecurityException.java: New file.
+       * java/security/InvalidAlgorithmParameterException.java: New file.
+       * java/security/InvalidKeyException.java: New file.
+       * java/security/InvalidParameterException.java: New file.
+       * java/security/Key.java: New file.
+       * java/security/KeyException.java: New file.
+       * java/security/KeyPair.java: New file.
+       * java/security/KeyPairGenerator.java: New file.
+       * java/security/KeyPairGeneratorSpi.java: New file.
+       * java/security/NoSuchProviderException.java: New file.
+       * java/security/PrivateKey.java: New file.
+       * java/security/Provider.java: New file.
+       * java/security/PublicKey.java: New file.
+       * java/security/SecureRandom.java: New file.
+       * java/security/Security.java: New file.
+       * java/security/Signature.java: New file.
+       * java/security/SignatureException.java: New file.
+       * java/security/interfaces/DSAKey.java: New file.
+       * java/security/interfaces/DSAParams.java: New file.
+       * java/security/interfaces/DSAPrivateKey.java: New file.
+       * java/security/interfaces/DSAPublicKey.java: New file.
+       * java/security/interfaces/RSAPrivateCrtKey.java: New file.
+       * java/security/interfaces/RSAPrivateKey.java: New file.
+       * java/security/interfaces/RSAPublicKey.java: New file.
+       * java/security/spec/AlgorithmParameterSpec.java: New file.
+       * java/security/spec/InvalidKeySpecException.java: New file.
+       * java/security/spec/InvalidParameterSpecException.java: New file.
+       * java/security/spec/KeySpec.java: New file.
+       * java/security/spec/RSAPrivateCrtKeySpec.java: New file.
+       * java/security/spec/RSAPrivateKeySpec.java: New file.
+       * java/security/spec/RSAPublicKeySpec.java: New file.
+       * Makefile.am: Added above java.security files.
+       * Makefile.in: Rebuilt.
+
+       * java/security/MessageDigest.java: Rewritten.
+       * java/security/SecureClassLoader.java: Added JDK1.2 comment.
+
 2000-03-09  Bryce McKinlay  <bryce@albatross.co.nz>
 
        * README: Updated.
index 7711ec8e1a7f69e26ec65e4ced2c3ae7ecc586fe..1926f7d367dc812438ac3671aab9551dc0e65175 100644 (file)
@@ -702,9 +702,42 @@ java/net/URLStreamHandler.java \
 java/net/URLStreamHandlerFactory.java \
 java/net/UnknownHostException.java \
 java/net/UnknownServiceException.java \
+java/security/AlgorithmParameterGeneratorSpi.java \
+java/security/DigestException.java \
+java/security/GeneralSecurityException.java \
+java/security/InvalidAlgorithmParameterException.java \
+java/security/InvalidKeyException.java \
+java/security/InvalidParameterException.java \
+java/security/Key.java \
+java/security/KeyException.java \
+java/security/KeyPair.java \
+java/security/KeyPairGenerator.java \
+java/security/KeyPairGeneratorSpi.java \
 java/security/MessageDigest.java \
 java/security/NoSuchAlgorithmException.java \
+java/security/NoSuchProviderException.java \
+java/security/PrivateKey.java \
+java/security/Provider.java \
+java/security/PublicKey.java \
 java/security/SecureClassLoader.java \
+java/security/SecureRandom.java \
+java/security/Security.java \
+java/security/Signature.java \
+java/security/SignatureException.java \
+java/security/interfaces/DSAKey.java \
+java/security/interfaces/DSAParams.java \
+java/security/interfaces/DSAPrivateKey.java \
+java/security/interfaces/DSAPublicKey.java \
+java/security/interfaces/RSAPrivateCrtKey.java \
+java/security/interfaces/RSAPrivateKey.java \
+java/security/interfaces/RSAPublicKey.java \
+java/security/spec/AlgorithmParameterSpec.java \
+java/security/spec/InvalidKeySpecException.java \
+java/security/spec/InvalidParameterSpecException.java \
+java/security/spec/KeySpec.java \
+java/security/spec/RSAPrivateCrtKeySpec.java \
+java/security/spec/RSAPrivateKeySpec.java \
+java/security/spec/RSAPublicKeySpec.java \
 java/text/BreakIterator.java \
 java/text/CharacterIterator.java \
 java/text/ChoiceFormat.java \
index 65cade913ef05eba3c06e5d2051e52b20ba1fb8f..682317dd9fce6dc471f62409ec34333e3479e540 100644 (file)
@@ -514,9 +514,42 @@ java/net/URLStreamHandler.java \
 java/net/URLStreamHandlerFactory.java \
 java/net/UnknownHostException.java \
 java/net/UnknownServiceException.java \
+java/security/AlgorithmParameterGeneratorSpi.java \
+java/security/DigestException.java \
+java/security/GeneralSecurityException.java \
+java/security/InvalidAlgorithmParameterException.java \
+java/security/InvalidKeyException.java \
+java/security/InvalidParameterException.java \
+java/security/Key.java \
+java/security/KeyException.java \
+java/security/KeyPair.java \
+java/security/KeyPairGenerator.java \
+java/security/KeyPairGeneratorSpi.java \
 java/security/MessageDigest.java \
 java/security/NoSuchAlgorithmException.java \
+java/security/NoSuchProviderException.java \
+java/security/PrivateKey.java \
+java/security/Provider.java \
+java/security/PublicKey.java \
 java/security/SecureClassLoader.java \
+java/security/SecureRandom.java \
+java/security/Security.java \
+java/security/Signature.java \
+java/security/SignatureException.java \
+java/security/interfaces/DSAKey.java \
+java/security/interfaces/DSAParams.java \
+java/security/interfaces/DSAPrivateKey.java \
+java/security/interfaces/DSAPublicKey.java \
+java/security/interfaces/RSAPrivateCrtKey.java \
+java/security/interfaces/RSAPrivateKey.java \
+java/security/interfaces/RSAPublicKey.java \
+java/security/spec/AlgorithmParameterSpec.java \
+java/security/spec/InvalidKeySpecException.java \
+java/security/spec/InvalidParameterSpecException.java \
+java/security/spec/KeySpec.java \
+java/security/spec/RSAPrivateCrtKeySpec.java \
+java/security/spec/RSAPrivateKeySpec.java \
+java/security/spec/RSAPublicKeySpec.java \
 java/text/BreakIterator.java \
 java/text/CharacterIterator.java \
 java/text/ChoiceFormat.java \
@@ -899,10 +932,39 @@ DEP_FILES =  .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
 .deps/java/net/URLStreamHandlerFactory.P \
 .deps/java/net/UnknownHostException.P \
 .deps/java/net/UnknownServiceException.P \
+.deps/java/security/AlgorithmParameterGeneratorSpi.P \
+.deps/java/security/DigestException.P \
+.deps/java/security/GeneralSecurityException.P \
+.deps/java/security/InvalidAlgorithmParameterException.P \
+.deps/java/security/InvalidKeyException.P \
+.deps/java/security/InvalidParameterException.P \
+.deps/java/security/Key.P .deps/java/security/KeyException.P \
+.deps/java/security/KeyPair.P .deps/java/security/KeyPairGenerator.P \
+.deps/java/security/KeyPairGeneratorSpi.P \
 .deps/java/security/MessageDigest.P \
 .deps/java/security/NoSuchAlgorithmException.P \
-.deps/java/security/SecureClassLoader.P .deps/java/text/BreakIterator.P \
-.deps/java/text/CharacterIterator.P .deps/java/text/ChoiceFormat.P \
+.deps/java/security/NoSuchProviderException.P \
+.deps/java/security/PrivateKey.P .deps/java/security/Provider.P \
+.deps/java/security/PublicKey.P .deps/java/security/SecureClassLoader.P \
+.deps/java/security/SecureRandom.P .deps/java/security/Security.P \
+.deps/java/security/Signature.P \
+.deps/java/security/SignatureException.P \
+.deps/java/security/interfaces/DSAKey.P \
+.deps/java/security/interfaces/DSAParams.P \
+.deps/java/security/interfaces/DSAPrivateKey.P \
+.deps/java/security/interfaces/DSAPublicKey.P \
+.deps/java/security/interfaces/RSAPrivateCrtKey.P \
+.deps/java/security/interfaces/RSAPrivateKey.P \
+.deps/java/security/interfaces/RSAPublicKey.P \
+.deps/java/security/spec/AlgorithmParameterSpec.P \
+.deps/java/security/spec/InvalidKeySpecException.P \
+.deps/java/security/spec/InvalidParameterSpecException.P \
+.deps/java/security/spec/KeySpec.P \
+.deps/java/security/spec/RSAPrivateCrtKeySpec.P \
+.deps/java/security/spec/RSAPrivateKeySpec.P \
+.deps/java/security/spec/RSAPublicKeySpec.P \
+.deps/java/text/BreakIterator.P .deps/java/text/CharacterIterator.P \
+.deps/java/text/ChoiceFormat.P \
 .deps/java/text/CollationElementIterator.P \
 .deps/java/text/CollationKey.P .deps/java/text/Collator.P \
 .deps/java/text/DateFormat.P .deps/java/text/DateFormatSymbols.P \
diff --git a/libjava/java/security/AlgorithmParameterGeneratorSpi.java b/libjava/java/security/AlgorithmParameterGeneratorSpi.java
new file mode 100644 (file)
index 0000000..476e1bb
--- /dev/null
@@ -0,0 +1,25 @@
+/* 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 7, 2000.
+ */
+
+/**
+ * Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Stubbed.
+ */
+
+// JDK1.2
+public abstract class AlgorithmParameterGeneratorSpi
+{
+  // FIXME: Stubbed.
+}
diff --git a/libjava/java/security/DigestException.java b/libjava/java/security/DigestException.java
new file mode 100644 (file)
index 0000000..8c6b2db
--- /dev/null
@@ -0,0 +1,32 @@
+/* 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 1, 2000.
+ */
+
+/**
+ * Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+
+public class DigestException extends GeneralSecurityException
+{
+  public DigestException()
+  {
+    super();
+  }
+
+  public DigestException(String msg)
+  {
+    super(msg);
+  }
+}
diff --git a/libjava/java/security/GeneralSecurityException.java b/libjava/java/security/GeneralSecurityException.java
new file mode 100644 (file)
index 0000000..9d30737
--- /dev/null
@@ -0,0 +1,33 @@
+/* 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 1, 2000.
+ */
+
+/**
+ * Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+
+// JDK1.2
+public class GeneralSecurityException extends Exception
+{
+  public GeneralSecurityException()
+  {
+    super();
+  }
+
+  public GeneralSecurityException(String msg)
+  {
+    super(msg);
+  }
+}
diff --git a/libjava/java/security/InvalidAlgorithmParameterException.java b/libjava/java/security/InvalidAlgorithmParameterException.java
new file mode 100644 (file)
index 0000000..35063a9
--- /dev/null
@@ -0,0 +1,33 @@
+/* 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 2, 2000.
+ */
+
+/**
+ * Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+
+// JDK1.2
+public class InvalidAlgorithmParameterException extends GeneralSecurityException
+{
+  public InvalidAlgorithmParameterException()
+  {
+    super();
+  }
+
+  public InvalidAlgorithmParameterException(String msg)
+  {
+    super(msg);
+  }
+}
diff --git a/libjava/java/security/InvalidKeyException.java b/libjava/java/security/InvalidKeyException.java
new file mode 100644 (file)
index 0000000..3a9a69a
--- /dev/null
@@ -0,0 +1,32 @@
+/* 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 1, 2000.
+ */
+
+/**
+ * Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+
+public class InvalidKeyException extends KeyException
+{
+  public InvalidKeyException()
+  {
+    super();
+  }
+
+  public InvalidKeyException(String msg)
+  {
+    super(msg);
+  }
+}
diff --git a/libjava/java/security/InvalidParameterException.java b/libjava/java/security/InvalidParameterException.java
new file mode 100644 (file)
index 0000000..5ece012
--- /dev/null
@@ -0,0 +1,32 @@
+/* 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 1, 2000.
+ */
+
+/**
+ * Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+
+public class InvalidParameterException extends IllegalArgumentException
+{
+  public InvalidParameterException()
+  {
+    super();
+  }
+
+  public InvalidParameterException(String msg)
+  {
+    super(msg);
+  }
+}
diff --git a/libjava/java/security/Key.java b/libjava/java/security/Key.java
new file mode 100644 (file)
index 0000000..4bf32c5
--- /dev/null
@@ -0,0 +1,29 @@
+/* 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;
+import java.io.Serializable;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 1, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+public interface Key extends Serializable
+{
+  // FIXME: need to set this at some point when serialization is implemented.
+  public static final long serialVersionUID;
+
+  public String getAlgorithm();
+  public String getFormat();
+  public byte[] getEncoded();
+}
diff --git a/libjava/java/security/KeyException.java b/libjava/java/security/KeyException.java
new file mode 100644 (file)
index 0000000..634d8ce
--- /dev/null
@@ -0,0 +1,32 @@
+/* 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 1, 2000.
+ */
+
+/**
+ * Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+
+public class KeyException extends GeneralSecurityException
+{
+  public KeyException()
+  {
+    super();
+  }
+
+  public KeyException(String msg)
+  {
+    super(msg);
+  }
+}
diff --git a/libjava/java/security/KeyPair.java b/libjava/java/security/KeyPair.java
new file mode 100644 (file)
index 0000000..b8b2934
--- /dev/null
@@ -0,0 +1,41 @@
+/* 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 Tom Tromey <tromey@cygnus.com>
+ * @date February 9, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+public class KeyPair /* FIXME: implements serializable */
+{
+  public KeyPair (PublicKey publicKey, PrivateKey privateKey)
+  {
+    this.publicKey = publicKey;
+    this.privateKey = privateKey;
+  }
+
+  public PublicKey getPublic ()
+  {
+    return publicKey;
+  }
+
+  public PrivateKey getPrivate ()
+  {
+    return privateKey;
+  }
+
+  // The keys.
+  private PublicKey publicKey;
+  private PrivateKey privateKey;
+}
diff --git a/libjava/java/security/KeyPairGenerator.java b/libjava/java/security/KeyPairGenerator.java
new file mode 100644 (file)
index 0000000..7954c32
--- /dev/null
@@ -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;
+}
diff --git a/libjava/java/security/KeyPairGeneratorSpi.java b/libjava/java/security/KeyPairGeneratorSpi.java
new file mode 100644 (file)
index 0000000..46520b4
--- /dev/null
@@ -0,0 +1,26 @@
+/* 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 7, 2000.
+ */
+
+/**
+ * Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Partially implemented.
+ */
+
+// JDK1.2
+public abstract class KeyPairGeneratorSpi
+{
+  public abstract void initialize(int keysize, SecureRandom random);
+  public abstract KeyPair generateKeyPair();
+}
index 67e4911d1fdbd558ba12d99050a50d08a7878420..04546cdde195b4b4245562d07c13c693c0ed611e 100644 (file)
@@ -1,6 +1,6 @@
 // MessageDigest.java
 
-/* Copyright (C) 1999  Free Software Foundation
+/* Copyright (C) 2000  Free Software Foundation
 
    This file is part of libgcj.
 
@@ -10,55 +10,135 @@ details.  */
 
 package java.security;
 
-// FIXME: This is just a stub for a proper implementation.
+/**
+ * @author Tom Tromey <tromey@cygnus.com>
+ * @date February 11, 2000.
+ */
+
+/**
+ * Written using on-line Java Platform 1.1 API Specification.
+ * Status:  Believed complete and correct to 1.1 spec.
+ * It is known not to comply with the 1.2 spec.
+ */
+
 public abstract class MessageDigest
 {
-    private static final byte[] dummy = { 0 };
-
-    public static MessageDigest getInstance(String algorithm)
-       throws NoSuchAlgorithmException
-    {
-       Object  obj;
-
-       try {
-           obj = Class.forName(algorithm).newInstance();
-       } catch (Exception e) {
-           throw new NoSuchAlgorithmException("algorithm " 
-                                              + algorithm 
-                                              + " not available.");
-       }
-       
-       return (MessageDigest) obj;
-    }
-
-    public void update(byte input)
-    {
-       // FIXME
-    }
-
-    public void update(byte[] input, int offset, int len)
-    {
-       // FIXME
-    }
-
-    public void update(byte[] input)
-    {
-       // FIXME
-    }
-
-    public byte[] digest()
-    {
-       return dummy;
-    }
-
-    public byte[] digest(byte[] input)
-    {
-       update(input);
-       return digest();
-    }
-    
-    public void reset()
-    {
-       // FIXME
-    }
+  protected MessageDigest (String algorithm)
+  {
+    name = algorithm;
+  }
+
+  public static MessageDigest getInstance (String algorithm)
+    throws NoSuchAlgorithmException
+  {
+    String name = "MessageDigest." + algorithm;
+    Provider[] provs = Security.getProviders ();
+    for (int i = 0; i < provs.length; ++i)
+      {
+       String val = provs[i].getProperty (name);
+       if (val != null)
+         {
+           try
+             {
+               return (MessageDigest) Class.forName(val).newInstance ();
+             }
+           catch (Throwable _)
+             {
+               // We just ignore failures.
+             }
+         }
+      }
+
+    throw new NoSuchAlgorithmException (algorithm);
+  }
+
+  public static MessageDigest getInstance (String algorithm, String provider)
+    throws NoSuchAlgorithmException, NoSuchProviderException
+  {
+    String name = "MessageDigest." + algorithm;
+    Provider p = Security.getProvider (provider);
+    if (p == null)
+      throw new NoSuchProviderException (provider);
+    String val = p.getProperty (name);
+    if (val != null)
+      {
+       try
+         {
+           return (MessageDigest) Class.forName(val).newInstance ();
+         }
+       catch (Throwable _)
+         {
+           // Nothing.
+         }
+      }
+
+    throw new NoSuchAlgorithmException (algorithm);
+  }
+
+  public void update (byte input)
+  {
+    engineUpdate (input);
+  }
+
+  public void update (byte[] input, int offset, int len)
+  {
+    engineUpdate (input, offset, len);
+  }
+
+  public void update (byte[] input)
+  {
+    engineUpdate (input, 0, input.length);
+  }
+
+  public byte[] digest ()
+  {
+    return engineDigest ();
+  }
+
+  public byte[] digest (byte[] input)
+  {
+    update (input);
+    return engineDigest ();
+  }
+
+  public String toString ()
+  {
+    // There is no spec for this.
+    return "[MessageDigest: " + name + "]";
+  }
+
+  public static boolean isEqual (byte[] digesta, byte[] digestb)
+  {
+    if (digesta == digestb)
+      return true;
+    if (digesta.length != digestb.length)
+      return false;
+    for (int i = digesta.length - 1; i >= 0; --i)
+      if (digesta[i] != digestb[i])
+       return false;
+    return true;
+  }
+
+  public void reset ()
+  {
+    engineReset ();
+  }
+
+  public final String getAlgorithm ()
+  {
+    return name;
+  }
+
+  protected abstract void engineUpdate (byte input);
+  protected abstract void engineUpdate (byte input[], int offset, int len);
+  protected abstract byte[] engineDigest ();
+  protected abstract void engineReset ();
+
+  public Object clone() throws CloneNotSupportedException
+  {
+    return super.clone ();
+  }
+
+  // Algorithm name.
+  private String name;
 }
diff --git a/libjava/java/security/NoSuchProviderException.java b/libjava/java/security/NoSuchProviderException.java
new file mode 100644 (file)
index 0000000..d7d0c85
--- /dev/null
@@ -0,0 +1,32 @@
+/* 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 4, 2000.
+ */
+
+/**
+ * Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+
+public class NoSuchProviderException extends GeneralSecurityException
+{
+  public NoSuchProviderException()
+  {
+    super();
+  }
+
+  public NoSuchProviderException(String msg)
+  {
+    super(msg);
+  }
+}
diff --git a/libjava/java/security/PrivateKey.java b/libjava/java/security/PrivateKey.java
new file mode 100644 (file)
index 0000000..13b9be3
--- /dev/null
@@ -0,0 +1,24 @@
+/* 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 1, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+public interface PrivateKey extends Key
+{
+  // This interface contains no methods or constants.  It merely serves
+  // to group (and provide type safety for) all private key interfaces.
+}
diff --git a/libjava/java/security/Provider.java b/libjava/java/security/Provider.java
new file mode 100644 (file)
index 0000000..ac2cd78
--- /dev/null
@@ -0,0 +1,53 @@
+/* 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;
+import java.util.Properties;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 7, 2000.
+ */
+
+/**
+ * Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Partially implemented.
+ */
+
+public abstract class Provider extends Properties
+{
+  // FIXME: Check the following property values against specs!
+  protected Provider(String name, double version, String info)
+  {
+    super();
+    put("java.security.Provider.Name", name);
+    put("java.security.Provider.Version", Double.toString(version));
+    put("java.security.Provider.Info", info);
+  }
+
+  public String getName()
+  {
+    return getProperty("java.security.Provider.Name");
+  }
+
+  public double getVersion()
+  {
+    return Double.valueOf(getProperty("java.security.Provider.Version")).doubleValue();
+  }
+
+  public String getInfo()
+  {
+    return getProperty("java.security.Provider.Info");
+  }
+
+  public String toString()
+  {
+    // FIXME: Check this string against the spec.
+    return getName() + " " + getProperty("java.security.Provider.Version");
+  }
+}
diff --git a/libjava/java/security/PublicKey.java b/libjava/java/security/PublicKey.java
new file mode 100644 (file)
index 0000000..5c30c62
--- /dev/null
@@ -0,0 +1,24 @@
+/* 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 1, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+public interface PublicKey extends Key
+{
+  // This interface contains no methods or constants.  It merely serves
+  // to group (and provide type safety for) all private key interfaces.
+}
index 4a0b60b42d23bda91e076ba201c44c2fabe158ae..f49f8ac214c63ce3cbb87200b3bc345f96bd09c0 100644 (file)
@@ -8,6 +8,7 @@ details.  */
 
 package java.security;
 
+// JDK1.2
 public class SecureClassLoader extends ClassLoader 
 {
     public SecureClassLoader ()
diff --git a/libjava/java/security/SecureRandom.java b/libjava/java/security/SecureRandom.java
new file mode 100644 (file)
index 0000000..6f396dc
--- /dev/null
@@ -0,0 +1,25 @@
+/* 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;
+import java.util.Random;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 7, 2000.
+ */
+
+/**
+ * Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Stubbed.
+ */
+
+public class SecureRandom extends Random
+{
+  // FIXME: Stubbed.
+}
diff --git a/libjava/java/security/Security.java b/libjava/java/security/Security.java
new file mode 100644 (file)
index 0000000..87a0088
--- /dev/null
@@ -0,0 +1,107 @@
+/* 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;
+
+import java.util.Enumeration;
+import java.util.Properties;
+import java.util.Vector;
+
+/**
+ * @author Tom Tromey <tromey@cygnus.com>
+ * @date February 8, 2000.
+ */
+
+/**
+ * Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Still missing the deprecated getAlgorithmProperty method.
+ */
+
+public final class Security
+{
+  public static int insertProviderAt (Provider provider, int position)
+  {
+    SecurityManager sm = System.getSecurityManager ();
+    if (sm != null)
+      {
+       // FIXME: need SecurityPermission.
+       // sm.checkSecurityAccess ("insertProvider." + provider.getName ());
+      }
+    if (providers.indexOf (provider) != -1)
+      return -1;
+    if (position > providers.size ())
+      position = providers.size ();
+    providers.insertElementAt (provider, position);
+    return providers.indexOf (provider);
+  }
+
+  public static int addProvider (Provider provider)
+  {
+    return insertProviderAt (provider, providers.size ());
+  }
+
+  public static void removeProvider (String name)
+  {
+    SecurityManager sm = System.getSecurityManager ();
+    if (sm != null)
+      {
+       // FIXME: need SecurityPermission.
+       // sm.checkSecurityAccess ("removeProvider." + name);
+      }
+    Provider p = getProvider (name);
+    if (p != null)
+      providers.removeElement (p);
+  }
+
+  public static Provider[] getProviders ()
+  {
+    Provider[] r = new Provider[providers.size ()];
+    providers.copyInto (r);
+    return r;
+  }
+
+  public static Provider getProvider (String name)
+  {
+    Enumeration e = providers.elements ();
+    while (e.hasMoreElements ())
+      {
+       Provider p = (Provider) e.nextElement ();
+       if (name.equals (p.getName ()))
+         return p;
+      }
+    return null;
+  }
+
+  public static String getProperty (String key)
+  {
+    SecurityManager sm = System.getSecurityManager ();
+    if (sm != null)
+      {
+       // FIXME: need SecurityPermission.
+       // sm.checkSecurityAccess ("getProperty." + key);
+      }
+    return props.getProperty (key);
+  }
+
+  public static void setProperty (String key, String value)
+  {
+    SecurityManager sm = System.getSecurityManager ();
+    if (sm != null)
+      {
+       // FIXME: need SecurityPermission.
+       // sm.checkSecurityAccess ("setProperty." + key);
+      }
+    props.setProperty (key, value);
+  }
+
+  // The providers we list.
+  private static Vector providers = new Vector ();
+
+  // Security propertiesl
+  private static Properties props = new Properties ();
+}
diff --git a/libjava/java/security/Signature.java b/libjava/java/security/Signature.java
new file mode 100644 (file)
index 0000000..760f625
--- /dev/null
@@ -0,0 +1,173 @@
+/* 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 Tom Tromey <tromey@cygnus.com>
+ * @date February 11, 2000.
+ */
+
+/**
+ * Written using on-line Java Platform 1.1 API Specification.
+ * Status:  Believed complete and correct to 1.1 spec.
+ * It is known not to comply with the 1.2 spec.
+ */
+
+public abstract class Signature
+{
+  protected Signature (String name)
+  {
+    state = UNINITIALIZED;
+    this.name = name;
+  }
+
+  public static Signature getInstance (String algorithm)
+    throws NoSuchAlgorithmException
+  {
+    String name = "Signature." + algorithm;
+    Provider[] provs = Security.getProviders ();
+    for (int i = 0; i < provs.length; ++i)
+      {
+       String val = provs[i].getProperty (name);
+       if (val != null)
+         {
+           try
+             {
+               return (Signature) Class.forName(val).newInstance ();
+             }
+           catch (Throwable _)
+             {
+               // We just ignore failures.
+             }
+         }
+      }
+
+    throw new NoSuchAlgorithmException (algorithm);
+  }
+
+  public static Signature getInstance (String algorithm, String provider)
+    throws NoSuchAlgorithmException, NoSuchProviderException
+  {
+    String name = "Signature." + algorithm;
+    Provider p = Security.getProvider (provider);
+    if (p == null)
+      throw new NoSuchProviderException (provider);
+    String val = p.getProperty (name);
+    if (val != null)
+      {
+       try
+         {
+           return (Signature) Class.forName(val).newInstance ();
+         }
+       catch (Throwable _)
+         {
+           // Nothing.
+         }
+      }
+
+    throw new NoSuchAlgorithmException (algorithm);
+  }
+
+  public final void initVerify (PublicKey publicKey)
+    throws InvalidKeyException
+  {
+    engineInitVerify (publicKey);
+  }
+
+  public final void initSign (PrivateKey privateKey)
+    throws InvalidKeyException
+  {
+    engineInitSign (privateKey);
+  }
+
+  public final byte[] sign ()
+    throws SignatureException
+  {
+    return engineSign ();
+  }
+
+  public final boolean verify (byte[] signature)
+    throws SignatureException
+  {
+    return engineVerify (signature);
+  }
+
+  public final void update (byte b)
+    throws SignatureException
+  {
+    engineUpdate (b);
+  }
+
+  public final void update (byte[] data)
+    throws SignatureException
+  {
+    engineUpdate (data, 0, data.length);
+  }
+
+  public final void update (byte[] data, int off, int len)
+    throws SignatureException
+  {
+    engineUpdate (data, off, len);
+  }
+
+  public final String getAlgorithm ()
+  {
+    return name;
+  }
+
+  public String toString ()
+  {
+    // There is no spec for this.  FIXME: this is a bad choice.
+    return name + "; state = " + state;
+  }
+
+  public final void setParameter (String param, Object value)
+    throws InvalidParameterException
+  {
+    engineSetParameter (param, value);
+  }
+
+  public final Object getParameter (String param)
+    throws InvalidParameterException
+  {
+    return engineGetParameter (param);
+  }
+
+  protected abstract void engineInitVerify (PublicKey publicKey)
+    throws InvalidKeyException;
+  protected abstract void engineInitSign (PrivateKey privateKey)
+    throws InvalidKeyException;
+  protected abstract void engineUpdate (byte b)
+    throws SignatureException;
+  protected abstract void engineUpdate (byte[] b, int off, int len)
+    throws SignatureException;
+  protected abstract byte[] engineSign ()
+    throws SignatureException;
+  protected abstract boolean engineVerify (byte[] sigBytes)
+    throws SignatureException;
+  protected abstract void engineSetParameter (String param, Object value)
+    throws InvalidParameterException;
+  protected abstract Object engineGetParameter (String param)
+    throws InvalidParameterException;
+
+  public Object clone() throws CloneNotSupportedException
+  {
+    return super.clone ();
+  }
+
+  protected static final int UNINITIALIZED = 0;
+  protected static final int SIGN          = 2;
+  protected static final int VERIFY        = 3;
+
+  // Current state.
+  protected int state;
+
+  // Name of this object.
+  private String name;
+}
diff --git a/libjava/java/security/SignatureException.java b/libjava/java/security/SignatureException.java
new file mode 100644 (file)
index 0000000..dc1c87a
--- /dev/null
@@ -0,0 +1,32 @@
+/* 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 1, 2000.
+ */
+
+/**
+ * Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+
+public class SignatureException extends GeneralSecurityException
+{
+  public SignatureException()
+  {
+    super();
+  }
+
+  public SignatureException(String msg)
+  {
+    super(msg);
+  }
+}
diff --git a/libjava/java/security/interfaces/DSAKey.java b/libjava/java/security/interfaces/DSAKey.java
new file mode 100644 (file)
index 0000000..3920d7b
--- /dev/null
@@ -0,0 +1,23 @@
+/* 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.interfaces;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 1, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+public interface DSAKey
+{
+  public DSAParams getParams();
+}
diff --git a/libjava/java/security/interfaces/DSAParams.java b/libjava/java/security/interfaces/DSAParams.java
new file mode 100644 (file)
index 0000000..8483bd5
--- /dev/null
@@ -0,0 +1,26 @@
+/* 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.interfaces;
+import java.math.BigInteger;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 1, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+public interface DSAParams
+{
+  public BigInteger getP();
+  public BigInteger getQ();
+  public BigInteger getG();
+}
diff --git a/libjava/java/security/interfaces/DSAPrivateKey.java b/libjava/java/security/interfaces/DSAPrivateKey.java
new file mode 100644 (file)
index 0000000..833ee3a
--- /dev/null
@@ -0,0 +1,27 @@
+/* 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.interfaces;
+import java.security.PrivateKey;
+import java.math.BigInteger;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 1, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+public interface DSAPrivateKey extends DSAKey, PrivateKey
+{
+  public static final long serialVersionUID;
+
+  public BigInteger getX();
+}
diff --git a/libjava/java/security/interfaces/DSAPublicKey.java b/libjava/java/security/interfaces/DSAPublicKey.java
new file mode 100644 (file)
index 0000000..48949de
--- /dev/null
@@ -0,0 +1,27 @@
+/* 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.interfaces;
+import java.security.PublicKey;
+import java.math.BigInteger;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 1, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+public interface DSAPublicKey extends DSAKey, PublicKey
+{
+  public static final long serialVersionUID;
+
+  public BigInteger getY();
+}
diff --git a/libjava/java/security/interfaces/RSAPrivateCrtKey.java b/libjava/java/security/interfaces/RSAPrivateCrtKey.java
new file mode 100644 (file)
index 0000000..cca294a
--- /dev/null
@@ -0,0 +1,30 @@
+/* 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.interfaces;
+import java.math.BigInteger;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 1, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+// JDK1.2
+public interface RSAPrivateCrtKey extends RSAPrivateKey
+{
+  public BigInteger getPublicExponent();
+  public BigInteger getPrimeP();
+  public BigInteger getPrimeQ();
+  public BigInteger getPrimeExponentP();
+  public BigInteger getPrimeExponentQ();
+  public BigInteger getCrtCoefficient();
+}
diff --git a/libjava/java/security/interfaces/RSAPrivateKey.java b/libjava/java/security/interfaces/RSAPrivateKey.java
new file mode 100644 (file)
index 0000000..4c16b05
--- /dev/null
@@ -0,0 +1,27 @@
+/* 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.interfaces;
+import java.security.PrivateKey;
+import java.math.BigInteger;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 1, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+// JDK1.2
+public interface RSAPrivateKey extends PrivateKey
+{
+  public BigInteger getModulus();
+  public BigInteger getPrivateExponent();
+}
diff --git a/libjava/java/security/interfaces/RSAPublicKey.java b/libjava/java/security/interfaces/RSAPublicKey.java
new file mode 100644 (file)
index 0000000..0bee88d
--- /dev/null
@@ -0,0 +1,27 @@
+/* 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.interfaces;
+import java.security.PublicKey;
+import java.math.BigInteger;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 1, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+// JDK1.2
+public interface RSAPublicKey extends PublicKey
+{
+  public BigInteger getModulus();
+  public BigInteger getPublicExponent();
+}
diff --git a/libjava/java/security/spec/AlgorithmParameterSpec.java b/libjava/java/security/spec/AlgorithmParameterSpec.java
new file mode 100644 (file)
index 0000000..5781623
--- /dev/null
@@ -0,0 +1,25 @@
+/* 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.spec;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 1, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+// JDK1.2
+public interface AlgorithmParameterSpec
+{
+  // This interface contains no methods or constants. Its only purpose is
+  // to group (and provide type safety for) all key specifications.
+}
diff --git a/libjava/java/security/spec/InvalidKeySpecException.java b/libjava/java/security/spec/InvalidKeySpecException.java
new file mode 100644 (file)
index 0000000..632fd25
--- /dev/null
@@ -0,0 +1,33 @@
+/* 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.spec;
+import java.security.GeneralSecurityException;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 1, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+
+// JDK1.2
+public class InvalidKeySpecException extends GeneralSecurityException
+{
+  public InvalidKeySpecException()
+  {
+    super();
+  }
+
+  public InvalidKeySpecException(String msg)
+  {
+    super(msg);
+  }
+}
diff --git a/libjava/java/security/spec/InvalidParameterSpecException.java b/libjava/java/security/spec/InvalidParameterSpecException.java
new file mode 100644 (file)
index 0000000..1e2aff5
--- /dev/null
@@ -0,0 +1,33 @@
+/* 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.spec;
+import java.security.GeneralSecurityException;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 1, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+
+// JDK1.2
+public class InvalidParameterSpecException extends GeneralSecurityException
+{
+  public InvalidParameterSpecException()
+  {
+    super();
+  }
+
+  public InvalidParameterSpecException(String msg)
+  {
+    super(msg);
+  }
+}
diff --git a/libjava/java/security/spec/KeySpec.java b/libjava/java/security/spec/KeySpec.java
new file mode 100644 (file)
index 0000000..75e50f9
--- /dev/null
@@ -0,0 +1,25 @@
+/* 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.spec;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 1, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Believed complete and correct.
+ */
+// JDK1.2
+public interface KeySpec
+{
+  // This interface contains no methods or constants. Its only purpose is
+  // to group (and provide type safety for) all key specifications.
+}
diff --git a/libjava/java/security/spec/RSAPrivateCrtKeySpec.java b/libjava/java/security/spec/RSAPrivateCrtKeySpec.java
new file mode 100644 (file)
index 0000000..6a31163
--- /dev/null
@@ -0,0 +1,23 @@
+/* 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.spec;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 7, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Stubbed.
+ */
+// JDK1.2
+public class RSAPrivateCrtKeySpec extends RSAPrivateKeySpec
+{
+}
diff --git a/libjava/java/security/spec/RSAPrivateKeySpec.java b/libjava/java/security/spec/RSAPrivateKeySpec.java
new file mode 100644 (file)
index 0000000..4f38a2d
--- /dev/null
@@ -0,0 +1,23 @@
+/* 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.spec;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 7, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Stubbed.
+ */
+// JDK1.2
+public class RSAPrivateKeySpec implements KeySpec
+{
+}
diff --git a/libjava/java/security/spec/RSAPublicKeySpec.java b/libjava/java/security/spec/RSAPublicKeySpec.java
new file mode 100644 (file)
index 0000000..0bdcd22
--- /dev/null
@@ -0,0 +1,23 @@
+/* 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.spec;
+
+/**
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @date February 10, 2000.
+ */
+
+/* Written using on-line Java Platform 1.2 API Specification.
+ * Status:  Stubbed.
+ */
+// JDK1.2
+public class RSAPublicKeySpec implements KeySpec
+{
+}
This page took 0.486428 seconds and 5 git commands to generate.