diff options
| author | Mark Wielaard <mark@gcc.gnu.org> | 2006-08-14 23:12:35 +0000 |
|---|---|---|
| committer | Mark Wielaard <mark@gcc.gnu.org> | 2006-08-14 23:12:35 +0000 |
| commit | ac1ed908de999523efc36f38e69bca1aadfe0808 (patch) | |
| tree | 97037d2c09c8384d80531f67ec36a01205df6bdb /libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKey.java | |
| parent | abab460491408e05ea93fb85e1975296a87df504 (diff) | |
| download | gcc-ac1ed908de999523efc36f38e69bca1aadfe0808.tar.gz | |
Imported GNU Classpath 0.92
2006-08-14 Mark Wielaard <mark@klomp.org>
Imported GNU Classpath 0.92
* HACKING: Add more importing hints. Update automake version
requirement.
* configure.ac (gconf-peer): New enable AC argument.
Add --disable-gconf-peer and --enable-default-preferences-peer
to classpath configure when gconf is disabled.
* scripts/makemake.tcl: Set gnu/java/util/prefs/gconf and
gnu/java/awt/dnd/peer/gtk to bc. Classify
gnu/java/security/Configuration.java as generated source file.
* gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java,
gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java,
gnu/java/lang/management/VMClassLoadingMXBeanImpl.java,
gnu/java/lang/management/VMRuntimeMXBeanImpl.java,
gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java,
gnu/java/lang/management/VMThreadMXBeanImpl.java,
gnu/java/lang/management/VMMemoryMXBeanImpl.java,
gnu/java/lang/management/VMCompilationMXBeanImpl.java: New VM stub
classes.
* java/lang/management/VMManagementFactory.java: Likewise.
* java/net/VMURLConnection.java: Likewise.
* gnu/java/nio/VMChannel.java: Likewise.
* java/lang/Thread.java (getState): Add stub implementation.
* java/lang/Class.java (isEnum): Likewise.
* java/lang/Class.h (isEnum): Likewise.
* gnu/awt/xlib/XToolkit.java (getClasspathTextLayoutPeer): Removed.
* javax/naming/spi/NamingManager.java: New override for StackWalker
functionality.
* configure, sources.am, Makefile.in, gcj/Makefile.in,
include/Makefile.in, testsuite/Makefile.in: Regenerated.
From-SVN: r116139
Diffstat (limited to 'libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKey.java')
| -rw-r--r-- | libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKey.java | 106 |
1 files changed, 48 insertions, 58 deletions
diff --git a/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKey.java b/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKey.java index f1e42d93a3e..1066830c322 100644 --- a/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKey.java +++ b/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKey.java @@ -39,55 +39,50 @@ exception statement from your version. */ package gnu.javax.crypto.key.dh; import gnu.java.security.Registry; +import gnu.java.security.action.GetPropertyAction; import gnu.java.security.util.FormatUtil; import java.math.BigInteger; +import java.security.AccessController; import java.security.Key; import javax.crypto.interfaces.DHKey; import javax.crypto.spec.DHParameterSpec; /** - * <p>A base asbtract class for both public and private Diffie-Hellman keys. It - * encapsulates the two DH numbers: <code>p</code>, and <code>g</code>.</p> - * - * <p>According to the JDK, cryptographic <i>Keys</i> all have a <i>format</i>. + * A base asbtract class for both public and private Diffie-Hellman keys. It + * encapsulates the two DH numbers: <code>p</code>, and <code>g</code>. + * <p> + * According to the JDK, cryptographic <i>Keys</i> all have a <i>format</i>. * The format used in this implementation is called <i>Raw</i>, and basically * consists of the raw byte sequences of algorithm parameters. The exact order - * of the byte sequences and the implementation details are given in each of - * the relevant <code>getEncoded()</code> methods of each of the private and - * public keys.</p> - * - * <p>Reference:</p> + * of the byte sequences and the implementation details are given in each of the + * relevant <code>getEncoded()</code> methods of each of the private and + * public keys. + * <p> + * Reference: * <ol> - * <li><a href="http://www.ietf.org/rfc/rfc2631.txt">Diffie-Hellman Key - * Agreement Method</a><br> - * Eric Rescorla.</li> + * <li><a href="http://www.ietf.org/rfc/rfc2631.txt">Diffie-Hellman Key + * Agreement Method</a><br> + * Eric Rescorla.</li> * </ol> */ -public abstract class GnuDHKey implements Key, DHKey +public abstract class GnuDHKey + implements Key, DHKey { - - // Constants and variables - // ------------------------------------------------------------------------- - /** The public prime q. A prime divisor of p-1. */ protected BigInteger q; - /** The public prime p. */ protected BigInteger p; - /** The generator g. */ protected BigInteger g; - /** - * Identifier of the default encoding format to use when externalizing the - * key material. + * Identifier of the default encoding format to use when externalizing the key + * material. */ protected final int defaultFormat; - - // Constructor(s) - // ------------------------------------------------------------------------- + /** String representation of this key. Cached for speed. */ + private transient String str; /** * Trivial protected constructor. @@ -109,28 +104,13 @@ public abstract class GnuDHKey implements Key, DHKey this.g = g; } - // Class methods - // ------------------------------------------------------------------------- - - // Instance methods - // ------------------------------------------------------------------------- - - // javax.crypto.interfaces.DHKey interface implementation ------------------ - public DHParameterSpec getParams() { if (q == null) - { - return new DHParameterSpec(p, g); - } - else - { - return new DHParameterSpec(p, g, q.bitLength()); - } + return new DHParameterSpec(p, g); + return new DHParameterSpec(p, g, q.bitLength()); } - // java.security.Key interface implementation ------------------------------ - public String getAlgorithm() { return Registry.DH_KPG; @@ -147,38 +127,48 @@ public abstract class GnuDHKey implements Key, DHKey return FormatUtil.getEncodingShortName(defaultFormat); } - // Other instance methods -------------------------------------------------- - public BigInteger getQ() { return q; } /** - * <p>Returns <code>true</code> if the designated object is an instance of - * {@link DHKey} and has the same Diffie-Hellman parameter values as this - * one.</p> - * + * Returns <code>true</code> if the designated object is an instance of + * {@link DHKey} and has the same Diffie-Hellman parameter values as this one. + * * @param obj the other non-null DH key to compare to. - * @return <code>true</code> if the designated object is of the same type and - * value as this one. + * @return <code>true</code> if the designated object is of the same type + * and value as this one. */ public boolean equals(Object obj) { if (obj == null) - { - return false; - } - if (!(obj instanceof DHKey)) - { - return false; - } + return false; + if (! (obj instanceof DHKey)) + return false; DHKey that = (DHKey) obj; return p.equals(that.getParams().getP()) && g.equals(that.getParams().getG()); } - // abstract methods to be implemented by subclasses ------------------------ + public String toString() + { + if (str == null) + { + String ls = (String) AccessController.doPrivileged + (new GetPropertyAction("line.separator")); + StringBuilder sb = new StringBuilder(ls) + .append("defaultFormat=").append(defaultFormat).append(",").append(ls); + if (q == null) + sb.append("q=null,"); + else + sb.append("q=0x").append(q.toString(16)).append(","); + sb.append(ls).append("p=0x").append(p.toString(16)).append(",").append(ls) + .append("g=0x").append(g.toString(16)); + str = sb.toString(); + } + return str; + } public abstract byte[] getEncoded(int format); } |
