Java 类javax.crypto.ShortBufferException 实例源码
项目:keepass2android
文件:JCEBlockCipher.java
protected int engineUpdate(
byte[] input,
int inputOffset,
int inputLen,
byte[] output,
int outputOffset)
throws ShortBufferException
{
try
{
return cipher.processBytes(input, inputOffset, inputLen, output, outputOffset);
}
catch (DataLengthException e)
{
throw new ShortBufferException(e.getMessage());
}
}
项目:keepass2android
文件:NativeAESCipherSpi.java
@Override
protected byte[] engineDoFinal(byte[] input, int inputOffset, int inputLen)
throws IllegalBlockSizeException, BadPaddingException {
int maxSize = engineGetOutputSize(inputLen);
byte[] output = new byte[maxSize];
int finalSize;
try {
finalSize = doFinal(input, inputOffset, inputLen, output, 0);
} catch (ShortBufferException e) {
// This shouldn't be possible rethrow as RuntimeException
throw new RuntimeException("Short buffer exception shouldn't be possible from here.");
}
if ( maxSize == finalSize ) {
return output;
} else {
// TODO: Special doFinal to avoid this copy
byte[] exact = new byte[finalSize];
System.arraycopy(output, 0, exact, 0, finalSize);
return exact;
}
}
项目:hadoop-oss
文件:BBS98BCCipher.java
public int update(ByteBuffer input, ByteBuffer output)
throws ShortBufferException {
//checkState();
Preconditions.checkArgument(input.isDirect() && output.isDirect(),
"Direct buffers are required.");
try {
int outputPosition = output.position();
if (mode == TRANSFORM_MODE)
transform(input, output);
else if (mode == ENCRYPT_MODE)
encrypt(input, output);
else
decrypt(input, output);
return output.position() - outputPosition;
} catch (IOException e) {
e.printStackTrace();
}
return 0;
}
项目:ipack
文件:AsymmetricBlockCipher.java
/**
* Finish a multiple-part encryption or decryption operation (depending on
* how this cipher was initialized).
*
* @param input the input buffer
* @param inOff the offset where the input starts
* @param inLen the input length
* @param output the buffer for the result
* @param outOff the offset where the result is stored
* @return the output length
* @throws ShortBufferException if the output buffer is too small to hold the result.
* @throws IllegalBlockSizeException if the plaintext or ciphertext size is too large.
* @throws BadPaddingException if the ciphertext is invalid.
*/
public final int doFinal(byte[] input, int inOff, int inLen, byte[] output,
int outOff)
throws ShortBufferException, IllegalBlockSizeException,
BadPaddingException
{
if (output.length < getOutputSize(inLen))
{
throw new ShortBufferException("Output buffer too short.");
}
byte[] out = doFinal(input, inOff, inLen);
System.arraycopy(out, 0, output, outOff, out.length);
return out.length;
}
项目:ipack
文件:BaseStreamCipher.java
protected int engineUpdate(
byte[] input,
int inputOffset,
int inputLen,
byte[] output,
int outputOffset)
throws ShortBufferException
{
try
{
cipher.processBytes(input, inputOffset, inputLen, output, outputOffset);
return inputLen;
}
catch (DataLengthException e)
{
throw new ShortBufferException(e.getMessage());
}
}
项目:openjdk-jdk10
文件:CipherNCFuncTest.java
public static void main(String[] args) throws ShortBufferException,
IllegalBlockSizeException, BadPaddingException {
byte[] plainText = new byte[801];
// Initialization
RandomFactory.getRandom().nextBytes(plainText);
Cipher ci = new NullCipher();
// Encryption
byte[] cipherText = new byte[ci.getOutputSize(plainText.length)];
int offset = ci.update(plainText, 0, plainText.length, cipherText, 0);
ci.doFinal(cipherText, offset);
// Decryption
byte[] recoveredText = new byte[ci.getOutputSize(cipherText.length)];
int len = ci.doFinal(cipherText, 0, cipherText.length, recoveredText);
// Comparison
if (len != plainText.length ||
!TestUtilities.equalsBlock(plainText, cipherText, len) ||
!TestUtilities.equalsBlock(plainText, recoveredText, len)) {
throw new RuntimeException(
"Test failed because plainText not equal to cipherText and revoveredText");
}
}
项目:ipack
文件:KeyAgreementSpi.java
protected int engineGenerateSecret(
byte[] sharedSecret,
int offset)
throws IllegalStateException, ShortBufferException
{
byte[] secret = engineGenerateSecret();
if (sharedSecret.length - offset < secret.length)
{
throw new ShortBufferException(kaAlgorithm + " key agreement: need " + secret.length + " bytes");
}
System.arraycopy(secret, 0, sharedSecret, offset, secret.length);
return secret.length;
}
项目:paillier
文件:PaillierCipher.java
/**
* Calls the second overloaded version of the same method.
*/
protected final byte[] engineDoFinal(byte[] input, int inputOffset, int inputLen)
throws IllegalBlockSizeException, BadPaddingException {
int length = 0;
byte[] out = new byte[engineGetOutputSize(inputLen)];
try {
length = engineDoFinal(input, inputOffset, inputLen, out, 0);
} catch (ShortBufferException sbe) {
}
if (length < out.length) {
byte[] smaller = new byte[length];
System.arraycopy(out, 0, smaller, 0, length);
}
return out;
}
项目:paillier
文件:PaillierHomomorphicCipher.java
/**
* Calls encrypt or decrypt based on the state of the cipher. Creates a
* single input array from the supplied input data. And returns number of
* bytes stored in output.
*
* @param input
* - the input buffer
* @param inputOffset
* - the offset in input where the input starts always zero
* @param inputLen
* - the input length
* @param output
* - the buffer for the result
* @param outputOffset
* - the offset in output where the result is stored
* @return the number of bytes stored in output
*/
protected final int engineDoFinal(byte[] input, int inputOffset, int inputLen,
byte[] output, int outputOffset) throws ShortBufferException,
IllegalBlockSizeException, BadPaddingException {
// Create a single array of input data
byte[] totalInput = new byte[inputLen ];
if (inputLen > 0)
System.arraycopy(input, inputOffset, totalInput, 0,
inputLen);
if (stateMode == Cipher.ENCRYPT_MODE)
try {
return encrypt(input, inputOffset, inputLen, output,
outputOffset);
} catch (Exception e) {
e.printStackTrace();
}
else if (stateMode == Cipher.DECRYPT_MODE)
return decrypt(input, inputOffset, inputLen, output,
outputOffset);
return 0;
}
项目:openjdk-jdk10
文件:TestCipher.java
public void runAll() throws InvalidKeyException,
NoSuchPaddingException, InvalidAlgorithmParameterException,
ShortBufferException, IllegalBlockSizeException,
BadPaddingException, NoSuchAlgorithmException,
NoSuchProviderException {
for (String mode : MODES) {
for (String padding : PADDINGS) {
if (!isMultipleKeyLengthSupported()) {
runTest(mode, padding, minKeySize);
} else {
int keySize = maxKeySize;
while (keySize >= minKeySize) {
out.println("With Key Strength: " + keySize);
runTest(mode, padding, keySize);
keySize -= KEYCUTTER;
}
}
}
}
}
项目:OpenJSharp
文件:ISO10126Padding.java
/**
* Adds the given number of padding bytes to the data input.
* The value of the padding bytes is determined
* by the specific padding mechanism that implements this
* interface.
*
* @param in the input buffer with the data to pad
* @param off the offset in <code>in</code> where the padding bytes
* are appended
* @param len the number of padding bytes to add
*
* @exception ShortBufferException if <code>in</code> is too small to hold
* the padding bytes
*/
public void padWithLen(byte[] in, int off, int len)
throws ShortBufferException
{
if (in == null)
return;
if ((off + len) > in.length) {
throw new ShortBufferException("Buffer too small to hold padding");
}
byte paddingOctet = (byte) (len & 0xff);
byte[] padding = new byte[len];
SunJCE.getRandom().nextBytes(padding);
padding[len-1] = paddingOctet;
System.arraycopy(padding, 0, in, off, len);
return;
}
项目:OpenJSharp
文件:PKCS5Padding.java
/**
* Adds the given number of padding bytes to the data input.
* The value of the padding bytes is determined
* by the specific padding mechanism that implements this
* interface.
*
* @param in the input buffer with the data to pad
* @param off the offset in <code>in</code> where the padding bytes
* are appended
* @param len the number of padding bytes to add
*
* @exception ShortBufferException if <code>in</code> is too small to hold
* the padding bytes
*/
public void padWithLen(byte[] in, int off, int len)
throws ShortBufferException
{
if (in == null)
return;
if ((off + len) > in.length) {
throw new ShortBufferException("Buffer too small to hold padding");
}
byte paddingOctet = (byte) (len & 0xff);
for (int i = 0; i < len; i++) {
in[i + off] = paddingOctet;
}
return;
}
项目:aes-gcm-siv
文件:AEAD.java
private byte[] hash(Cipher aes, byte[] h, byte[] nonce, byte[] plaintext, byte[] data) {
final Polyval polyval = new Polyval(h);
polyval.update(data); // hash data with padding
polyval.update(plaintext); // hash plaintext with padding
// hash data and plaintext lengths in bits with padding
final byte[] block = new byte[AES_BLOCK_SIZE];
Bytes.putLong((long) data.length * 8, block, 0);
Bytes.putLong((long) plaintext.length * 8, block, 8);
polyval.updateBlock(block, 0);
polyval.digest(block);
for (int i = 0; i < nonce.length; i++) {
block[i] ^= nonce[i];
}
block[block.length - 1] &= (byte) ~0x80;
// encrypt polyval hash to produce tag
try {
aes.update(block, 0, block.length, block, 0);
} catch (ShortBufferException e) {
throw new IllegalStateException(e);
}
return block;
}
项目:aes-gcm-siv
文件:AEAD.java
private byte[] subKey(int ctrStart, int ctrEnd, byte[] nonce) {
final byte[] counter = new byte[AES_BLOCK_SIZE];
System.arraycopy(nonce, 0, counter, counter.length - nonce.length, nonce.length);
final byte[] key = new byte[(ctrEnd - ctrStart + 1) * 8];
final byte[] block = new byte[AES_BLOCK_SIZE];
for (int i = ctrStart; i <= ctrEnd; i++) {
Bytes.putInt(i, counter);
try {
aes.update(counter, 0, AES_BLOCK_SIZE, block, 0);
} catch (ShortBufferException e) {
throw new IllegalStateException(e);
}
System.arraycopy(block, 0, key, (i - ctrStart) * 8, 8);
}
return key;
}
项目:spring-data-mongodb-encrypt
文件:CryptVault.java
public byte[] encrypt(int version, byte[] data) {
CryptVersion cryptVersion = cryptVersion(version);
try {
int cryptedLength = cryptVersion.encryptedLength.apply(data.length);
byte[] result = new byte[cryptedLength + cryptVersion.saltLength + 1];
result[0] = toSignedByte(version);
byte[] random = urandomBytes(cryptVersion.saltLength);
IvParameterSpec iv_spec = new IvParameterSpec(random);
System.arraycopy(random, 0, result, 1, cryptVersion.saltLength);
Cipher cipher = cipher(cryptVersion.cipher);
cipher.init(Cipher.ENCRYPT_MODE, cryptVersion.key, iv_spec);
int len = cipher.doFinal(data, 0, data.length, result, cryptVersion.saltLength + 1);
if (len < cryptedLength) LOG.info("len was " + len + " instead of " + cryptedLength);
return result;
} catch (ShortBufferException | IllegalBlockSizeException | BadPaddingException | InvalidAlgorithmParameterException | InvalidKeyException e) {
throw new RuntimeException("JCE exception caught while encrypting with version " + version, e);
}
}
项目:jdk8u-jdk
文件:ISO10126Padding.java
/**
* Adds the given number of padding bytes to the data input.
* The value of the padding bytes is determined
* by the specific padding mechanism that implements this
* interface.
*
* @param in the input buffer with the data to pad
* @param off the offset in <code>in</code> where the padding bytes
* are appended
* @param len the number of padding bytes to add
*
* @exception ShortBufferException if <code>in</code> is too small to hold
* the padding bytes
*/
public void padWithLen(byte[] in, int off, int len)
throws ShortBufferException
{
if (in == null)
return;
if ((off + len) > in.length) {
throw new ShortBufferException("Buffer too small to hold padding");
}
byte paddingOctet = (byte) (len & 0xff);
byte[] padding = new byte[len];
SunJCE.getRandom().nextBytes(padding);
padding[len-1] = paddingOctet;
System.arraycopy(padding, 0, in, off, len);
return;
}
项目:jdk8u-jdk
文件:PKCS5Padding.java
/**
* Adds the given number of padding bytes to the data input.
* The value of the padding bytes is determined
* by the specific padding mechanism that implements this
* interface.
*
* @param in the input buffer with the data to pad
* @param off the offset in <code>in</code> where the padding bytes
* are appended
* @param len the number of padding bytes to add
*
* @exception ShortBufferException if <code>in</code> is too small to hold
* the padding bytes
*/
public void padWithLen(byte[] in, int off, int len)
throws ShortBufferException
{
if (in == null)
return;
if ((off + len) > in.length) {
throw new ShortBufferException("Buffer too small to hold padding");
}
byte paddingOctet = (byte) (len & 0xff);
for (int i = 0; i < len; i++) {
in[i + off] = paddingOctet;
}
return;
}
项目:jdk8u-jdk
文件:CipherNCFuncTest.java
public static void main(String[] args) throws ShortBufferException,
IllegalBlockSizeException, BadPaddingException {
byte[] plainText = new byte[801];
// Initialization
RandomFactory.getRandom().nextBytes(plainText);
Cipher ci = new NullCipher();
// Encryption
byte[] cipherText = new byte[ci.getOutputSize(plainText.length)];
int offset = ci.update(plainText, 0, plainText.length, cipherText, 0);
ci.doFinal(cipherText, offset);
// Decryption
byte[] recoveredText = new byte[ci.getOutputSize(cipherText.length)];
int len = ci.doFinal(cipherText, 0, cipherText.length, recoveredText);
// Comparison
if (len != plainText.length ||
!TestUtilities.equalsBlock(plainText, cipherText, len) ||
!TestUtilities.equalsBlock(plainText, recoveredText, len)) {
throw new RuntimeException(
"Test failed because plainText not equal to cipherText and revoveredText");
}
}
项目:keepass2android
文件:WrapCipherSpi.java
protected int engineUpdate(
byte[] input,
int inputOffset,
int inputLen,
byte[] output,
int outputOffset)
throws ShortBufferException
{
throw new RuntimeException("not supported for wrapping");
}
项目:openjdk-jdk10
文件:NativeCipherWithJavaPadding.java
@Override
protected synchronized int engineUpdate(byte[] in, int inOfs, int inLen, byte[] out,
int outOfs) throws ShortBufferException {
if (nc.encrypt) {
lastBlockLen += inLen;
lastBlockLen &= (blockSize - 1);
return nc.engineUpdate(in, inOfs, inLen, out, outOfs);
} else {
byte[] result = padding.bufferBytes(nc.engineUpdate(in, inOfs, inLen));
if (result != null) {
System.arraycopy(result, 0, out, outOfs, result.length);
return result.length;
} else return 0;
}
}
项目:CustomWorldGen
文件:NettyEncryptionTranslator.java
protected ByteBuf decipher(ChannelHandlerContext ctx, ByteBuf buffer) throws ShortBufferException
{
int i = buffer.readableBytes();
byte[] abyte = this.bufToBytes(buffer);
ByteBuf bytebuf = ctx.alloc().heapBuffer(this.cipher.getOutputSize(i));
bytebuf.writerIndex(this.cipher.update(abyte, 0, i, bytebuf.array(), bytebuf.arrayOffset()));
return bytebuf;
}
项目:ipack
文件:AsymmetricHybridCipher.java
/**
* Continue a multiple-part encryption or decryption operation (depending on
* how this cipher was initialized), processing another data part.
*
* @param input the input buffer
* @param inOff the offset where the input starts
* @param inLen the input length
* @param output the output buffer
* @param outOff the offset where the result is stored
* @return the length of the output
* @throws ShortBufferException if the output buffer is too small to hold the result.
*/
public final int update(byte[] input, int inOff, int inLen, byte[] output,
int outOff)
throws ShortBufferException
{
if (output.length < getOutputSize(inLen))
{
throw new ShortBufferException("output");
}
byte[] out = update(input, inOff, inLen);
System.arraycopy(out, 0, output, outOff, out.length);
return out.length;
}
项目:ipack
文件:AsymmetricHybridCipher.java
/**
* Finish a multiple-part encryption or decryption operation (depending on
* how this cipher was initialized).
*
* @param input the input buffer
* @param inOff the offset where the input starts
* @param inLen the input length
* @param output the buffer for the result
* @param outOff the offset where the result is stored
* @return the output length
* @throws ShortBufferException if the output buffer is too small to hold the result.
* @throws BadPaddingException if the ciphertext is invalid.
*/
public final int doFinal(byte[] input, int inOff, int inLen, byte[] output,
int outOff)
throws ShortBufferException, BadPaddingException
{
if (output.length < getOutputSize(inLen))
{
throw new ShortBufferException("Output buffer too short.");
}
byte[] out = doFinal(input, inOff, inLen);
System.arraycopy(out, 0, output, outOff, out.length);
return out.length;
}
项目:ipack
文件:BaseWrapCipher.java
protected int engineDoFinal(
byte[] input,
int inputOffset,
int inputLen,
byte[] output,
int outputOffset)
throws IllegalBlockSizeException, BadPaddingException, ShortBufferException
{
return 0;
}
项目:ipack
文件:IESCipher.java
public int engineDoFinal(
byte[] input,
int inputOffset,
int inputLength,
byte[] output,
int outputOffset)
throws ShortBufferException, IllegalBlockSizeException, BadPaddingException
{
byte[] buf = engineDoFinal(input, inputOffset, inputLength);
System.arraycopy(buf, 0, output, outputOffset, buf.length);
return buf.length;
}
项目:Backmemed
文件:NettyEncryptionTranslator.java
protected void cipher(ByteBuf in, ByteBuf out) throws ShortBufferException
{
int i = in.readableBytes();
byte[] abyte = this.bufToBytes(in);
int j = this.cipher.getOutputSize(i);
if (this.outputBuffer.length < j)
{
this.outputBuffer = new byte[j];
}
out.writeBytes((byte[])this.outputBuffer, 0, this.cipher.update(abyte, 0, i, this.outputBuffer));
}
项目:openjdk-jdk10
文件:NativeCipherWithJavaPadding.java
@Override
protected synchronized int engineDoFinal(byte[] in, int inOfs, int inLen, byte[] out,
int outOfs)
throws ShortBufferException, IllegalBlockSizeException,
BadPaddingException {
int estimatedOutLen = engineGetOutputSize(inLen);
if (out.length - outOfs < estimatedOutLen) {
throw new ShortBufferException("Actual: " + (out.length - outOfs) +
". Estimated Out Length: " + estimatedOutLen);
}
try {
if (nc.encrypt) {
int k = nc.engineUpdate(in, inOfs, inLen, out, outOfs);
lastBlockLen += inLen;
lastBlockLen &= (blockSize - 1);
byte[] padBytes = padding.getPaddingBytes(lastBlockLen);
k += nc.engineDoFinal(padBytes, 0, padBytes.length, out, (outOfs + k));
return k;
} else {
byte[] tempOut = nc.engineDoFinal(in, inOfs, inLen);
int len = padding.unpad(tempOut, out, outOfs);
return len;
}
} finally {
reset();
}
}
项目:Exoplayer2Radio
文件:AesFlushingCipher.java
private int nonFlushingUpdate(byte[] in, int inOffset, int length, byte[] out, int outOffset) {
try {
return cipher.update(in, inOffset, length, out, outOffset);
} catch (ShortBufferException e) {
// Should never happen.
throw new RuntimeException(e);
}
}
项目:paillier
文件:PaillierHomomorphicCipher.java
/**
* Calls the second overloaded version of the same method.
*
* @return the result from encryption or decryption
*/
protected final byte[] engineUpdate(byte[] input, int inputOffset, int inputLen) {
byte[] out = new byte[engineGetOutputSize(inputLen)];
try {
engineUpdate(input, inputOffset, inputLen, out, 0);
} catch (ShortBufferException sbe) {
}
return out;
}
项目:paillier
文件:PaillierHomomorphicCipher.java
/**
* Calls the second overloaded version of the same method,
* to perform the required operation based on the state of the cipher.
*
* @return returns the result from encryption or decryption
*/
protected final byte[] engineDoFinal(byte[] input, int inputOffset, int inputLen)
throws IllegalBlockSizeException, BadPaddingException {
byte[] out = new byte[engineGetOutputSize(inputLen)];
try {
engineDoFinal(input, inputOffset, inputLen, out, 0);
} catch (ShortBufferException sbe) {
}
return out;
}
项目:PeSanKita-lib
文件:AttachmentCipherInputStream.java
private int readFinal(byte[] buffer, int offset, int length) throws IOException {
try {
int flourish = cipher.doFinal(buffer, offset);
done = true;
return flourish;
} catch (IllegalBlockSizeException | BadPaddingException | ShortBufferException e) {
throw new IOException(e);
}
}
项目:DecompiledMinecraft
文件:NettyEncryptionTranslator.java
protected ByteBuf decipher(ChannelHandlerContext ctx, ByteBuf buffer) throws ShortBufferException
{
int i = buffer.readableBytes();
byte[] abyte = this.func_150502_a(buffer);
ByteBuf bytebuf = ctx.alloc().heapBuffer(this.cipher.getOutputSize(i));
bytebuf.writerIndex(this.cipher.update(abyte, 0, i, bytebuf.array(), bytebuf.arrayOffset()));
return bytebuf;
}
项目:openjdk-jdk10
文件:NativeRSACipher.java
private int doFinal(byte[] out, int outOfs, int outLen)
throws ShortBufferException, IllegalBlockSizeException,
BadPaddingException {
if (bufOfs > buffer.length) {
throw new IllegalBlockSizeException(
"Data must not be longer than " +
(buffer.length - (encrypt ? padLen : 0)) + " bytes");
}
if (outLen < outputSize) {
throw new ShortBufferException();
}
try {
long keyValue = key.value();
int k = nativeAtomic(mech.value(), encrypt, keyValue,
key.length(), buffer, bufOfs,
out, outOfs, outLen);
if (k < 0) {
if ( k == -16 || k == -64) {
// -16: CRYPTO_ENCRYPTED_DATA_INVALID
// -64: CKR_ENCRYPTED_DATA_INVALID, see bug 17459266
UcryptoException ue = new UcryptoException(16);
BadPaddingException bpe =
new BadPaddingException("Invalid encryption data");
bpe.initCause(ue);
throw bpe;
}
throw new UcryptoException(-k);
}
return k;
} finally {
bufOfs = 0;
}
}
项目:DecompiledMinecraft
文件:NettyEncryptionTranslator.java
protected ByteBuf decipher(ChannelHandlerContext ctx, ByteBuf buffer) throws ShortBufferException
{
int i = buffer.readableBytes();
byte[] abyte = this.func_150502_a(buffer);
ByteBuf bytebuf = ctx.alloc().heapBuffer(this.cipher.getOutputSize(i));
bytebuf.writerIndex(this.cipher.update(abyte, 0, i, bytebuf.array(), bytebuf.arrayOffset()));
return bytebuf;
}
项目:DecompiledMinecraft
文件:NettyEncryptionTranslator.java
protected void cipher(ByteBuf p_150504_1_, ByteBuf p_150504_2_) throws ShortBufferException
{
int i = p_150504_1_.readableBytes();
byte[] abyte = this.func_150502_a(p_150504_1_);
int j = this.cipher.getOutputSize(i);
if (this.field_150506_c.length < j)
{
this.field_150506_c = new byte[j];
}
p_150504_2_.writeBytes((byte[])this.field_150506_c, 0, this.cipher.update(abyte, 0, i, this.field_150506_c));
}
项目:BaseClient
文件:NettyEncryptionTranslator.java
protected ByteBuf decipher(ChannelHandlerContext ctx, ByteBuf buffer) throws ShortBufferException
{
int i = buffer.readableBytes();
byte[] abyte = this.func_150502_a(buffer);
ByteBuf bytebuf = ctx.alloc().heapBuffer(this.cipher.getOutputSize(i));
bytebuf.writerIndex(this.cipher.update(abyte, 0, i, bytebuf.array(), bytebuf.arrayOffset()));
return bytebuf;
}
项目:BaseClient
文件:NettyEncryptionTranslator.java
protected ByteBuf decipher(ChannelHandlerContext ctx, ByteBuf buffer) throws ShortBufferException
{
int i = buffer.readableBytes();
byte[] abyte = this.func_150502_a(buffer);
ByteBuf bytebuf = ctx.alloc().heapBuffer(this.cipher.getOutputSize(i));
bytebuf.writerIndex(this.cipher.update(abyte, 0, i, bytebuf.array(), bytebuf.arrayOffset()));
return bytebuf;
}
项目:JWaves
文件:Curve25519KeyAgreement.java
public byte[] generateSecret() throws IllegalStateException {
byte[] sharedSecret = new byte[KEY_SIZE];
try {
generateSecret(sharedSecret, 0);
} catch (ShortBufferException e) {
e.printStackTrace();
}
return sharedSecret;
}
项目:JWaves
文件:Curve25519KeyAgreement.java
public int generateSecret(byte[] bytes, int i)
throws IllegalStateException, ShortBufferException {
if (bytes.length - i < KEY_SIZE)
throw new ShortBufferException();
System.arraycopy(mSharedSecret, 0, bytes, i, KEY_SIZE);
return KEY_SIZE;
}
项目:wolfcrypt-jni
文件:BlockCipher.java
public int update(byte[] input, int offset, int length, byte[] output,
int outputOffset) throws ShortBufferException {
willUseKey();
if (outputOffset + length > output.length)
throw new ShortBufferException(
"output buffer is too small to hold the result.");
return native_update(opmode, input, offset, length, output,
outputOffset);
}