public static HandshakeMessage fromByteArray(byte[] byteArray, InetSocketAddress peerAddress) { DatagramReader reader = new DatagramReader(byteArray); byte[] verifyData = reader.readBytesLeft(); return new Finished(verifyData, peerAddress); } }
return CCMBlockCipher.decrypt(key, nonce, additionalData, reader.readBytesLeft(), 8);
currentReadState.getEncryptionKey(), new IvParameterSpec(iv)); byte[] plaintext = blockCipher.doFinal(reader.readBytesLeft());
private static ECDHServerKeyExchange readNamedCurve(final DatagramReader reader, final InetSocketAddress peerAddress) throws HandshakeException { int curveId = reader.read(NAMED_CURVE_BITS); int length = reader.read(PUBLIC_LENGTH_BITS); byte[] pointEncoded = reader.readBytes(length); byte[] bytesLeft = reader.readBytesLeft(); // default is SHA256withECDSA SignatureAndHashAlgorithm signAndHash = new SignatureAndHashAlgorithm(SignatureAndHashAlgorithm.HashAlgorithm.SHA256, SignatureAndHashAlgorithm.SignatureAlgorithm.ECDSA); byte[] signatureEncoded = null; if (bytesLeft.length > 0) { DatagramReader remainder = new DatagramReader(bytesLeft); int hashAlgorithm = remainder.read(HASH_ALGORITHM_BITS); int signatureAlgorithm = remainder.read(SIGNATURE_ALGORITHM_BITS); signAndHash = new SignatureAndHashAlgorithm(hashAlgorithm, signatureAlgorithm); length = remainder.read(SIGNATURE_LENGTH_BITS); signatureEncoded = remainder.readBytes(length); } return new ECDHServerKeyExchange(signAndHash, curveId, pointEncoded, signatureEncoded, peerAddress); }
byte[] bytesLeft = reader.readBytesLeft(); HelloExtensions extensions = null; if (bytesLeft.length > 0) {
} else { message.setPayload(reader.readBytesLeft());
compressionMethodsLength); byte[] bytesLeft = reader.readBytesLeft(); if (bytesLeft.length > 0) { result.extensions = HelloExtensions.fromByteArray(bytesLeft, peerAddress);