summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java')
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java25
1 files changed, 21 insertions, 4 deletions
diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java
index b63fb2f20f2..a62801f9932 100644
--- a/libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java
+++ b/libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java
@@ -768,10 +768,27 @@ public final class SSLEngineImpl extends SSLEngine
}
else
{
- inout = outsec.encrypt(sources, offset, length,
- ContentType.APPLICATION_DATA, sink);
- consumed = inout[0];
- produced = inout[1];
+ if (outsec.needToSplitPayload())
+ {
+ inout = outsec.encrypt(sources, offset, 1,
+ ContentType.APPLICATION_DATA, sink);
+ consumed = inout[0];
+ produced = inout[1];
+ if (length > 1)
+ {
+ inout = outsec.encrypt(sources, offset+1, length-1,
+ ContentType.APPLICATION_DATA, sink);
+ consumed += inout[0];
+ produced += inout[1];
+ }
+ }
+ else
+ {
+ inout = outsec.encrypt(sources, offset, length,
+ ContentType.APPLICATION_DATA, sink);
+ consumed = inout[0];
+ produced = inout[1];
+ }
}
if (Debug.DEBUG)
OpenPOWER on IntegriCloud