| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <!--NewPage--> |
| <HTML> |
| <HEAD> |
| <!-- Generated by javadoc (build 1.5.0_12) on Tue Apr 01 14:48:49 CEST 2008 --> |
| <TITLE> |
| KnownHosts |
| </TITLE> |
| |
| <META NAME="keywords" CONTENT="com.trilead.ssh2.KnownHosts class"> |
| |
| <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"> |
| |
| <SCRIPT type="text/javascript"> |
| function windowTitle() |
| { |
| parent.document.title="KnownHosts"; |
| } |
| </SCRIPT> |
| <NOSCRIPT> |
| </NOSCRIPT> |
| |
| </HEAD> |
| |
| <BODY BGCOLOR="white" onload="windowTitle();"> |
| |
| |
| <!-- ========= START OF TOP NAVBAR ======= --> |
| <A NAME="navbar_top"><!-- --></A> |
| <A HREF="#skip-navbar_top" title="Skip navigation links"></A> |
| <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> |
| <TR> |
| <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> |
| <A NAME="navbar_top_firstrow"><!-- --></A> |
| <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> |
| <TR ALIGN="center" VALIGN="top"> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../com/trilead/ssh2/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> |
| <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/KnownHosts.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> |
| </TR> |
| </TABLE> |
| </TD> |
| <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> |
| Trilead SSH-2 for Java</EM> |
| </TD> |
| </TR> |
| |
| <TR> |
| <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> |
| <A HREF="../../../com/trilead/ssh2/InteractiveCallback.html" title="interface in com.trilead.ssh2"><B>PREV CLASS</B></A> |
| <A HREF="../../../com/trilead/ssh2/LocalPortForwarder.html" title="class in com.trilead.ssh2"><B>NEXT CLASS</B></A></FONT></TD> |
| <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> |
| <A HREF="../../../index.html?com/trilead/ssh2/KnownHosts.html" target="_top"><B>FRAMES</B></A> |
| <A HREF="KnownHosts.html" target="_top"><B>NO FRAMES</B></A> |
| <SCRIPT type="text/javascript"> |
| <!-- |
| if(window==top) { |
| document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>'); |
| } |
| //--> |
| </SCRIPT> |
| <NOSCRIPT> |
| <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A> |
| </NOSCRIPT> |
| |
| |
| </FONT></TD> |
| </TR> |
| <TR> |
| <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> |
| SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD> |
| <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> |
| DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD> |
| </TR> |
| </TABLE> |
| <A NAME="skip-navbar_top"></A> |
| <!-- ========= END OF TOP NAVBAR ========= --> |
| |
| <HR> |
| <!-- ======== START OF CLASS DATA ======== --> |
| <H2> |
| <FONT SIZE="-1"> |
| com.trilead.ssh2</FONT> |
| <BR> |
| Class KnownHosts</H2> |
| <PRE> |
| java.lang.Object |
| <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.trilead.ssh2.KnownHosts</B> |
| </PRE> |
| <HR> |
| <DL> |
| <DT><PRE>public class <B>KnownHosts</B><DT>extends java.lang.Object</DL> |
| </PRE> |
| |
| <P> |
| The <code>KnownHosts</code> class is a handy tool to verify received server hostkeys |
| based on the information in <code>known_hosts</code> files (the ones used by OpenSSH). |
| <p> |
| It offers basically an in-memory database for known_hosts entries, as well as some |
| helper functions. Entries from a <code>known_hosts</code> file can be loaded at construction time. |
| It is also possible to add more keys later (e.g., one can parse different |
| <code>known_hosts<code> files). |
| <p> |
| It is a thread safe implementation, therefore, you need only to instantiate one |
| <code>KnownHosts</code> for your whole application. |
| <P> |
| |
| <P> |
| <DL> |
| <DT><B>Version:</B></DT> |
| <DD>$Id: KnownHosts.java,v 1.2 2008/04/01 12:38:09 cplattne Exp $</DD> |
| <DT><B>Author:</B></DT> |
| <DD>Christian Plattner, plattner@trilead.com</DD> |
| </DL> |
| <HR> |
| |
| <P> |
| <!-- =========== FIELD SUMMARY =========== --> |
| |
| <A NAME="field_summary"><!-- --></A> |
| <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> |
| <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> |
| <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> |
| <B>Field Summary</B></FONT></TH> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE>static int</CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../com/trilead/ssh2/KnownHosts.html#HOSTKEY_HAS_CHANGED">HOSTKEY_HAS_CHANGED</A></B></CODE> |
| |
| <BR> |
| </TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE>static int</CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../com/trilead/ssh2/KnownHosts.html#HOSTKEY_IS_NEW">HOSTKEY_IS_NEW</A></B></CODE> |
| |
| <BR> |
| </TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE>static int</CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../com/trilead/ssh2/KnownHosts.html#HOSTKEY_IS_OK">HOSTKEY_IS_OK</A></B></CODE> |
| |
| <BR> |
| </TD> |
| </TR> |
| </TABLE> |
| |
| <!-- ======== CONSTRUCTOR SUMMARY ======== --> |
| |
| <A NAME="constructor_summary"><!-- --></A> |
| <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> |
| <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> |
| <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> |
| <B>Constructor Summary</B></FONT></TH> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD><CODE><B><A HREF="../../../com/trilead/ssh2/KnownHosts.html#KnownHosts()">KnownHosts</A></B>()</CODE> |
| |
| <BR> |
| </TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD><CODE><B><A HREF="../../../com/trilead/ssh2/KnownHosts.html#KnownHosts(char[])">KnownHosts</A></B>(char[] knownHostsData)</CODE> |
| |
| <BR> |
| </TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD><CODE><B><A HREF="../../../com/trilead/ssh2/KnownHosts.html#KnownHosts(java.io.File)">KnownHosts</A></B>(java.io.File knownHosts)</CODE> |
| |
| <BR> |
| </TD> |
| </TR> |
| </TABLE> |
| |
| <!-- ========== METHOD SUMMARY =========== --> |
| |
| <A NAME="method_summary"><!-- --></A> |
| <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> |
| <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> |
| <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> |
| <B>Method Summary</B></FONT></TH> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE> void</CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../com/trilead/ssh2/KnownHosts.html#addHostkey(java.lang.String[], java.lang.String, byte[])">addHostkey</A></B>(java.lang.String[] hostnames, |
| java.lang.String serverHostKeyAlgorithm, |
| byte[] serverHostKey)</CODE> |
| |
| <BR> |
| Adds a single public key entry to the database.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE> void</CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../com/trilead/ssh2/KnownHosts.html#addHostkeys(char[])">addHostkeys</A></B>(char[] knownHostsData)</CODE> |
| |
| <BR> |
| Parses the given known_hosts data and adds entries to the database.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE> void</CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../com/trilead/ssh2/KnownHosts.html#addHostkeys(java.io.File)">addHostkeys</A></B>(java.io.File knownHosts)</CODE> |
| |
| <BR> |
| Parses the given known_hosts file and adds entries to the database.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE>static void</CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../com/trilead/ssh2/KnownHosts.html#addHostkeyToFile(java.io.File, java.lang.String[], java.lang.String, byte[])">addHostkeyToFile</A></B>(java.io.File knownHosts, |
| java.lang.String[] hostnames, |
| java.lang.String serverHostKeyAlgorithm, |
| byte[] serverHostKey)</CODE> |
| |
| <BR> |
| Adds a single public key entry to the a known_hosts file.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE>static java.lang.String</CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../com/trilead/ssh2/KnownHosts.html#createBubblebabbleFingerprint(java.lang.String, byte[])">createBubblebabbleFingerprint</A></B>(java.lang.String keytype, |
| byte[] publickey)</CODE> |
| |
| <BR> |
| Convert a ssh2 key-blob into a human readable bubblebabble fingerprint.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE>static java.lang.String</CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../com/trilead/ssh2/KnownHosts.html#createHashedHostname(java.lang.String)">createHashedHostname</A></B>(java.lang.String hostname)</CODE> |
| |
| <BR> |
| Generate the hashed representation of the given hostname.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE>static java.lang.String</CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../com/trilead/ssh2/KnownHosts.html#createHexFingerprint(java.lang.String, byte[])">createHexFingerprint</A></B>(java.lang.String keytype, |
| byte[] publickey)</CODE> |
| |
| <BR> |
| Convert a ssh2 key-blob into a human readable hex fingerprint.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE> java.lang.String[]</CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../com/trilead/ssh2/KnownHosts.html#getPreferredServerHostkeyAlgorithmOrder(java.lang.String)">getPreferredServerHostkeyAlgorithmOrder</A></B>(java.lang.String hostname)</CODE> |
| |
| <BR> |
| Try to find the preferred order of hostkey algorithms for the given hostname.</TD> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> |
| <CODE> int</CODE></FONT></TD> |
| <TD><CODE><B><A HREF="../../../com/trilead/ssh2/KnownHosts.html#verifyHostkey(java.lang.String, java.lang.String, byte[])">verifyHostkey</A></B>(java.lang.String hostname, |
| java.lang.String serverHostKeyAlgorithm, |
| byte[] serverHostKey)</CODE> |
| |
| <BR> |
| Checks the internal hostkey database for the given hostkey.</TD> |
| </TR> |
| </TABLE> |
| <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A> |
| <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> |
| <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"> |
| <TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH> |
| </TR> |
| <TR BGCOLOR="white" CLASS="TableRowColor"> |
| <TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD> |
| </TR> |
| </TABLE> |
| |
| <P> |
| |
| <!-- ============ FIELD DETAIL =========== --> |
| |
| <A NAME="field_detail"><!-- --></A> |
| <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> |
| <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> |
| <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> |
| <B>Field Detail</B></FONT></TH> |
| </TR> |
| </TABLE> |
| |
| <A NAME="HOSTKEY_IS_OK"><!-- --></A><H3> |
| HOSTKEY_IS_OK</H3> |
| <PRE> |
| public static final int <B>HOSTKEY_IS_OK</B></PRE> |
| <DL> |
| <DL> |
| <DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.trilead.ssh2.KnownHosts.HOSTKEY_IS_OK">Constant Field Values</A></DL> |
| </DL> |
| <HR> |
| |
| <A NAME="HOSTKEY_IS_NEW"><!-- --></A><H3> |
| HOSTKEY_IS_NEW</H3> |
| <PRE> |
| public static final int <B>HOSTKEY_IS_NEW</B></PRE> |
| <DL> |
| <DL> |
| <DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.trilead.ssh2.KnownHosts.HOSTKEY_IS_NEW">Constant Field Values</A></DL> |
| </DL> |
| <HR> |
| |
| <A NAME="HOSTKEY_HAS_CHANGED"><!-- --></A><H3> |
| HOSTKEY_HAS_CHANGED</H3> |
| <PRE> |
| public static final int <B>HOSTKEY_HAS_CHANGED</B></PRE> |
| <DL> |
| <DL> |
| <DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.trilead.ssh2.KnownHosts.HOSTKEY_HAS_CHANGED">Constant Field Values</A></DL> |
| </DL> |
| |
| <!-- ========= CONSTRUCTOR DETAIL ======== --> |
| |
| <A NAME="constructor_detail"><!-- --></A> |
| <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> |
| <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> |
| <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> |
| <B>Constructor Detail</B></FONT></TH> |
| </TR> |
| </TABLE> |
| |
| <A NAME="KnownHosts()"><!-- --></A><H3> |
| KnownHosts</H3> |
| <PRE> |
| public <B>KnownHosts</B>()</PRE> |
| <DL> |
| </DL> |
| <HR> |
| |
| <A NAME="KnownHosts(char[])"><!-- --></A><H3> |
| KnownHosts</H3> |
| <PRE> |
| public <B>KnownHosts</B>(char[] knownHostsData) |
| throws java.io.IOException</PRE> |
| <DL> |
| <DL> |
| |
| <DT><B>Throws:</B> |
| <DD><CODE>java.io.IOException</CODE></DL> |
| </DL> |
| <HR> |
| |
| <A NAME="KnownHosts(java.io.File)"><!-- --></A><H3> |
| KnownHosts</H3> |
| <PRE> |
| public <B>KnownHosts</B>(java.io.File knownHosts) |
| throws java.io.IOException</PRE> |
| <DL> |
| <DL> |
| |
| <DT><B>Throws:</B> |
| <DD><CODE>java.io.IOException</CODE></DL> |
| </DL> |
| |
| <!-- ============ METHOD DETAIL ========== --> |
| |
| <A NAME="method_detail"><!-- --></A> |
| <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> |
| <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> |
| <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> |
| <B>Method Detail</B></FONT></TH> |
| </TR> |
| </TABLE> |
| |
| <A NAME="addHostkey(java.lang.String[], java.lang.String, byte[])"><!-- --></A><H3> |
| addHostkey</H3> |
| <PRE> |
| public void <B>addHostkey</B>(java.lang.String[] hostnames, |
| java.lang.String serverHostKeyAlgorithm, |
| byte[] serverHostKey) |
| throws java.io.IOException</PRE> |
| <DL> |
| <DD>Adds a single public key entry to the database. Note: this will NOT add the public key |
| to any physical file (e.g., "~/.ssh/known_hosts") - use <code>addHostkeyToFile()</code> for that purpose. |
| This method is designed to be used in a <A HREF="../../../com/trilead/ssh2/ServerHostKeyVerifier.html" title="interface in com.trilead.ssh2"><CODE>ServerHostKeyVerifier</CODE></A>. |
| <P> |
| <DD><DL> |
| <DT><B>Parameters:</B><DD><CODE>hostnames</CODE> - a list of hostname patterns - at least one most be specified. Check out the |
| OpenSSH sshd man page for a description of the pattern matching algorithm.<DD><CODE>serverHostKeyAlgorithm</CODE> - as passed to the <A HREF="../../../com/trilead/ssh2/ServerHostKeyVerifier.html" title="interface in com.trilead.ssh2"><CODE>ServerHostKeyVerifier</CODE></A>.<DD><CODE>serverHostKey</CODE> - as passed to the <A HREF="../../../com/trilead/ssh2/ServerHostKeyVerifier.html" title="interface in com.trilead.ssh2"><CODE>ServerHostKeyVerifier</CODE></A>. |
| <DT><B>Throws:</B> |
| <DD><CODE>java.io.IOException</CODE></DL> |
| </DD> |
| </DL> |
| <HR> |
| |
| <A NAME="addHostkeys(char[])"><!-- --></A><H3> |
| addHostkeys</H3> |
| <PRE> |
| public void <B>addHostkeys</B>(char[] knownHostsData) |
| throws java.io.IOException</PRE> |
| <DL> |
| <DD>Parses the given known_hosts data and adds entries to the database. |
| <P> |
| <DD><DL> |
| <DT><B>Parameters:</B><DD><CODE>knownHostsData</CODE> - |
| <DT><B>Throws:</B> |
| <DD><CODE>java.io.IOException</CODE></DL> |
| </DD> |
| </DL> |
| <HR> |
| |
| <A NAME="addHostkeys(java.io.File)"><!-- --></A><H3> |
| addHostkeys</H3> |
| <PRE> |
| public void <B>addHostkeys</B>(java.io.File knownHosts) |
| throws java.io.IOException</PRE> |
| <DL> |
| <DD>Parses the given known_hosts file and adds entries to the database. |
| <P> |
| <DD><DL> |
| <DT><B>Parameters:</B><DD><CODE>knownHosts</CODE> - |
| <DT><B>Throws:</B> |
| <DD><CODE>java.io.IOException</CODE></DL> |
| </DD> |
| </DL> |
| <HR> |
| |
| <A NAME="createHashedHostname(java.lang.String)"><!-- --></A><H3> |
| createHashedHostname</H3> |
| <PRE> |
| public static final java.lang.String <B>createHashedHostname</B>(java.lang.String hostname)</PRE> |
| <DL> |
| <DD>Generate the hashed representation of the given hostname. Useful for adding entries |
| with hashed hostnames to a known_hosts file. (see -H option of OpenSSH key-gen). |
| <P> |
| <DD><DL> |
| <DT><B>Parameters:</B><DD><CODE>hostname</CODE> - |
| <DT><B>Returns:</B><DD>the hashed representation, e.g., "|1|cDhrv7zwEUV3k71CEPHnhHZezhA=|Xo+2y6rUXo2OIWRAYhBOIijbJMA="</DL> |
| </DD> |
| </DL> |
| <HR> |
| |
| <A NAME="getPreferredServerHostkeyAlgorithmOrder(java.lang.String)"><!-- --></A><H3> |
| getPreferredServerHostkeyAlgorithmOrder</H3> |
| <PRE> |
| public java.lang.String[] <B>getPreferredServerHostkeyAlgorithmOrder</B>(java.lang.String hostname)</PRE> |
| <DL> |
| <DD>Try to find the preferred order of hostkey algorithms for the given hostname. |
| Based on the type of hostkey that is present in the internal database |
| (i.e., either <code>ssh-rsa</code> or <code>ssh-dss</code>) |
| an ordered list of hostkey algorithms is returned which can be passed |
| to <code>Connection.setServerHostKeyAlgorithms</code>. |
| <P> |
| <DD><DL> |
| <DT><B>Parameters:</B><DD><CODE>hostname</CODE> - |
| <DT><B>Returns:</B><DD><code>null</code> if no key for the given hostname is present or |
| there are keys of multiple types present for the given hostname. Otherwise, |
| an array with hostkey algorithms is returned (i.e., an array of length 2).</DL> |
| </DD> |
| </DL> |
| <HR> |
| |
| <A NAME="verifyHostkey(java.lang.String, java.lang.String, byte[])"><!-- --></A><H3> |
| verifyHostkey</H3> |
| <PRE> |
| public int <B>verifyHostkey</B>(java.lang.String hostname, |
| java.lang.String serverHostKeyAlgorithm, |
| byte[] serverHostKey) |
| throws java.io.IOException</PRE> |
| <DL> |
| <DD>Checks the internal hostkey database for the given hostkey. |
| If no matching key can be found, then the hostname is resolved to an IP address |
| and the search is repeated using that IP address. |
| <P> |
| <DD><DL> |
| <DT><B>Parameters:</B><DD><CODE>hostname</CODE> - the server's hostname, will be matched with all hostname patterns<DD><CODE>serverHostKeyAlgorithm</CODE> - type of hostkey, either <code>ssh-rsa</code> or <code>ssh-dss</code><DD><CODE>serverHostKey</CODE> - the key blob |
| <DT><B>Returns:</B><DD><ul> |
| <li><code>HOSTKEY_IS_OK</code>: the given hostkey matches an entry for the given hostname</li> |
| <li><code>HOSTKEY_IS_NEW</code>: no entries found for this hostname and this type of hostkey</li> |
| <li><code>HOSTKEY_HAS_CHANGED</code>: hostname is known, but with another key of the same type |
| (man-in-the-middle attack?)</li> |
| </ul> |
| <DT><B>Throws:</B> |
| <DD><CODE>java.io.IOException</CODE> - if the supplied key blob cannot be parsed or does not match the given hostkey type.</DL> |
| </DD> |
| </DL> |
| <HR> |
| |
| <A NAME="addHostkeyToFile(java.io.File, java.lang.String[], java.lang.String, byte[])"><!-- --></A><H3> |
| addHostkeyToFile</H3> |
| <PRE> |
| public static final void <B>addHostkeyToFile</B>(java.io.File knownHosts, |
| java.lang.String[] hostnames, |
| java.lang.String serverHostKeyAlgorithm, |
| byte[] serverHostKey) |
| throws java.io.IOException</PRE> |
| <DL> |
| <DD>Adds a single public key entry to the a known_hosts file. |
| This method is designed to be used in a <A HREF="../../../com/trilead/ssh2/ServerHostKeyVerifier.html" title="interface in com.trilead.ssh2"><CODE>ServerHostKeyVerifier</CODE></A>. |
| <P> |
| <DD><DL> |
| <DT><B>Parameters:</B><DD><CODE>knownHosts</CODE> - the file where the publickey entry will be appended.<DD><CODE>hostnames</CODE> - a list of hostname patterns - at least one most be specified. Check out the |
| OpenSSH sshd man page for a description of the pattern matching algorithm.<DD><CODE>serverHostKeyAlgorithm</CODE> - as passed to the <A HREF="../../../com/trilead/ssh2/ServerHostKeyVerifier.html" title="interface in com.trilead.ssh2"><CODE>ServerHostKeyVerifier</CODE></A>.<DD><CODE>serverHostKey</CODE> - as passed to the <A HREF="../../../com/trilead/ssh2/ServerHostKeyVerifier.html" title="interface in com.trilead.ssh2"><CODE>ServerHostKeyVerifier</CODE></A>. |
| <DT><B>Throws:</B> |
| <DD><CODE>java.io.IOException</CODE></DL> |
| </DD> |
| </DL> |
| <HR> |
| |
| <A NAME="createHexFingerprint(java.lang.String, byte[])"><!-- --></A><H3> |
| createHexFingerprint</H3> |
| <PRE> |
| public static final java.lang.String <B>createHexFingerprint</B>(java.lang.String keytype, |
| byte[] publickey)</PRE> |
| <DL> |
| <DD>Convert a ssh2 key-blob into a human readable hex fingerprint. |
| Generated fingerprints are identical to those generated by OpenSSH. |
| <p> |
| Example fingerprint: d0:cb:76:19:99:5a:03:fc:73:10:70:93:f2:44:63:47. |
| <P> |
| <DD><DL> |
| <DT><B>Parameters:</B><DD><CODE>keytype</CODE> - either "ssh-rsa" or "ssh-dss"<DD><CODE>publickey</CODE> - key blob |
| <DT><B>Returns:</B><DD>Hex fingerprint</DL> |
| </DD> |
| </DL> |
| <HR> |
| |
| <A NAME="createBubblebabbleFingerprint(java.lang.String, byte[])"><!-- --></A><H3> |
| createBubblebabbleFingerprint</H3> |
| <PRE> |
| public static final java.lang.String <B>createBubblebabbleFingerprint</B>(java.lang.String keytype, |
| byte[] publickey)</PRE> |
| <DL> |
| <DD>Convert a ssh2 key-blob into a human readable bubblebabble fingerprint. |
| The used bubblebabble algorithm (taken from OpenSSH) generates fingerprints |
| that are easier to remember for humans. |
| <p> |
| Example fingerprint: xofoc-bubuz-cazin-zufyl-pivuk-biduk-tacib-pybur-gonar-hotat-lyxux. |
| <P> |
| <DD><DL> |
| <DT><B>Parameters:</B><DD><CODE>keytype</CODE> - either "ssh-rsa" or "ssh-dss"<DD><CODE>publickey</CODE> - key data |
| <DT><B>Returns:</B><DD>Bubblebabble fingerprint</DL> |
| </DD> |
| </DL> |
| <!-- ========= END OF CLASS DATA ========= --> |
| <HR> |
| |
| |
| <!-- ======= START OF BOTTOM NAVBAR ====== --> |
| <A NAME="navbar_bottom"><!-- --></A> |
| <A HREF="#skip-navbar_bottom" title="Skip navigation links"></A> |
| <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> |
| <TR> |
| <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> |
| <A NAME="navbar_bottom_firstrow"><!-- --></A> |
| <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> |
| <TR ALIGN="center" VALIGN="top"> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../com/trilead/ssh2/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> |
| <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/KnownHosts.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> |
| <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> |
| </TR> |
| </TABLE> |
| </TD> |
| <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> |
| Trilead SSH-2 for Java</EM> |
| </TD> |
| </TR> |
| |
| <TR> |
| <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> |
| <A HREF="../../../com/trilead/ssh2/InteractiveCallback.html" title="interface in com.trilead.ssh2"><B>PREV CLASS</B></A> |
| <A HREF="../../../com/trilead/ssh2/LocalPortForwarder.html" title="class in com.trilead.ssh2"><B>NEXT CLASS</B></A></FONT></TD> |
| <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> |
| <A HREF="../../../index.html?com/trilead/ssh2/KnownHosts.html" target="_top"><B>FRAMES</B></A> |
| <A HREF="KnownHosts.html" target="_top"><B>NO FRAMES</B></A> |
| <SCRIPT type="text/javascript"> |
| <!-- |
| if(window==top) { |
| document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>'); |
| } |
| //--> |
| </SCRIPT> |
| <NOSCRIPT> |
| <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A> |
| </NOSCRIPT> |
| |
| |
| </FONT></TD> |
| </TR> |
| <TR> |
| <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> |
| SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD> |
| <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> |
| DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD> |
| </TR> |
| </TABLE> |
| <A NAME="skip-navbar_bottom"></A> |
| <!-- ======== END OF BOTTOM NAVBAR ======= --> |
| |
| <HR> |
| |
| </BODY> |
| </HTML> |