summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTarun Gupta <tarun1995gupta@gmail.com>2015-07-17 02:22:32 (GMT)
committerNick Hudson <nick.hudson@isode.com>2015-07-28 13:14:20 (GMT)
commit673655830b0325d964e67fa835ea83f485e9beeb (patch)
tree27e4f8bd20dd9011207641a83212ced393fbada2 /src/com/isode/stroke/tls
parent6f84f6a65b8b80e2f599dff76da0cd13fbead611 (diff)
downloadstroke-673655830b0325d964e67fa835ea83f485e9beeb.zip
stroke-673655830b0325d964e67fa835ea83f485e9beeb.tar.bz2
Complete StreamStack and add tests.
TLSLayer could not be updated because it requires TLS to be ported first. Updates other classes, only for having compatibility with SafeByteArray because of updates in Stream Stack. License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: Tests added for StreamStack and XMPPLayer, which passes. Change-Id: I8707fc1f16d622d2a90f6f39f671b7e7c46aa170
Diffstat (limited to 'src/com/isode/stroke/tls')
-rw-r--r--src/com/isode/stroke/tls/TLSContext.java9
-rw-r--r--src/com/isode/stroke/tls/java/JSSEContext.java15
2 files changed, 13 insertions, 11 deletions
diff --git a/src/com/isode/stroke/tls/TLSContext.java b/src/com/isode/stroke/tls/TLSContext.java
index 738c8b6..3f5e8d7 100644
--- a/src/com/isode/stroke/tls/TLSContext.java
+++ b/src/com/isode/stroke/tls/TLSContext.java
@@ -12,6 +12,7 @@ package com.isode.stroke.tls;
import java.util.List;
import com.isode.stroke.base.ByteArray;
+import com.isode.stroke.base.SafeByteArray;
import com.isode.stroke.signals.Signal;
import com.isode.stroke.signals.Signal1;
@@ -21,8 +22,8 @@ public abstract class TLSContext {
public abstract boolean setClientCertificate(CertificateWithKey cert);
- public abstract void handleDataFromNetwork(ByteArray data);
- public abstract void handleDataFromApplication(ByteArray data);
+ public abstract void handleDataFromNetwork(SafeByteArray data);
+ public abstract void handleDataFromApplication(SafeByteArray data);
/**
* The peer certificate, as presented by the remote entity
@@ -38,8 +39,8 @@ public abstract class TLSContext {
public abstract ByteArray getFinishMessage();
- public Signal1<ByteArray> onDataForNetwork = new Signal1<ByteArray>();
- public Signal1<ByteArray> onDataForApplication = new Signal1<ByteArray>();
+ public Signal1<SafeByteArray> onDataForNetwork = new Signal1<SafeByteArray>();
+ public Signal1<SafeByteArray> onDataForApplication = new Signal1<SafeByteArray>();
public Signal onError = new Signal();
public Signal onConnected = new Signal();
}
diff --git a/src/com/isode/stroke/tls/java/JSSEContext.java b/src/com/isode/stroke/tls/java/JSSEContext.java
index da8316a..17b7d4d 100644
--- a/src/com/isode/stroke/tls/java/JSSEContext.java
+++ b/src/com/isode/stroke/tls/java/JSSEContext.java
@@ -45,6 +45,7 @@ import javax.net.ssl.SSLException;
import javax.net.ssl.X509ExtendedKeyManager;
import com.isode.stroke.base.ByteArray;
+import com.isode.stroke.base.SafeByteArray;
import com.isode.stroke.tls.CAPICertificate;
import com.isode.stroke.tls.Certificate;
import com.isode.stroke.tls.CertificateVerificationError;
@@ -238,7 +239,7 @@ public class JSSEContext extends TLSContext {
int bytesToUnwrap = 0;
int lastConsumed = 0;
HandshakeStatus handshakeStatus = null;
- ByteArray byteArray = null;
+ SafeByteArray byteArray = null;
synchronized(recvMutex) {
try {
@@ -353,7 +354,7 @@ public class JSSEContext extends TLSContext {
byte[] result = new byte[unwrappedReceived.remaining()];
unwrappedReceived.get(result);
unwrappedReceived.compact();
- byteArray = new ByteArray(result);
+ byteArray = new SafeByteArray(result);
}
}
@@ -377,7 +378,7 @@ public class JSSEContext extends TLSContext {
private int wrapAndSendData() {
int bytesSentToSocket = 0;
- ByteArray byteArray = null;
+ SafeByteArray byteArray = null;
SSLEngineResult sslEngineResult = null;
Status status = null;
HandshakeStatus handshakeStatus = null;
@@ -394,7 +395,7 @@ public class JSSEContext extends TLSContext {
if (wrappedToSend.hasRemaining()) {
byte[] b = new byte[(wrappedToSend.remaining())];
wrappedToSend.get(b);
- byteArray = new ByteArray(b);
+ byteArray = new SafeByteArray(b);
}
wrappedToSend.compact();
} /* end synchronized */
@@ -480,7 +481,7 @@ public class JSSEContext extends TLSContext {
if (wrappedToSend.hasRemaining()) {
byte[] b = new byte[(wrappedToSend.remaining())];
wrappedToSend.get(b);
- byteArray = new ByteArray(b);
+ byteArray = new SafeByteArray(b);
}
wrappedToSend.compact();
break;
@@ -917,7 +918,7 @@ public class JSSEContext extends TLSContext {
}
@Override
- public void handleDataFromNetwork(ByteArray data) {
+ public void handleDataFromNetwork(SafeByteArray data) {
if (hasError()) {
/* We have previously seen, and reported, an error. Emit again */
onError.emit();
@@ -995,7 +996,7 @@ public class JSSEContext extends TLSContext {
}
@Override
- public void handleDataFromApplication(ByteArray data) {
+ public void handleDataFromApplication(SafeByteArray data) {
if (hasError()) {
/* We have previously seen, and reported, an error. Emit again */
onError.emit();