530 lines
23 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
compact3
</div>
<div class="subTitle">
javax.security.auth.kerberos
</div>
<h2 class="title" title="Class KerberosKey">Class KerberosKey</h2>
</div><div class="contentContainer">
<ul class="inheritance">
<li><a href="../../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>javax.security.auth.kerberos.KerberosKey</li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>
All Implemented Interfaces:
</dt>
<dd>
<span><a href="../../../../java/io/Serializable.html" title="java.io中的接口">Serializable</a> <a href="../../../../java/security/Key.html" title="java.security中的接口">Key</a> <a href="../../../../javax/crypto/SecretKey.html" title="javax.crypto中的接口">SecretKey</a> <a href="../../../../javax/security/auth/Destroyable.html" title="javax.security.auth中的接口">Destroyable</a></span>
</dd>
</dl>
<hr/> <br/> <pre>public class <span class="typeNameLabel">KerberosKey</span>
extends <a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a>
implements <a href="../../../../javax/crypto/SecretKey.html" title="interface in javax.crypto">SecretKey</a>, <a href="../../../../javax/security/auth/Destroyable.html" title="interface in javax.security.auth">Destroyable</a></pre>
<div class="block">
<span>该类封装了Kerberos主体的长期密钥。</span>
<p> <span>获取主体密码并从中生成密钥的所有Kerberos JAAS登录模块都应该使用此类。</span> <span>有时,例如在没有用户到用户认证的情况下认证服务器时,登录模块将在<a href="../../../../javax/security/auth/Subject.html" title="javax.security.auth中的类">认证</a>过程的提交阶段期间将该类的实例存储在<code>Subject</code>的私有证书集中。</span> </p>
<p> <span>使用密钥表读取密钥的Kerberos服务应使用<a href="../../../../javax/security/auth/kerberos/KeyTab.html" title="javax.security.auth.kerberos中的类"><code>KeyTab</code></a>类,在需要时可以读取最新的密钥。</span> </p>
<p> <span>如果应用程序需要从主题访问KerberosKey实例可能需要授予应用<a href="../../../../javax/security/auth/PrivateCredentialPermission.html" title="javax.security.auth中的类">程序<code>PrivateCredentialPermission</code></a></span> <span>当应用程序依赖于默认的JGSS Kerberos机制来访问KerberosKey时不需要此权限。</span> <span>然而,在这种情况下,应用程序将需要适当的<a href="../../../../javax/security/auth/kerberos/ServicePermission.html" title="javax.security.auth.kerberos中的类"><code>ServicePermission</code></a></span> </p>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.4
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../serialized-form.html#javax.security.auth.kerberos.KerberosKey">Serialized Form</a>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- --> </a> <h3>构造方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Constructor Summary table, listing constructors, and an explanation">
<caption>
<span>构造方法</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KerberosKey.html#KerberosKey-javax.security.auth.kerberos.KerberosPrincipal-byte:A-int-int-">KerberosKey</a></span>(<a href="../../../../javax/security/auth/kerberos/KerberosPrincipal.html" title="class in javax.security.auth.kerberos">KerberosPrincipal</a> principal, byte[] keyBytes, int keyType, int versionNum)</code>
<div class="block">
当密钥类型和密钥版本号已知时从给定字节构造KerberosKey。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KerberosKey.html#KerberosKey-javax.security.auth.kerberos.KerberosPrincipal-char:A-java.lang.String-">KerberosKey</a></span>(<a href="../../../../javax/security/auth/kerberos/KerberosPrincipal.html" title="class in javax.security.auth.kerberos">KerberosPrincipal</a> principal, char[] password, <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> algorithm)</code>
<div class="block">
从主体的密码构造一个KerberosKey。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption>
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t2"><span><a href="javascript:show(2);">接口方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t4"><span><a href="javascript:show(8);">具体的方法</a></span><span class="tabEnd"> </span></span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor" id="i0">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KerberosKey.html#destroy--">destroy</a></span>()</code>
<div class="block">
破坏这个关键
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KerberosKey.html#equals-java.lang.Object-">equals</a></span>(<a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a> other)</code>
<div class="block">
将指定的对象与此KerberosKey进行比较以获得相等性。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code><a href="../../../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KerberosKey.html#getAlgorithm--">getAlgorithm</a></span>()</code>
<div class="block">
返回此键的标准算法名称。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KerberosKey.html#getEncoded--">getEncoded</a></span>()</code>
<div class="block">
返回此密钥的密钥材料。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code><a href="../../../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KerberosKey.html#getFormat--">getFormat</a></span>()</code>
<div class="block">
返回此密钥的编码格式的名称。
</div> </td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KerberosKey.html#getKeyType--">getKeyType</a></span>()</code>
<div class="block">
返回此长期密钥的密钥类型。
</div> </td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code><a href="../../../../javax/security/auth/kerberos/KerberosPrincipal.html" title="class in javax.security.auth.kerberos">KerberosPrincipal</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KerberosKey.html#getPrincipal--">getPrincipal</a></span>()</code>
<div class="block">
返回此密钥所属的主体。
</div> </td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KerberosKey.html#getVersionNumber--">getVersionNumber</a></span>()</code>
<div class="block">
返回密钥版本号。
</div> </td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KerberosKey.html#hashCode--">hashCode</a></span>()</code>
<div class="block">
返回此KerberosKey的哈希码。
</div> </td>
</tr>
<tr class="rowColor" id="i9">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KerberosKey.html#isDestroyed--">isDestroyed</a></span>()</code>
<div class="block">
确定此密钥是否已被销毁。
</div> </td>
</tr>
<tr class="altColor" id="i10">
<td class="colFirst"><code><a href="../../../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KerberosKey.html#toString--">toString</a></span>()</code>
<div class="block">
返回对象的字符串表示形式。
</div> </td>
</tr>
</tbody>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- --> </a> <h3>Methods inherited from class java.lang.<a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a></h3> <code><a href="../../../../java/lang/Object.html#clone--">clone</a>, <a href="../../../../java/lang/Object.html#finalize--">finalize</a>, <a href="../../../../java/lang/Object.html#getClass--">getClass</a>, <a href="../../../../java/lang/Object.html#notify--">notify</a>, <a href="../../../../java/lang/Object.html#notifyAll--">notifyAll</a>, <a href="../../../../java/lang/Object.html#wait--">wait</a>, <a href="../../../../java/lang/Object.html#wait-long-">wait</a>, <a href="../../../../java/lang/Object.html#wait-long-int-">wait</a></code></li>
</ul> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- --> </a> <h3>构造方法详细信息</h3> <a name="KerberosKey-javax.security.auth.kerberos.KerberosPrincipal-byte:A-int-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>KerberosKey</h4> <pre>public KerberosKey(<a href="../../../../javax/security/auth/kerberos/KerberosPrincipal.html" title="class in javax.security.auth.kerberos">KerberosPrincipal</a> principal,
byte[] keyBytes,
int keyType,
int versionNum)</pre>
<div class="block">
<span>当密钥类型和密钥版本号已知时从给定字节构造KerberosKey。</span>
<span>当从Kerberos“keytab”读取密钥信息时可以使用它。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>principal</code> - 该密钥属于的主体
</dd>
<dd>
<code>keyBytes</code> - 秘密密钥的原始字节
</dd>
<dd>
<code>keyType</code> - 由Kerberos协议规范定义的密钥的密钥类型。
</dd>
<dd>
<code>versionNum</code> - 此秘密密钥的版本号
</dd>
</dl> </li>
</ul> <a name="KerberosKey-javax.security.auth.kerberos.KerberosPrincipal-char:A-java.lang.String-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>KerberosKey</h4> <pre>public KerberosKey(<a href="../../../../javax/security/auth/kerberos/KerberosPrincipal.html" title="class in javax.security.auth.kerberos">KerberosPrincipal</a> principal,
char[] password,
<a href="../../../../java/lang/String.html" title="class in java.lang">String</a> algorithm)</pre>
<div class="block">
从主体的密码构造一个KerberosKey。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>principal</code> - 该密码所属的主体
</dd>
<dd>
<code>password</code> - 用于计算密钥的密码
</dd>
<dd>
<span><code>algorithm</code> - 此密钥将被用于的算法的名称。</span>
<span>该参数可能为null在这种情况下将假定默认算法“DES”。</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果传递的算法的名称不受支持。
</dd>
</dl> </li>
</ul> </li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="getPrincipal--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getPrincipal</h4> <pre>public final <a href="../../../../javax/security/auth/kerberos/KerberosPrincipal.html" title="class in javax.security.auth.kerberos">KerberosPrincipal</a> getPrincipal()</pre>
<div class="block">
返回此密钥所属的主体。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
这个钥匙所属的校长。
</dd>
</dl> </li>
</ul> <a name="getVersionNumber--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getVersionNumber</h4> <pre>public final int getVersionNumber()</pre>
<div class="block">
返回密钥版本号。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
关键版本号。
</dd>
</dl> </li>
</ul> <a name="getKeyType--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getKeyType</h4> <pre>public final int getKeyType()</pre>
<div class="block">
返回此长期密钥的密钥类型。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
关键类型。
</dd>
</dl> </li>
</ul> <a name="getAlgorithm--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getAlgorithm</h4> <pre>public final <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> getAlgorithm()</pre>
<div class="block">
<span>返回此键的标准算法名称。</span>
<span>例如“DES”将表示该密钥是DES密钥。</span>
<span>有关标准算法名称的信息,请参阅<a href="../../../../../technotes/guides/security/crypto/CryptoSpec.html#AppA">Java Cryptography Architecture API Specification &amp; Reference</a>中的附录A.</span>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../../java/security/Key.html#getAlgorithm--">getAlgorithm</a></code>在界面
<code><a href="../../../../java/security/Key.html" title="interface in java.security">Key</a></code>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
与该密钥相关联的算法的名称。
</dd>
</dl> </li>
</ul> <a name="getFormat--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getFormat</h4> <pre>public final <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> getFormat()</pre>
<div class="block">
返回此密钥的编码格式的名称。
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../../java/security/Key.html#getFormat--">getFormat</a></code>在界面
<code><a href="../../../../java/security/Key.html" title="interface in java.security">Key</a></code>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
字符串“RAW”
</dd>
</dl> </li>
</ul> <a name="getEncoded--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getEncoded</h4> <pre>public final byte[] getEncoded()</pre>
<div class="block">
返回此密钥的密钥材料。
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../../java/security/Key.html#getEncoded--">getEncoded</a></code>在界面
<code><a href="../../../../java/security/Key.html" title="interface in java.security">Key</a></code>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
关键材料
</dd>
</dl> </li>
</ul> <a name="destroy--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>destroy</h4> <pre>public void destroy()
throws <a href="../../../../javax/security/auth/DestroyFailedException.html" title="class in javax.security.auth">DestroyFailedException</a></pre>
<div class="block">
<span>破坏这个关键</span>
<span>在此之后调用其他任何方法将导致抛出IllegalStateException。</span>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../../javax/security/auth/Destroyable.html#destroy--">destroy</a></code>在界面
<code><a href="../../../../javax/security/auth/Destroyable.html" title="interface in javax.security.auth">Destroyable</a></code>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../../javax/security/auth/DestroyFailedException.html" title="class in javax.security.auth">DestroyFailedException</a></code> - 如果在破坏此密钥时出现某些错误。
</dd>
</dl> </li>
</ul> <a name="isDestroyed--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>isDestroyed</h4> <pre>public boolean isDestroyed()</pre>
<div class="block">
确定此密钥是否已被销毁。
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../../javax/security/auth/Destroyable.html#isDestroyed--">isDestroyed</a></code>在界面
<code><a href="../../../../javax/security/auth/Destroyable.html" title="interface in javax.security.auth">Destroyable</a></code>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
如果这个
<code>Object</code>被销毁则为true否则为false。
</dd>
</dl> </li>
</ul> <a name="toString--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>toString</h4> <pre>public <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> toString()</pre>
<div class="block">
<span class="descfrmTypeLabel">描述从类别: <code><a href="../../../../java/lang/Object.html#toString--">Object</a></code>复制</span>
</div>
<div class="block">
<span>返回对象的字符串表示形式。</span>
<span>一般来说, <code>toString</code>方法返回一个“textually代表”这个对象的字符串。</span>
<span>结果应该是一个简明扼要的表达,容易让人阅读。</span>
<span>建议所有子类覆盖此方法。</span>
<p> <span><code>toString</code>类方法<code>Object</code>返回一个由其中的对象是一个实例,该符号字符`的类的名称的字符串<code>@</code> ”和对象的哈希码的无符号的十六进制表示。</span> <span>换句话说,这个方法返回一个等于下列值的字符串:</span> </p>
<blockquote>
<span><pre>
getClass().getName() + '@' + Integer.toHexString(hashCode())
</pre></span>
</blockquote>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">重写:</span>
</dt>
<dd>
<code><a href="../../../../java/lang/Object.html#toString--">toString</a></code>在类别
<code><a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a></code>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
对象的字符串表示形式。
</dd>
</dl> </li>
</ul> <a name="hashCode--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>hashCode</h4> <pre>public int hashCode()</pre>
<div class="block">
返回此KerberosKey的哈希码。
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">重写:</span>
</dt>
<dd>
<code><a href="../../../../java/lang/Object.html#hashCode--">hashCode</a></code>在类别
<code><a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a></code>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个hashCode
<code>KerberosKey</code>
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.6
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../java/lang/Object.html#equals-java.lang.Object-"><code>Object.equals(java.lang.Object)</code></a>
<a href="../../../../java/lang/System.html#identityHashCode-java.lang.Object-"><code>System.identityHashCode(java.lang.Object)</code></a>
</dd>
</dl> </li>
</ul> <a name="equals-java.lang.Object-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>equals</h4> <pre>public boolean equals(<a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a> other)</pre>
<div class="block">
<span>将指定的对象与此KerberosKey进行比较以获得相等性。</span>
<span>如果给定的对象也是<code>KerberosKey</code> ,并且两个<code>KerberosKey</code>实例是等价的则返回true。</span>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">重写:</span>
</dt>
<dd>
<code><a href="../../../../java/lang/Object.html#equals-java.lang.Object-">equals</a></code>在类别
<code><a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a></code>
</dd>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>other</code> - 要比较的对象
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>如果指定的对象等于此KerberosKey则为true否则为false。</span>
<span>注意如果任一KerberosKey对象已被销毁则返回false。</span>
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.6
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../../java/lang/Object.html#hashCode--"><code>Object.hashCode()</code></a> <a href="../../../../java/util/HashMap.html" title="java.util中的类"><code>HashMap</code></a></span>
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>