From 64089cc9f030d8ef7972adb5d117e0b23f47d62b Mon Sep 17 00:00:00 2001 From: mark Date: Thu, 18 May 2006 17:29:21 +0000 Subject: Imported GNU Classpath 0.90 * scripts/makemake.tcl: LocaleData.java moved to gnu/java/locale. * sources.am: Regenerated. * gcj/javaprims.h: Regenerated. * Makefile.in: Regenerated. * gcj/Makefile.in: Regenerated. * include/Makefile.in: Regenerated. * testsuite/Makefile.in: Regenerated. * gnu/java/lang/VMInstrumentationImpl.java: New override. * gnu/java/net/local/LocalSocketImpl.java: Likewise. * gnu/classpath/jdwp/VMMethod.java: Likewise. * gnu/classpath/jdwp/VMVirtualMachine.java: Update to latest interface. * java/lang/Thread.java: Add UncaughtExceptionHandler. * java/lang/reflect/Method.java: Implements GenericDeclaration and isSynthetic(), * java/lang/reflect/Field.java: Likewise. * java/lang/reflect/Constructor.java * java/lang/Class.java: Implements Type, GenericDeclaration, getSimpleName() and getEnclosing*() methods. * java/lang/Class.h: Add new public methods. * java/lang/Math.java: Add signum(), ulp() and log10(). * java/lang/natMath.cc (log10): New function. * java/security/VMSecureRandom.java: New override. * java/util/logging/Logger.java: Updated to latest classpath version. * java/util/logging/LogManager.java: New override. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113887 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/classpath/javax/crypto/CipherSpi.java | 49 ++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) (limited to 'libjava/classpath/javax/crypto/CipherSpi.java') diff --git a/libjava/classpath/javax/crypto/CipherSpi.java b/libjava/classpath/javax/crypto/CipherSpi.java index a51a3aed69b..194c1dabf45 100644 --- a/libjava/classpath/javax/crypto/CipherSpi.java +++ b/libjava/classpath/javax/crypto/CipherSpi.java @@ -1,5 +1,5 @@ /* CipherSpi.java -- The cipher service provider interface. - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,6 +38,8 @@ exception statement from your version. */ package javax.crypto; +import java.nio.ByteBuffer; + import java.security.AlgorithmParameters; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; @@ -178,6 +180,31 @@ public abstract class CipherSpi byte[] output, int outputOffset) throws IllegalBlockSizeException, BadPaddingException, ShortBufferException; + /** + * @since 1.5 + */ + protected int engineDoFinal (ByteBuffer input, ByteBuffer output) + throws BadPaddingException, IllegalBlockSizeException, + ShortBufferException + { + int total = 0; + byte[] inbuf = new byte[256]; + while (input.hasRemaining ()) + { + int in = Math.min (inbuf.length, input.remaining ()); + input.get (inbuf, 0, in); + byte[] outbuf = new byte[engineGetOutputSize (in)]; + int out = 0; + if (input.hasRemaining ()) // i.e., we have more 'update' calls + out = engineUpdate (inbuf, 0, in, outbuf, 0); + else + out = engineDoFinal (inbuf, 0, in, outbuf, 0); + output.put (outbuf, 0, out); + total += out; + } + return total; + } + /** * Returns the block size of the underlying cipher. * @@ -379,6 +406,26 @@ public abstract class CipherSpi byte[] output, int outputOffset) throws ShortBufferException; + /** + * @since 1.5 + */ + protected int engineUpdate (ByteBuffer input, ByteBuffer output) + throws ShortBufferException + { + int total = 0; + byte[] inbuf = new byte[256]; + while (input.hasRemaining ()) + { + int in = Math.min (inbuf.length, input.remaining ()); + input.get (inbuf, 0, in); + byte[] outbuf = new byte[engineGetOutputSize (in)]; + int out = engineUpdate (inbuf, 0, in, outbuf, 0); + output.put (outbuf, 0, out); + total += out; + } + return total; + } + /** *

Wrap a key.

* -- cgit v1.2.3