summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--crypto/src/crypto/tls/TlsProtocol.cs25
-rw-r--r--crypto/test/src/crypto/tls/test/TlsProtocolNonBlockingTest.cs2
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);
                 }