Skip to content

Commit

Permalink
[java] Add support for java 9+ (removes support for java 7). Fixes Ti…
Browse files Browse the repository at this point in the history
  • Loading branch information
bphinz committed Oct 22, 2019
1 parent 0884d1a commit 91a02fe
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 5 deletions.
2 changes: 1 addition & 1 deletion java/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ find_package(Java)

set(DATA_DIR "${CMAKE_INSTALL_PREFIX}/share")

set(DEFAULT_JAVACFLAGS "-source 7 -target 7 -encoding UTF-8 -Xlint:all,-serial,-cast,-unchecked,-fallthrough,-dep-ann,-deprecation,-rawtypes")
set(DEFAULT_JAVACFLAGS "-source 8 -target 8 -encoding UTF-8 -Xlint:all,-serial,-cast,-unchecked,-fallthrough,-dep-ann,-deprecation,-rawtypes")
set(JAVACFLAGS ${DEFAULT_JAVACFLAGS} CACHE STRING
"Java compiler flags (Default: ${DEFAULT_JAVACFLAGS})")
message(STATUS "Java compiler flags = ${JAVACFLAGS}")
Expand Down
20 changes: 16 additions & 4 deletions java/com/tigervnc/rfb/CSecurityTLS.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Copyright (C) 2005 Martin Koegler
* Copyright (C) 2010 m-privacy GmbH
* Copyright (C) 2010 TigerVNC Team
* Copyright (C) 2011-2017 Brian P. Hinz
* Copyright (C) 2011-2019 Brian P. Hinz
* Copyright (C) 2015 D. R. Commander. All Rights Reserved.
*
* This is free software; you can redistribute it and/or modify
Expand Down Expand Up @@ -41,6 +41,7 @@
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Base64;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
Expand All @@ -50,7 +51,6 @@
import javax.naming.ldap.Rdn;
import javax.net.ssl.HostnameVerifier;
import javax.swing.JOptionPane;
import javax.xml.bind.DatatypeConverter;

import com.tigervnc.rdr.*;
import com.tigervnc.network.*;
Expand Down Expand Up @@ -252,6 +252,18 @@ public void checkClientTrusted(X509Certificate[] chain, String authType)
tm.checkClientTrusted(chain, authType);
}

private final char[] hexCode = "0123456789ABCDEF".toCharArray();

private String printHexBinary(byte[] data)
{
StringBuilder r = new StringBuilder(data.length*2);
for (byte b : data) {
r.append(hexCode[(b >> 4) & 0xF]);
r.append(hexCode[(b & 0xF)]);
}
return r.toString();
}

public void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException
{
Expand Down Expand Up @@ -302,7 +314,7 @@ public void checkServerTrusted(X509Certificate[] chain, String authType)
}
if (certs == null || !certs.contains(cert)) {
byte[] der = cert.getEncoded();
String pem = DatatypeConverter.printBase64Binary(der);
String pem = Base64.getEncoder().encodeToString(der);
pem = pem.replaceAll("(.{64})", "$1\n");
FileWriter fw = null;
try {
Expand Down Expand Up @@ -345,7 +357,7 @@ private String getThumbprint(X509Certificate cert)
try {
MessageDigest md = MessageDigest.getInstance("SHA-1");
md.update(cert.getEncoded());
thumbprint = DatatypeConverter.printHexBinary(md.digest());
thumbprint = printHexBinary(md.digest());
thumbprint = thumbprint.replaceAll("..(?!$)", "$0 ");
} catch(CertificateEncodingException e) {
throw new SystemException(e.getMessage());
Expand Down

0 comments on commit 91a02fe

Please sign in to comment.