diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2019-05-10 17:14:03 +0700 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2019-05-10 17:14:03 +0700 |
commit | ba90e9a89d92981916e6c34307d4cc08f8063ea8 (patch) | |
tree | 8feb7276ca69578ac82d218b92cc0fa00ab09e09 /crypto | |
parent | Merge branch 'patch-1' of https://github.com/deniszykov/bc-csharp into denisz... (diff) | |
download | BouncyCastle.NET-ed25519-ba90e9a89d92981916e6c34307d4cc08f8063ea8.tar.xz |
Cleanup around OfferInput methods
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/src/crypto/tls/TlsProtocol.cs | 25 | ||||
-rw-r--r-- | crypto/test/src/crypto/tls/test/TlsProtocolNonBlockingTest.cs | 2 |
2 files changed, 16 insertions, 11 deletions
diff --git a/crypto/src/crypto/tls/TlsProtocol.cs b/crypto/src/crypto/tls/TlsProtocol.cs index 103f6af0f..388eb629f 100644 --- a/crypto/src/crypto/tls/TlsProtocol.cs +++ b/crypto/src/crypto/tls/TlsProtocol.cs @@ -729,11 +729,19 @@ namespace Org.BouncyCastle.Crypto.Tls } /** + * Equivalent to <code>OfferInput(input, 0, input.length)</code> + * @see TlsProtocol#OfferInput(byte[], int, int) + * @param input The input buffer to offer + * @throws IOException If an error occurs while decrypting or processing a record + */ + public virtual void OfferInput(byte[] input) + { + OfferInput(input, 0, input.Length); + } + + /** * Offer input from an arbitrary source. Only allowed in non-blocking mode.<br/> * <br/> - * After this method returns, the input buffer is "owned" by this object. Other code - * must not attempt to do anything with it.<br/> - * <br/> * This method will decrypt and process all records that are fully available. * If only part of a record is available, the buffer will be retained until the * remainder of the record is offered.<br/> @@ -744,21 +752,18 @@ namespace Org.BouncyCastle.Crypto.Tls * You should always check to see if there is any available output after calling * this method by calling {@link #getAvailableOutputBytes()}. * @param input The input buffer to offer + * @param inputOff The offset within the input buffer that input begins + * @param inputLen The number of bytes of input being offered * @throws IOException If an error occurs while decrypting or processing a record */ - public virtual void OfferInput(byte[] input) - { - this.OfferInput(input, 0, input.Length); - } - - public virtual void OfferInput(byte[] input, int offset, int length) + public virtual void OfferInput(byte[] input, int inputOff, int inputLen) { if (mBlocking) throw new InvalidOperationException("Cannot use OfferInput() in blocking mode! Use Stream instead."); if (mClosed) throw new IOException("Connection is closed, cannot accept any more input"); - mInputBuffers.Write(input, offset, length); + mInputBuffers.Write(input, inputOff, inputLen); // loop while there are enough bytes to read the length of the next record while (mInputBuffers.Available >= RecordStream.TLS_HEADER_SIZE) diff --git a/crypto/test/src/crypto/tls/test/TlsProtocolNonBlockingTest.cs b/crypto/test/src/crypto/tls/test/TlsProtocolNonBlockingTest.cs index 68f2341ee..219a65af7 100644 --- a/crypto/test/src/crypto/tls/test/TlsProtocolNonBlockingTest.cs +++ b/crypto/test/src/crypto/tls/test/TlsProtocolNonBlockingTest.cs @@ -79,9 +79,9 @@ namespace Org.BouncyCastle.Crypto.Tls.Tests if (fragment) { + byte[] buffer = new byte[1]; while (from.GetAvailableOutputBytes() > 0) { - byte[] buffer = new byte[1]; from.ReadOutput(buffer, 0, 1); to.OfferInput(buffer); } |