decl.c (init_decl_processing): Add new class "protectionDomain" field.

gcc/java:

2001-04-25  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* decl.c (init_decl_processing): Add new class "protectionDomain"
	field.
	* class.c (make_class_data): Set initial value for "protectionDomain".

libjava:

2001-04-25  Bryce McKinlay  <bryce@albatross.co.nz>

	java.security merge and ClassLoader compliance fixes.

	* java/lang/Class.h (Class): Include ProtectionDomain.h.
	New protectionDomain field.
	(forName): Add initialize parameter. Fixes declaration to comply with
	JDK spec.
	* java/lang/natClass.cc (forName): Correct declaration of the three-arg
	variant. Honour	"initialize" flag.
	(getProtectionDomain0): New method.
	* java/lang/Class.java: Fix forName() declaration.
	(getPackage): New method based on Classpath implementation.
	(getProtectionDomain0): New native method decl.
	(getProtectionDomain): New method.
	* java/lang/ClassLoader.java (getParent): Now final.
	(definedPackages): New field.
	(getPackage): New.
	(defineClass): New variant with protectionDomain argument.
	(definePackage): New.
	(getPackages): New.
	(findSystemClass): Now final.
	(getSystemResourceAsStream): Remove redundant "final" modifier.
	(getSystemResource): Remove redundant "final" modifier.
	(getResources): Now final.
	(protectionDomainPermission): New static field.
	(unknownProtectionDomain): Ditto.
	(defaultProtectionDomain): Ditto.
	(getSystemClassLoader): Now non-native.
	* java/util/ResourceBundle.java (tryGetSomeBundle): Use the correct
	arguments for Class.forName().
	* java/lang/Package.java: New file.
	* gnu/gcj/runtime/VMClassLoader.java (getVMClassLoader): Removed.
	(instance): Static initialize singleton.
	(findClass): Override this, not findSystemClass.
	* java/lang/natClassLoader.cc (defineClass0): Set class's
	protectionDomain field as specified.
	(getSystemClassLoader): Removed.
	(findClass): Renamed from findSystemClass. Call the interpreter via
	URLClassLoader.findClass if loading class via dlopen fails.

	* java/security/*.java: java.security import/merge with Classpath.
	* java/security/acl/*.java: Likewise.
	* java/security/interfaces/*.java: Likewise.
	* java/security/spec/*.java: Likewise.
	* java/net/NetPermission.java: Likewise.
	* java/net/SocketPermission.java: Likewise.
	* gnu/java/security/provider/DefaultPolicy.java: Likewise.

	* Makefile.am: Add new classes.
	* Makefile.in: Rebuilt.
	* gcj/javaprims.h: CNI namespace rebuild.

From-SVN: r41543
This commit is contained in:
Bryce McKinlay 2001-04-25 16:45:15 +01:00
parent 744cfa53c3
commit 28f7d9d05a
115 changed files with 11887 additions and 1549 deletions

View file

@ -1,25 +1,41 @@
/* Copyright (C) 2000 Free Software Foundation
/* AlgorithmParameterSpec.java --- Algorithm Parameter Spec Interface
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of libgcj.
This file is part of GNU Classpath.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
package java.security.spec;
/**
* @author Warren Levy <warrenl@cygnus.com>
* @date February 1, 2000.
*/
A transparent interface for Algorithm Parameter Specifications.
It contains no member functions. It is used to group
algorithm parameter classes.
/* Written using on-line Java Platform 1.2 API Specification.
* Status: Believed complete and correct.
*/
// JDK1.2
public interface AlgorithmParameterSpec
@since JDK 1.2
@author Mark Benvenuto
*/
public abstract interface AlgorithmParameterSpec
{
// This interface contains no methods or constants. Its only purpose is
// to group (and provide type safety for) all key specifications.
}

View file

@ -0,0 +1,89 @@
/* DSAParameterSpec.java --- DSA Parameter Specificaton class
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
package java.security.spec;
import java.security.interfaces.DSAParams;
import java.math.BigInteger;
/**
DSA Parameter class Specification. Used to maintain the DSA
Parameters.
@since JDK 1.2
@author Mark Benvenuto
*/
public class DSAParameterSpec extends Object implements AlgorithmParameterSpec, DSAParams
{
private BigInteger p = null;
private BigInteger q = null;
private BigInteger g = null;
/**
Constructs a new DSAParameterSpec with the specified p, q, and g.
@param p the prime
@param q the sub-prime
@param g the base
*/
public DSAParameterSpec(BigInteger p, BigInteger q, BigInteger g)
{
this.p = p;
this.q = q;
this.g = g;
}
/**
Returns p for the DSA algorithm.
@return Returns the requested BigInteger
*/
public BigInteger getP()
{
return this.q;
}
/**
Returns p for the DSA algorithm.
@return Returns the requested BigInteger
*/
public BigInteger getQ()
{
return this.q;
}
/**
Returns g for the DSA algorithm.
@return Returns the requested BigInteger
*/
public BigInteger getG()
{
return this.g;
}
}

View file

@ -0,0 +1,102 @@
/* DSAPrivateKeySpec.java --- DSA Private Key Specificaton class
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
package java.security.spec;
import java.math.BigInteger;
/**
DSA Private Key class Specification. Used to maintain the DSA
Private Keys.
@since JDK 1.2
@author Mark Benvenuto
*/
public class DSAPrivateKeySpec extends Object implements KeySpec
{
private BigInteger x = null;
private BigInteger p = null;
private BigInteger q = null;
private BigInteger g = null;
/**
Constructs a new DSAPrivateKeySpec with the specified x, p, q, and g.
@param x the private key
@param p the prime
@param q the sub-prime
@param g the base
*/
public DSAPrivateKeySpec(BigInteger x, BigInteger p, BigInteger q, BigInteger g)
{
this.x = x;
this.p = p;
this.q = q;
this.g = g;
}
/**
Returns private key x for the DSA algorithm.
@return Returns the requested BigInteger
*/
public BigInteger getX()
{
return this.x;
}
/**
Returns p for the DSA algorithm.
@return Returns the requested BigInteger
*/
public BigInteger getP()
{
return this.q;
}
/**
Returns p for the DSA algorithm.
@return Returns the requested BigInteger
*/
public BigInteger getQ()
{
return this.q;
}
/**
Returns g for the DSA algorithm.
@return Returns the requested BigInteger
*/
public BigInteger getG()
{
return this.g;
}
}

View file

@ -0,0 +1,102 @@
/* DSAPublicKeySpec.java --- DSA Public Key Specificaton class
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
package java.security.spec;
import java.math.BigInteger;
/**
DSA Public Key class Specification. Used to maintain the DSA
Public Keys.
@since JDK 1.2
@author Mark Benvenuto
*/
public class DSAPublicKeySpec extends Object implements KeySpec
{
private BigInteger y = null;
private BigInteger p = null;
private BigInteger q = null;
private BigInteger g = null;
/**
Constructs a new DSAPublicKeySpec with the specified y, p, q, and g.
@param y the public key
@param p the prime
@param q the sub-prime
@param g the base
*/
public DSAPublicKeySpec(BigInteger x, BigInteger p, BigInteger q, BigInteger g)
{
this.y = y;
this.p = p;
this.q = q;
this.g = g;
}
/**
Returns public key y for the DSA algorithm.
@return Returns the requested BigInteger
*/
public BigInteger getY()
{
return this.y;
}
/**
Returns p for the DSA algorithm.
@return Returns the requested BigInteger
*/
public BigInteger getP()
{
return this.q;
}
/**
Returns p for the DSA algorithm.
@return Returns the requested BigInteger
*/
public BigInteger getQ()
{
return this.q;
}
/**
Returns g for the DSA algorithm.
@return Returns the requested BigInteger
*/
public BigInteger getG()
{
return this.g;
}
}

View file

@ -0,0 +1,74 @@
/* EncodedKeySpec.java --- Encoded Key Specificaton class
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
package java.security.spec;
/**
Encoded Key Specification class which is used to store
byte encoded keys.
@since JDK 1.2
@author Mark Benvenuto
*/
public abstract class EncodedKeySpec
{
private byte[] encodedKey;
/**
Constructs a new EncodedKeySpec with the specified encoded key.
@param encodedKey A key to store
*/
public EncodedKeySpec(byte[] encodedKey)
{
this.encodedKey = encodedKey;
}
/**
Gets the encoded key in byte format.
@returns the encoded key
*/
public byte[] getEncoded()
{
return this.encodedKey;
}
/**
Returns the name of the key format used.
This name is the format such as "PKCS#8" or "X.509" which
if it matches a Key class name of the same type can be
transformed using the apporiate KeyFactory.
@return a string representing the name
*/
public abstract String getFormat();
}

View file

@ -1,33 +1,59 @@
/* Copyright (C) 2000 Free Software Foundation
/* InvalidKeySpecException.java --- Invalid KeySpec Exception
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of libgcj.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
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.
*/
Exception for an invalid key specification.
/* Written using on-line Java Platform 1.2 API Specification.
* Status: Believed complete and correct.
*/
@since JDK 1.2
// JDK1.2
public class InvalidKeySpecException extends GeneralSecurityException
@author Mark Benvenuto
*/
public class InvalidKeySpecException extends GeneralSecurityException
{
public InvalidKeySpecException()
/**
Constructs an InvalidKeySpecException without a message string.
*/
public InvalidKeySpecException()
{
super();
}
/**
Constructs an InvalidKeySpecException with a message string.
@param msg A message to display with exception
*/
public InvalidKeySpecException(String msg)
{
super(msg);
super( msg );
}
}

View file

@ -1,33 +1,59 @@
/* Copyright (C) 2000 Free Software Foundation
/* InvalidParameterSpecException.java --- Invalid ParameterSpec Exception
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of libgcj.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
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.
*/
Exception for an invalid algorithm specification.
/* Written using on-line Java Platform 1.2 API Specification.
* Status: Believed complete and correct.
*/
@since JDK 1.2
// JDK1.2
@author Mark Benvenuto
*/
public class InvalidParameterSpecException extends GeneralSecurityException
{
public InvalidParameterSpecException()
/**
Constructs an InvalidParameterSpecException without a message string.
*/
public InvalidParameterSpecException()
{
super();
}
public InvalidParameterSpecException(String msg)
/**
Constructs an InvalidParameterSpecException with a message string.
@param msg A message to display with exception
*/
public InvalidParameterSpecException(String msg)
{
super(msg);
super( msg );
}
}

View file

@ -1,25 +1,41 @@
/* Copyright (C) 2000 Free Software Foundation
/* KeySpec.java --- Key Specification interface
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of libgcj.
This file is part of GNU Classpath.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
package java.security.spec;
/**
* @author Warren Levy <warrenl@cygnus.com>
* @date February 1, 2000.
*/
A transparent interface for Key Specifications.
It contains no member functions. It is used to group
key classes.
/* Written using on-line Java Platform 1.2 API Specification.
* Status: Believed complete and correct.
*/
// JDK1.2
public interface KeySpec
@since JDK 1.2
@author Mark Benvenuto
*/
public abstract interface KeySpec
{
// This interface contains no methods or constants. Its only purpose is
// to group (and provide type safety for) all key specifications.
}

View file

@ -0,0 +1,70 @@
/* PKCS8EncodedKeySpec.java --- PKCS8 Encoded Key Specificaton class
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
package java.security.spec;
/**
PKCS8 Encoded Key Specification class which is used to store
"PKCS#8" byte encoded keys.
@since JDK 1.2
@author Mark Benvenuto
*/
public class PKCS8EncodedKeySpec extends EncodedKeySpec
{
/**
Constructs a new PKCS8EncodedKeySpec with the specified encoded key.
@param encodedKey A key to store, assumed to be "PKCS#8"
*/
public PKCS8EncodedKeySpec(byte[] encodedKey)
{
super( encodedKey );
}
/**
Gets the encoded key in byte format.
@returns the encoded key
*/
public byte[] getEncoded()
{
return super.getEncoded();
}
/**
Returns the name of the key format used which is "PKCS#8"
@return a string representing the name
*/
public String getFormat()
{
return "PKCS#8";
}
}

View file

@ -0,0 +1,86 @@
/* RSAKeyGenParameterSpec.java --- RSA Key Generator Parameter Spec Class
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
package java.security.spec;
import java.math.BigInteger;
/**
This class generates a set of RSA Key parameters used in the generation
of RSA keys.
@since JDK 1.3
@author Mark Benvenuto
*/
public class RSAKeyGenParameterSpec implements AlgorithmParameterSpec
{
private int keysize;
private BigInteger publicExponent;
/**
Public Exponent F0 = 3
*/
public static final BigInteger F0 = new BigInteger("3");
/**
Public Exponent F4 = 3
*/
public static final BigInteger F4 = new BigInteger("65537");
/**
Create a new RSAKeyGenParameterSpec to store the RSA key's keysize
and public exponent
@param keysize Modulus size of key in bits
@param publicExponent - the exponent
*/
public RSAKeyGenParameterSpec(int keysize, BigInteger publicExponent)
{
this.keysize = keysize;
this.publicExponent = publicExponent;
}
/**
Return the size of the key.
@return the size of the key.
*/
public int getKeysize()
{
return keysize;
}
/**
Return the public exponent.
@return the public exponent.
*/
public BigInteger getPublicExponent()
{
return publicExponent;
}
}

View file

@ -1,23 +1,140 @@
/* Copyright (C) 2000 Free Software Foundation
/* RSAPrivateCrtKeySpec.java --- RSA Private Certificate Key Specificaton class
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of libgcj.
This file is part of GNU Classpath.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
package java.security.spec;
import java.math.BigInteger;
/**
* @author Warren Levy <warrenl@cygnus.com>
* @date February 7, 2000.
*/
RSA Private Certificate Key class Specification. Used to
maintain the RSA Private Certificate Keys with the
<I>Chinese Remainder Theorem</I>(CRT) as specified by PKCS#1.
/* Written using on-line Java Platform 1.2 API Specification.
* Status: Stubbed.
*/
// JDK1.2
@since JDK 1.2
@author Mark Benvenuto
*/
public class RSAPrivateCrtKeySpec extends RSAPrivateKeySpec
{
private BigInteger publicExponent;
private BigInteger primeP;
private BigInteger primeQ;
private BigInteger primeExponentP;
private BigInteger primeExponentQ;
private BigInteger crtCoefficient;
/**
Constructs a new RSAPrivateKeySpec with the specified
variables.
@param modulus the RSA modulus
@param publicExponent the public key exponent
@param privateExponent the private key exponent
@param primeP the prime P
@param primeQ the prime Q
@param primeExponentP the prime exponent P
@param primeExponentQ the prime exponent P
@param crtCoefficient the CRT coefficient
*/
public RSAPrivateCrtKeySpec(BigInteger modulus,
BigInteger publicExponent,
BigInteger privateExponent,
BigInteger primeP,
BigInteger primeQ,
BigInteger primeExponentP,
BigInteger primeExponentQ,
BigInteger crtCoefficient)
{
super( modulus, privateExponent);
this.publicExponent = publicExponent;
this.primeP = primeP;
this.primeQ = primeQ;
this.primeExponentP = primeExponentP;
this.primeExponentQ = primeExponentQ;
this.crtCoefficient = crtCoefficient;
}
/**
Gets the RSA public exponent.
@return the RSA public exponent
*/
public BigInteger getPublicExponent()
{
return this.publicExponent;
}
/**
Gets the RSA prime P.
@return the RSA prime P
*/
public BigInteger getPrimeP()
{
return this.primeP;
}
/**
Gets the RSA prime Q.
@return the RSA prime Q
*/
public BigInteger getPrimeQ()
{
return this.primeQ;
}
/**
Gets the RSA prime exponent P.
@return the RSA prime exponent P
*/
public BigInteger getPrimeExponentP()
{
return this.primeExponentP;
}
/**
Gets the RSA prime exponent P.
@return the RSA prime exponent Q
*/
public BigInteger getPrimeExponentQ()
{
return this.primeExponentQ;
}
/**
Gets the RSA CRT coefficient.
@return the RSA CRT coefficient
*/
public BigInteger getCrtCoefficient()
{
return this.crtCoefficient;
}
}

View file

@ -1,23 +1,77 @@
/* Copyright (C) 2000 Free Software Foundation
/* RSAPrivateKeySpec.java --- RSA Private Key Specificaton class
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of libgcj.
This file is part of GNU Classpath.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
package java.security.spec;
import java.math.BigInteger;
/**
* @author Warren Levy <warrenl@cygnus.com>
* @date February 7, 2000.
*/
RSA Private Key class Specification. Used to maintain the RSA
Private Keys.
/* Written using on-line Java Platform 1.2 API Specification.
* Status: Stubbed.
*/
// JDK1.2
@since JDK 1.2
@author Mark Benvenuto
*/
public class RSAPrivateKeySpec implements KeySpec
{
private BigInteger modulus;
private BigInteger privateExponent;
/**
Constructs a new RSAPrivateKeySpec with the specified
modulus and privateExponent.
@param modulus the RSA modulus
@param privateExponent the private key exponent
*/
public RSAPrivateKeySpec(BigInteger modulus, BigInteger privateExponent)
{
this.modulus = modulus;
this.privateExponent = privateExponent;
}
/**
Gets the RSA modulus.
@return the RSA modulus
*/
public BigInteger getModulus()
{
return this.modulus;
}
/**
Gets the RSA private exponent.
@return the RSA private exponent
*/
public BigInteger getPrivateExponent()
{
return this.privateExponent;
}
}

View file

@ -1,23 +1,77 @@
/* Copyright (C) 2000 Free Software Foundation
/* RSAPublicKeySpec.java --- RSA Public Key Specificaton class
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of libgcj.
This file is part of GNU Classpath.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
package java.security.spec;
import java.math.BigInteger;
/**
* @author Warren Levy <warrenl@cygnus.com>
* @date February 10, 2000.
*/
RSA Public Key class Specification. Used to maintain the RSA
Public Keys.
/* Written using on-line Java Platform 1.2 API Specification.
* Status: Stubbed.
*/
// JDK1.2
@since JDK 1.2
@author Mark Benvenuto
*/
public class RSAPublicKeySpec implements KeySpec
{
private BigInteger modulus;
private BigInteger publicExponent;
/**
Constructs a new RSAPublicKeySpec with the specified
modulus and publicExponent.
@param modulus the RSA modulus
@param publicExponent the public key exponent
*/
public RSAPublicKeySpec(BigInteger modulus, BigInteger publicExponent)
{
this.modulus = modulus;
this.publicExponent = publicExponent;
}
/**
Gets the RSA modulus.
@return the RSA modulus
*/
public BigInteger getModulus()
{
return this.modulus;
}
/**
Gets the RSA public exponent.
@return the RSA public exponent
*/
public BigInteger getPublicExponent()
{
return this.publicExponent;
}
}

View file

@ -0,0 +1,71 @@
/* X509EncodedKeySpec.java --- X.509 Encoded Key Specificaton class
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.
As a special exception, if you link this library with other files to
produce an executable, this library does not by itself cause the
resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License. */
package java.security.spec;
/**
X.509 Encoded Key Specification class which is used to store
"X.509" byte encoded keys.
@since JDK 1.2
@author Mark Benvenuto
*/
public class X509EncodedKeySpec extends EncodedKeySpec
{
/**
Constructs a new X509EncodedKeySpec with the specified encoded key.
@param encodedKey A key to store, assumed to be "X.509"
*/
public X509EncodedKeySpec(byte[] encodedKey)
{
super( encodedKey );
}
/**
Gets the encoded key in byte format.
@returns the encoded key
*/
public byte[] getEncoded()
{
return super.getEncoded();
}
/**
Returns the name of the key format used which is "X.509"
@return a string representing the name
*/
public String getFormat()
{
return "X.509";
}
}