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
This commit is contained in:
Mark Wielaard 2006-08-14 23:12:35 +00:00
parent abab460491
commit ac1ed908de
1294 changed files with 99479 additions and 35933 deletions

View file

@ -49,46 +49,34 @@ import java.util.Iterator;
import java.util.Map;
/**
* <p>A basic abstract class to facilitate implementing block cipher modes of
* operations.</p>
* A basic abstract class to facilitate implementing block cipher modes of
* operations.
*/
public abstract class BaseMode implements IMode
public abstract class BaseMode
implements IMode
{
// Constants and variables
// -------------------------------------------------------------------------
/** The canonical name prefix of this mode. */
protected String name;
/** The state indicator of this instance. */
protected int state;
/** The underlying block cipher implementation. */
protected IBlockCipher cipher;
/** The block size, in bytes, to operate the underlying block cipher in. */
protected int cipherBlockSize;
/** The block size, in bytes, in which to operate the mode instance. */
protected int modeBlockSize;
/** The initialisation vector value. */
protected byte[] iv;
/** The instance lock. */
protected Object lock = new Object();
// Constructor(s)
// -------------------------------------------------------------------------
/**
* <p>Trivial constructor for use by concrete subclasses.</p>
*
* Trivial constructor for use by concrete subclasses.
*
* @param name the canonical name prefix of this mode.
* @param underlyingCipher the implementation of the underlying cipher.
* @param cipherBlockSize the block size, in bytes, in which to operate the
* underlying cipher.
* underlying cipher.
*/
protected BaseMode(String name, IBlockCipher underlyingCipher,
int cipherBlockSize)
@ -101,14 +89,6 @@ public abstract class BaseMode implements IMode
state = -1;
}
// Class methods
// -------------------------------------------------------------------------
// Instance methods
// -------------------------------------------------------------------------
// IMode interface implementation ------------------------------------------
public void update(byte[] in, int inOffset, byte[] out, int outOffset)
throws IllegalStateException
{
@ -128,25 +108,23 @@ public abstract class BaseMode implements IMode
}
}
// IBlockCipher interface implementation -----------------------------------
public String name()
{
return new StringBuffer().append(name).append('(').append(cipher.name()).append(
')').toString();
return new StringBuffer(name).append('(').append(cipher.name()).append(')')
.toString();
}
/**
* <p>Returns the default value, in bytes, of the mode's block size. This
* value is part of the construction arguments passed to the Factory methods
* in {@link ModeFactory}. Unless changed by an invocation of any of the
* Returns the default value, in bytes, of the mode's block size. This value
* is part of the construction arguments passed to the Factory methods in
* {@link ModeFactory}. Unless changed by an invocation of any of the
* <code>init()</code> methods, a <i>Mode</i> instance would operate with
* the same block size as its underlying block cipher. As mentioned earlier,
* the block size of the underlying block cipher itself is specified in one
* of the method(s) available in the factory class.</p>
*
* the block size of the underlying block cipher itself is specified in one of
* the method(s) available in the factory class.
*
* @return the default value, in bytes, of the mode's block size.
* @see gnu.crypto.mode.ModeFactory
* @see ModeFactory
*/
public int defaultBlockSize()
{
@ -154,9 +132,9 @@ public abstract class BaseMode implements IMode
}
/**
* <p>Returns the default value, in bytes, of the underlying block cipher
* key size.</p>
*
* Returns the default value, in bytes, of the underlying block cipher key
* size.
*
* @return the default value, in bytes, of the underlying cipher's key size.
*/
public int defaultKeySize()
@ -165,29 +143,28 @@ public abstract class BaseMode implements IMode
}
/**
* <p>Returns an {@link Iterator} over the supported block sizes. Each
* element returned by this object is an {@link Integer}.</p>
*
* <p>The default behaviour is to return an iterator with just one value,
* which is that currently configured for the underlying block cipher.
* Concrete implementations may override this behaviour to signal their
* ability to support other values.</p>
*
* Returns an {@link Iterator} over the supported block sizes. Each element
* returned by this object is an {@link Integer}.
* <p>
* The default behaviour is to return an iterator with just one value, which
* is that currently configured for the underlying block cipher. Concrete
* implementations may override this behaviour to signal their ability to
* support other values.
*
* @return an {@link Iterator} over the supported block sizes.
*/
public Iterator blockSizes()
{
ArrayList al = new ArrayList();
al.add(new Integer(cipherBlockSize));
al.add(Integer.valueOf(cipherBlockSize));
return Collections.unmodifiableList(al).iterator();
}
/**
* <p>Returns an {@link Iterator} over the supported underlying block cipher
* key sizes. Each element returned by this object is an instance of
* {@link Integer}.</p>
*
* Returns an {@link Iterator} over the supported underlying block cipher key
* sizes. Each element returned by this object is an instance of
* {@link Integer}.
*
* @return an {@link Iterator} over the supported key sizes.
*/
public Iterator keySizes()
@ -201,10 +178,7 @@ public abstract class BaseMode implements IMode
synchronized (lock)
{
if (state != -1)
{
throw new IllegalStateException();
}
throw new IllegalStateException();
Integer want = (Integer) attributes.get(STATE);
if (want != null)
{
@ -220,20 +194,13 @@ public abstract class BaseMode implements IMode
throw new IllegalArgumentException();
}
}
Integer bs = (Integer) attributes.get(MODE_BLOCK_SIZE);
modeBlockSize = (bs == null ? cipherBlockSize : bs.intValue());
byte[] iv = (byte[]) attributes.get(IV);
if (iv != null)
{
this.iv = (byte[]) iv.clone();
}
this.iv = (byte[]) iv.clone();
else
{
this.iv = new byte[modeBlockSize];
}
this.iv = new byte[modeBlockSize];
cipher.init(attributes);
setup();
}
@ -242,9 +209,7 @@ public abstract class BaseMode implements IMode
public int currentBlockSize()
{
if (state == -1)
{
throw new IllegalStateException();
}
throw new IllegalStateException();
return modeBlockSize;
}
@ -255,7 +220,6 @@ public abstract class BaseMode implements IMode
state = -1;
iv = null;
cipher.reset();
teardown();
}
}
@ -268,19 +232,12 @@ public abstract class BaseMode implements IMode
{
ks = ((Integer) kit.next()).intValue();
for (bit = blockSizes(); bit.hasNext();)
{
if (!testSymmetry(ks, ((Integer) bit.next()).intValue()))
{
return false;
}
}
if (! testSymmetry(ks, ((Integer) bit.next()).intValue()))
return false;
}
return true;
}
// methods to be implemented by concrete subclasses ------------------------
public abstract Object clone();
/** The initialisation phase of the concrete mode implementation. */
@ -293,8 +250,6 @@ public abstract class BaseMode implements IMode
public abstract void decryptBlock(byte[] in, int i, byte[] out, int o);
// own methods -------------------------------------------------------------
private boolean testSymmetry(int ks, int bs)
{
try
@ -304,44 +259,30 @@ public abstract class BaseMode implements IMode
byte[] k = new byte[ks];
int i;
for (i = 0; i < ks; i++)
{
k[i] = (byte) i;
}
k[i] = (byte) i;
int blockCount = 5;
int limit = blockCount * bs;
byte[] pt = new byte[limit];
for (i = 0; i < limit; i++)
{
pt[i] = (byte) i;
}
pt[i] = (byte) i;
byte[] ct = new byte[limit];
byte[] cpt = new byte[limit];
Map map = new HashMap();
map.put(KEY_MATERIAL, k);
map.put(CIPHER_BLOCK_SIZE, new Integer(cipherBlockSize));
map.put(STATE, new Integer(ENCRYPTION));
map.put(CIPHER_BLOCK_SIZE, Integer.valueOf(cipherBlockSize));
map.put(STATE, Integer.valueOf(ENCRYPTION));
map.put(IV, iv);
map.put(MODE_BLOCK_SIZE, new Integer(bs));
map.put(MODE_BLOCK_SIZE, Integer.valueOf(bs));
mode.reset();
mode.init(map);
for (i = 0; i < blockCount; i++)
{
mode.update(pt, i * bs, ct, i * bs);
}
mode.update(pt, i * bs, ct, i * bs);
mode.reset();
map.put(STATE, new Integer(DECRYPTION));
map.put(STATE, Integer.valueOf(DECRYPTION));
mode.init(map);
for (i = 0; i < blockCount; i++)
{
mode.update(ct, i * bs, cpt, i * bs);
}
mode.update(ct, i * bs, cpt, i * bs);
return Arrays.equals(pt, cpt);
}
catch (Exception x)
{
@ -349,4 +290,4 @@ public abstract class BaseMode implements IMode
return false;
}
}
}
}