Refactor file layout
[openafs-wiki.git] / archive / JavaAdminAPI / Key.html
diff --git a/archive/JavaAdminAPI/Key.html b/archive/JavaAdminAPI/Key.html
new file mode 100644 (file)
index 0000000..af48da5
--- /dev/null
@@ -0,0 +1,1085 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc on Mon Jun 09 15:53:37 PDT 2003 -->
+<TITLE>
+Key (Java AFS API)
+</TITLE>
+<META NAME="keywords" CONTENT="org.openafs.jafs.Key,Key class">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title="Key (Java AFS API)";
+}
+</SCRIPT>
+<BODY BGCOLOR="white" onload="asd();">
+
+<!-- ========== START OF NAVBAR ========== -->
+<A NAME="navbar_top"><!-- --></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Key.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B>JAFS API v2</B></EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../org/openafs/jafs/Group.html"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../org/openafs/jafs/Partition.html"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Key.html" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;
+<SCRIPT>
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
+</NOSCRIPT>
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<!-- =========== END OF NAVBAR =========== -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.openafs.jafs</FONT>
+<BR>
+Class Key</H2>
+<PRE>
+<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html">java.lang.Object</A>
+  |
+  +--<B>org.openafs.jafs.Key</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Comparable.html">Comparable</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/io/Serializable.html">Serializable</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>Key</B><DT>extends <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html">Object</A><DT>implements <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/io/Serializable.html">Serializable</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Comparable.html">Comparable</A></DL>
+
+<P>
+An abstract representation of an AFS key.  It holds information about 
+ the key, such as what its version is.
+ <BR><BR>
+
+ Constructing an instance of a <code>Key</code> does not mean an actual 
+ AFS key is created on a server -- usually a <code>Key</code>
+ object is a representation of an already existing AFS key.  If, 
+ however, the <code>Key</code> is constructed with the version number of a 
+ key that does not exist on the server represented by the provided 
+ <code>Server</code>, a new key with that version number can be
+ created on that server by calling the <A HREF="../../../org/openafs/jafs/Key.html#create(java.lang.String)"><CODE>create(String)</CODE></A> methods If
+ such a key does already exist when this method is called, 
+ an exception will be thrown.<BR><BR>
+
+ <!--Example of how to use class-->
+ The following is a simple example of how to construct and use a 
+ <code>Key</code> object. It obtains the list of <code>Key</code>s from
+ a specified server, and prints the string representation of each key.
+ <PRE>
+ import org.openafs.jafs.Cell;
+ import org.openafs.jafs.AFSException;
+ import org.openafs.jafs.Key;
+ import org.openafs.jafs.Server;
+ ...
+ public class ...
+ {
+   ...
+   private Cell cell;
+   private Server server;
+   ...
+   public static void main(String[] args) throws Exception
+   {
+     String username   = arg[0];
+     String password   = arg[1];
+     String cellName   = arg[2];
+     String serverName = arg[3];
+     token = new Token(username, password, cellName);
+     cell   = new Cell(token);
+     server  = new Server(serverName, cell);
+     System.out.println("Keys in Server " + server.getName() + ":");
+     Key[] keys = server.getKeys();
+     for (int i = 0; i < keys.length; i++) {
+       System.out.println(" -> " + keys[i] );
+     }
+   }
+   ...
+ }
+ </PRE>
+<P>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html" TARGET="org.openafs.jafs.Key">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#cachedInfo">cachedInfo</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#checkSum">checkSum</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#encryptionKey">encryptionKey</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#lastModDate">lastModDate</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#lastModDateDate">lastModDateDate</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#lastModMs">lastModMs</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<A HREF="../../../org/openafs/jafs/Server.html">Server</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#server">server</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#version">version</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#Key(int, org.openafs.jafs.Server)">Key</A></B>(int&nbsp;version,
+    <A HREF="../../../org/openafs/jafs/Server.html">Server</A>&nbsp;server)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new <CODE>Key</CODE> object instance given the version of 
+ the AFS key and the AFS server, represented by <CODE>server</CODE>, 
+ to which it belongs.   </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#Key(int, org.openafs.jafs.Server, boolean)">Key</A></B>(int&nbsp;version,
+    <A HREF="../../../org/openafs/jafs/Server.html">Server</A>&nbsp;server,
+    boolean&nbsp;preloadAllMembers)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new <CODE>Key</CODE> object instance given the version of 
+ the AFS key and the AFS server, represented by <CODE>server</CODE>, 
+ to which it belongs.    </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>(package private)</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#Key(org.openafs.jafs.Server)">Key</A></B>(<A HREF="../../../org/openafs/jafs/Server.html">Server</A>&nbsp;server)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a blank <code>Key</code> given the server to which the key
+ belongs.  </TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#compareTo(org.openafs.jafs.Key)">compareTo</A></B>(<A HREF="../../../org/openafs/jafs/Key.html">Key</A>&nbsp;key)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compares two Key objects respective to their key version and does not
+ factor any other attribute.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#compareTo(java.lang.Object)">compareTo</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html">Object</A>&nbsp;obj)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Comparable interface method.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#create(int, int, int, java.lang.String)">create</A></B>(int&nbsp;cellHandle,
+       int&nbsp;serverHandle,
+       int&nbsp;versionNumber,
+       <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;keyString)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a server key.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#create(java.lang.String)">create</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;keyString)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a key with this <code>Key's</code> version number at the server,
+ using the specified <code>String</code> for the key.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#delete()">delete</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the key with this <code>Key's</code> version number from 
+ the server.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#delete(int, int)">delete</A></B>(int&nbsp;serverHandle,
+       int&nbsp;versionNumber)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delete a server key.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#equals(org.openafs.jafs.Key)">equals</A></B>(<A HREF="../../../org/openafs/jafs/Key.html">Key</A>&nbsp;otherKey)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tests whether two <code>Key</code> objects are equal, based on their 
+ encryption key, version, and associated Server.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#getCheckSum()">getCheckSum</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the check sum of this key.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#getEncryptionKey()">getEncryptionKey</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the encrypted key as a string in octal form. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#getInfo()">getInfo</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a <code>String</code> representation of this <code>Key</code>.  
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#getKeyInfo(int, int, org.openafs.jafs.Key)">getKeyInfo</A></B>(int&nbsp;serverHandle,
+           int&nbsp;version,
+           <A HREF="../../../org/openafs/jafs/Key.html">Key</A>&nbsp;key)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fills in the information fields of the provided <code>Key</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#getLastModDate()">getLastModDate</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the last modification date of this key.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../org/openafs/jafs/Server.html">Server</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#getServer()">getServer</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the server this key is associated with.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#getVersion()">getVersion</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the version of this key in primitive form.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#reclaimKeyMemory()">reclaimKeyMemory</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reclaims all memory being saved by the key portion of the native library.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#refresh()">refresh</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Refreshes the properties of this Key object instance with values from 
+ the AFS key it represents.  </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#refresh(boolean)">refresh</A></B>(boolean&nbsp;all)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Refreshes the properties of this Key object instance with values from 
+ the AFS key it represents.  </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#refreshInfo()">refreshInfo</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Refreshes the information fields of this <code>Key</code> to reflect the 
+ current state of the AFS server key.  </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/Key.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the name of this <CODE>Key</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html">Object</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#clone()">clone</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#finalize()">finalize</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#getClass()">getClass</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#notify()">notify</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#wait()">wait</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#wait(long)">wait</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#wait(long, int)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="server"><!-- --></A><H3>
+server</H3>
+<PRE>
+protected <A HREF="../../../org/openafs/jafs/Server.html">Server</A> <B>server</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="version"><!-- --></A><H3>
+version</H3>
+<PRE>
+protected int <B>version</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="checkSum"><!-- --></A><H3>
+checkSum</H3>
+<PRE>
+protected long <B>checkSum</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="encryptionKey"><!-- --></A><H3>
+encryptionKey</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>encryptionKey</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="lastModDate"><!-- --></A><H3>
+lastModDate</H3>
+<PRE>
+protected int <B>lastModDate</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="lastModMs"><!-- --></A><H3>
+lastModMs</H3>
+<PRE>
+protected int <B>lastModMs</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="lastModDateDate"><!-- --></A><H3>
+lastModDateDate</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A> <B>lastModDateDate</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="cachedInfo"><!-- --></A><H3>
+cachedInfo</H3>
+<PRE>
+protected boolean <B>cachedInfo</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="Key(int, org.openafs.jafs.Server)"><!-- --></A><H3>
+Key</H3>
+<PRE>
+public <B>Key</B>(int&nbsp;version,
+           <A HREF="../../../org/openafs/jafs/Server.html">Server</A>&nbsp;server)
+    throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Constructs a new <CODE>Key</CODE> object instance given the version of 
+ the AFS key and the AFS server, represented by <CODE>server</CODE>, 
+ to which it belongs.   This does not actually
+ create a new AFS key, it just represents one.
+ If <code>version</code> is not an actual AFS key, exceptions
+ will be thrown during subsequent method invocations on this 
+ object, unless the <A HREF="../../../org/openafs/jafs/Key.html#create(java.lang.String)"><CODE>create(String)</CODE></A>
+ method is explicitly called to create it.
+<P>
+<DT><B>Parameters:</B><DD><CODE>version</CODE> - the version of the key to represent<DD><CODE>server</CODE> - the server to which the key belongs.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+<HR>
+
+<A NAME="Key(int, org.openafs.jafs.Server, boolean)"><!-- --></A><H3>
+Key</H3>
+<PRE>
+public <B>Key</B>(int&nbsp;version,
+           <A HREF="../../../org/openafs/jafs/Server.html">Server</A>&nbsp;server,
+           boolean&nbsp;preloadAllMembers)
+    throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Constructs a new <CODE>Key</CODE> object instance given the version of 
+ the AFS key and the AFS server, represented by <CODE>server</CODE>, 
+ to which it belongs.    This does not actually
+ create a new AFS key, it just represents one.
+ If <code>version</code> is not an actual AFS key, exceptions
+ will be thrown during subsequent method invocations on this 
+ object, unless the <A HREF="../../../org/openafs/jafs/Key.html#create(java.lang.String)"><CODE>create(String)</CODE></A>
+ method is explicitly called to create it. Note that if the key does not
+ exist and <code>preloadAllMembers</code> is true, an exception will
+ be thrown. 
+
+ <P> This constructor is ideal for point-in-time representation and 
+ transient applications. It ensures all data member values are set and 
+ available without calling back to the filesystem at the first request 
+ for them.  Use the <A HREF="../../../org/openafs/jafs/Key.html#refresh()"><CODE>refresh()</CODE></A> method to address any coherency 
+ concerns.
+<P>
+<DT><B>Parameters:</B><DD><CODE>version</CODE> - the version of the key to represent<DD><CODE>server</CODE> - the server to which the key belongs.<DD><CODE>preloadAllMembers</CODE> - true will ensure all object members are set 
+                           upon construction; otherwise members will be 
+                           set upon access, which is the default behavior.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Key.html#refresh()"><CODE>refresh()</CODE></A></DL>
+<HR>
+
+<A NAME="Key(org.openafs.jafs.Server)"><!-- --></A><H3>
+Key</H3>
+<PRE>
+<B>Key</B>(<A HREF="../../../org/openafs/jafs/Server.html">Server</A>&nbsp;server)
+throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Creates a blank <code>Key</code> given the server to which the key
+ belongs.  This blank object can then be passed into other methods to 
+ fill out its properties.
+<P>
+<DT><B>Parameters:</B><DD><CODE>server</CODE> - the server to which the key belongs.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="refresh()"><!-- --></A><H3>
+refresh</H3>
+<PRE>
+public void <B>refresh</B>()
+             throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Refreshes the properties of this Key object instance with values from 
+ the AFS key it represents.  All properties that have been initialized 
+ and/or accessed will be renewed according to the values of the AFS key 
+ this Key object instance represents.
+
+ <P>Since in most environments administrative changes can be administered
+ from an AFS command-line program or an alternate GUI application, this
+ method provides a means to refresh the Java object representation and
+ thereby ascertain any possible modifications that may have been made
+ from such alternate administrative programs.  Using this method before
+ an associated instance accessor will ensure the highest level of 
+ representative accuracy, accommodating changes made external to the
+ Java application space.  If administrative changes to the underlying AFS 
+ system are only allowed via this API, then the use of this method is 
+ unnecessary.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="refresh(boolean)"><!-- --></A><H3>
+refresh</H3>
+<PRE>
+protected void <B>refresh</B>(boolean&nbsp;all)
+                throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Refreshes the properties of this Key object instance with values from 
+ the AFS key it represents.  If <CODE>all</CODE> is <CODE>true</CODE> 
+ then <U>all</U> of the properties of this Key object instance will be 
+ set, or renewed, according to the values of the AFS key it represents, 
+ disregarding any previously set properties.
+
+ <P> Thus, if <CODE>all</CODE> is <CODE>false</CODE> then properties that 
+ are currently set will be refreshed and properties that are not set will 
+ remain uninitialized. See <A HREF="../../../org/openafs/jafs/Key.html#refresh()"><CODE>refresh()</CODE></A> for more information.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>all</CODE> - if true set or renew all object properties; otherwise renew 
+ all set properties
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Key.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="refreshInfo()"><!-- --></A><H3>
+refreshInfo</H3>
+<PRE>
+protected void <B>refreshInfo</B>()
+                    throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Refreshes the information fields of this <code>Key</code> to reflect the 
+ current state of the AFS server key.  These inlclude the last 
+ modification time, etc.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(java.lang.String)"><!-- --></A><H3>
+create</H3>
+<PRE>
+public void <B>create</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;keyString)
+            throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Creates a key with this <code>Key's</code> version number at the server,
+ using the specified <code>String</code> for the key.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>keyString</CODE> - the string to use for the encryption key
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="delete()"><!-- --></A><H3>
+delete</H3>
+<PRE>
+public void <B>delete</B>()
+            throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Removes the key with this <code>Key's</code> version number from 
+ the server.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getVersion()"><!-- --></A><H3>
+getVersion</H3>
+<PRE>
+public int <B>getVersion</B>()</PRE>
+<DL>
+<DD>Returns the version of this key in primitive form.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the version number of this key</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getServer()"><!-- --></A><H3>
+getServer</H3>
+<PRE>
+public <A HREF="../../../org/openafs/jafs/Server.html">Server</A> <B>getServer</B>()</PRE>
+<DL>
+<DD>Returns the server this key is associated with.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>this key's server</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEncryptionKey()"><!-- --></A><H3>
+getEncryptionKey</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>getEncryptionKey</B>()
+                        throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Returns the encrypted key as a string in octal form. This is how AFS
+ prints it out on the command line.  An example would be:
+ '\040\205\211\241\345\002\023\211'.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the encrypted key
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCheckSum()"><!-- --></A><H3>
+getCheckSum</H3>
+<PRE>
+public long <B>getCheckSum</B>()
+                 throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Returns the check sum of this key.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the check sum of this key
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLastModDate()"><!-- --></A><H3>
+getLastModDate</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A> <B>getLastModDate</B>()
+                                 throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Returns the last modification date of this key.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the last modification date of this key
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInfo()"><!-- --></A><H3>
+getInfo</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>getInfo</B>()</PRE>
+<DL>
+<DD>Returns a <code>String</code> representation of this <code>Key</code>.  
+ Contains the information fields.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <code>String</code> representation of the <code>Key</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(org.openafs.jafs.Key)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(<A HREF="../../../org/openafs/jafs/Key.html">Key</A>&nbsp;key)</PRE>
+<DL>
+<DD>Compares two Key objects respective to their key version and does not
+ factor any other attribute.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>key</CODE> - The Key object to be compared to this Key instance
+<DT><B>Returns:</B><DD>Zero if the argument is equal to this Key's version, a
+            value less than zero if this Key's version is less than 
+            the argument, or a value greater than zero if this Key's 
+            version is greater than the argument</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html">Object</A>&nbsp;obj)</PRE>
+<DL>
+<DD>Comparable interface method.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compareTo</CODE> in interface <CODE><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Comparable.html">Comparable</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Key.html#compareTo(org.openafs.jafs.Key)"><CODE>compareTo(Key)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(org.openafs.jafs.Key)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public boolean <B>equals</B>(<A HREF="../../../org/openafs/jafs/Key.html">Key</A>&nbsp;otherKey)</PRE>
+<DL>
+<DD>Tests whether two <code>Key</code> objects are equal, based on their 
+ encryption key, version, and associated Server.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>otherKey</CODE> - the Key to test
+<DT><B>Returns:</B><DD>whether the specifed Key is the same as this Key</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>toString</B>()</PRE>
+<DL>
+<DD>Returns the name of this <CODE>Key</CODE>
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#toString()">toString</A></CODE> in class <CODE><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html">Object</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the name of this <CODE>Key</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getKeyInfo(int, int, org.openafs.jafs.Key)"><!-- --></A><H3>
+getKeyInfo</H3>
+<PRE>
+protected static void <B>getKeyInfo</B>(int&nbsp;serverHandle,
+                                 int&nbsp;version,
+                                 <A HREF="../../../org/openafs/jafs/Key.html">Key</A>&nbsp;key)
+                          throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Fills in the information fields of the provided <code>Key</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>serverHandle</CODE> - the bos handle of the server to which the key 
+                        belongs<DD><CODE>version</CODE> - the version of the key for which to get the information<DD><CODE>key</CODE> - the <code>Key</code> object in which to fill in the 
+                information
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Server.html#getBosServerHandle(int, java.lang.String)"><CODE>Server.getBosServerHandle(int, java.lang.String)</CODE></A>, 
+<A HREF="../../../org/openafs/jafs/Server.html"><CODE>Server</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(int, int, int, java.lang.String)"><!-- --></A><H3>
+create</H3>
+<PRE>
+protected static void <B>create</B>(int&nbsp;cellHandle,
+                             int&nbsp;serverHandle,
+                             int&nbsp;versionNumber,
+                             <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;keyString)
+                      throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Create a server key.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cellHandle</CODE> - the handle of the cell to which the server belongs<DD><CODE>serverHandle</CODE> - the bos handle of the server to which the key will 
+                      belong<DD><CODE>versionNumber</CODE> - the version number of the key to create (0 to 255)<DD><CODE>keyString</CODE> - the <code>String</code> version of the key that will
+                      be encrypted
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Cell.html#getCellHandle()"><CODE>Cell.getCellHandle()</CODE></A>, 
+<A HREF="../../../org/openafs/jafs/Server.html#getBosServerHandle(int, java.lang.String)"><CODE>Server.getBosServerHandle(int, java.lang.String)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="delete(int, int)"><!-- --></A><H3>
+delete</H3>
+<PRE>
+protected static void <B>delete</B>(int&nbsp;serverHandle,
+                             int&nbsp;versionNumber)
+                      throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Delete a server key.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>serverHandle</CODE> - the bos handle of the server to which the key belongs<DD><CODE>versionNumber</CODE> - the version number of the key to remove (0 to 255)
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Server.html#getBosServerHandle(int, java.lang.String)"><CODE>Server.getBosServerHandle(int, java.lang.String)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reclaimKeyMemory()"><!-- --></A><H3>
+reclaimKeyMemory</H3>
+<PRE>
+protected static void <B>reclaimKeyMemory</B>()</PRE>
+<DL>
+<DD>Reclaims all memory being saved by the key portion of the native library.
+ This method should be called when no more <code>Key</code> objects are 
+ expected to be
+ used.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+<!-- ========== START OF NAVBAR ========== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Key.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B>JAFS API v2</B></EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../org/openafs/jafs/Group.html"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../org/openafs/jafs/Partition.html"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Key.html" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;
+<SCRIPT>
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
+</NOSCRIPT>
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<!-- =========== END OF NAVBAR =========== -->
+
+<HR>
+
+</BODY>
+</HTML>