Index: tigervnc-1.8.0/java/com/tigervnc/rfb/CSecurityTLS.java =================================================================== --- tigervnc-1.8.0.orig/java/com/tigervnc/rfb/CSecurityTLS.java +++ tigervnc-1.8.0/java/com/tigervnc/rfb/CSecurityTLS.java @@ -64,6 +64,9 @@ public class CSecurityTLS extends CSecur public static StringParameter X509CRL = new StringParameter("X509CRL", "X509 CRL file", "", Configuration.ConfigurationObject.ConfViewer); + public static StringParameter x509autoaccept + = new StringParameter("x509autoaccept", + "X509 Certificate SHA-1 fingerprint", "", Configuration.ConfigurationObject.ConfViewer); private void initGlobal() { @@ -82,6 +85,7 @@ public class CSecurityTLS extends CSecur setDefaults(); cafile = X509CA.getData(); crlfile = X509CRL.getData(); + certautoaccept = x509autoaccept.getData(); } public static String getDefaultCA() { @@ -277,6 +281,11 @@ public class CSecurityTLS extends CSecur String thumbprint = DatatypeConverter.printHexBinary(md.digest()); thumbprint = thumbprint.replaceAll("..(?!$)", "$0 "); + + if (certautoaccept != null && thumbprint.equalsIgnoreCase(certautoaccept)) { + return; + } + int ret = JOptionPane.showOptionDialog(null, "This certificate has been signed by an unknown authority\n"+ "\n"+ @@ -466,7 +475,7 @@ public class CSecurityTLS extends CSecur private SSLEngineManager manager; private boolean anon; - private String cafile, crlfile; + private String cafile, crlfile, certautoaccept; private FdInStream is; private FdOutStream os; Index: tigervnc-1.8.0/java/com/tigervnc/vncviewer/VncViewer.java =================================================================== --- tigervnc-1.8.0.orig/java/com/tigervnc/vncviewer/VncViewer.java +++ tigervnc-1.8.0/java/com/tigervnc/vncviewer/VncViewer.java @@ -368,6 +368,8 @@ public class VncViewer extends javax.swi // Called right after zero-arg constructor in applet mode setLookAndFeel(); setBackground(Color.white); + + SecurityClient.setDefaults(); applet = this; vncServerName.put(loadAppletParameters(applet).toCharArray()).flip(); if (embed.getValue()) {