Skip to content

Commit e21d198

Browse files
committed
Fix receiving encrypted multiframe packets
1 parent bbf807d commit e21d198

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

base/src/main/java/com/smartdevicelink/protocol/SdlProtocolBase.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1399,16 +1399,17 @@ protected void handleFrame(SdlPacket packet) {
13991399
if (packet.getPayload() != null && packet.getDataSize() > 0 && packet.isEncrypted()) {
14001400

14011401
SdlSecurityBase sdlSec = iSdlProtocol.getSdlSecurity();
1402-
byte[] dataToRead = new byte[4096];
1402+
byte[] dataToRead = new byte[TLS_MAX_RECORD_SIZE];
14031403

1404-
Integer iNumBytes = sdlSec.decryptData(packet.getPayload(), dataToRead);
1405-
if ((iNumBytes == null) || (iNumBytes <= 0)) {
1404+
Integer numberOfDecryptedBytes = sdlSec.decryptData(packet.getPayload(), dataToRead);
1405+
if ((numberOfDecryptedBytes == null) || (numberOfDecryptedBytes <= 0)) {
14061406
return;
14071407
}
14081408

1409-
byte[] decryptedData = new byte[iNumBytes];
1410-
System.arraycopy(dataToRead, 0, decryptedData, 0, iNumBytes);
1409+
byte[] decryptedData = new byte[numberOfDecryptedBytes];
1410+
System.arraycopy(dataToRead, 0, decryptedData, 0, numberOfDecryptedBytes);
14111411
packet.payload = decryptedData;
1412+
packet.dataSize = numberOfDecryptedBytes;
14121413
}
14131414

14141415
if (packet.getFrameType().equals(FrameType.Control)) {

0 commit comments

Comments
 (0)