Index: tigervnc-1.6.0/java/com/tigervnc/rfb/CSecurityTLS.java =================================================================== --- tigervnc-1.6.0.orig/java/com/tigervnc/rfb/CSecurityTLS.java +++ tigervnc-1.6.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.6.0/java/com/tigervnc/vncviewer/VncViewer.java =================================================================== --- tigervnc-1.6.0.orig/java/com/tigervnc/vncviewer/VncViewer.java +++ tigervnc-1.6.0/java/com/tigervnc/vncviewer/VncViewer.java @@ -353,6 +353,8 @@ public class VncViewer extends javax.swi parent.setFocusTraversalKeysEnabled(false); setLookAndFeel(); setBackground(Color.white); + + SecurityClient.setDefaults(); } private void getTimestamp() { @@ -374,6 +376,7 @@ public class VncViewer extends javax.swi if (embed.getValue() && nViewers == 0) { alwaysShowServerDialog.setParam(false); Configuration.global().readAppletParams(this); + Configuration.viewer().readAppletParams(this); fullScreen.setParam(false); scalingFactor.setParam("100"); String host = getCodeBase().getHost();