Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/humla-spongycastle.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Dettman <peter.dettman@bouncycastle.org>2013-06-23 16:33:25 +0400
committerPeter Dettman <peter.dettman@bouncycastle.org>2013-06-23 16:33:25 +0400
commit3d67aaf2215d06fd9fd61b91cf92d6950f82d770 (patch)
tree12a2ab24c9454074f8a5d27d5ccdb97c3c3a41b0 /core/src/main/java/org/bouncycastle/crypto/tls/RecordStream.java
parent9857222813443ea6ce0197377e54f4fa1efe18ad (diff)
Avoid EOFException in RecordStream.readRecord if input closes between
records (defer to caller to decide).
Diffstat (limited to 'core/src/main/java/org/bouncycastle/crypto/tls/RecordStream.java')
-rw-r--r--core/src/main/java/org/bouncycastle/crypto/tls/RecordStream.java12
1 files changed, 10 insertions, 2 deletions
diff --git a/core/src/main/java/org/bouncycastle/crypto/tls/RecordStream.java b/core/src/main/java/org/bouncycastle/crypto/tls/RecordStream.java
index 684eb1fc..d90c47d2 100644
--- a/core/src/main/java/org/bouncycastle/crypto/tls/RecordStream.java
+++ b/core/src/main/java/org/bouncycastle/crypto/tls/RecordStream.java
@@ -136,10 +136,17 @@ class RecordStream
pendingCipher = null;
}
- public void readRecord()
+ public boolean readRecord()
throws IOException
{
- short type = TlsUtils.readUint8(input);
+// short type = TlsUtils.readUint8(input);
+ int i = input.read();
+ if (i < 0)
+ {
+ return false;
+ }
+
+ short type = (short)i;
// TODO In earlier RFCs, it was "SHOULD ignore"; should this be version-dependent?
/*
@@ -172,6 +179,7 @@ class RecordStream
int length = TlsUtils.readUint16(input);
byte[] plaintext = decodeAndVerify(type, input, length);
handler.processRecord(type, plaintext, 0, plaintext.length);
+ return true;
}
protected byte[] decodeAndVerify(short type, InputStream input, int len)