JavaTM 2 Platform
Standard Ed. 6

javax.security.auth.kerberos
類別 KerberosKey

java.lang.Object
  繼承者 javax.security.auth.kerberos.KerberosKey
所有已實作的介面:
Serializable, Key, SecretKey, Destroyable

public class KerberosKey
extends Object
implements SecretKey, Destroyable

此類別為 Kerberos 主體封裝一個長期秘密密鑰。

獲取主體的密碼和從主體產生秘密密鑰的所有 Kerberos JAAS 登錄模組都應該使用此類別。在任何可以使用的地方,登錄模組甚至可以直接從 Kerberos "keytab" 讀取此秘密密鑰。有時,例如在沒有使用者到使用者 (user-to-user) 驗證的情況下對伺服器進行驗證時,在驗證過程的提交階段,登錄模組將在 Subject 的私有證書集中存儲此類別的實例。

如果應用程序需要從 Subject 存取 KerberosKey 實例,可能必須授予應用程序 PrivateCredentialPermission 權限。當應用程序依靠預設的 JGSS Kerberos 機制去存取 KerberosKey 時,不需要此權限。但在這種情況下,應用程序將需要適當的 ServicePermission 權限。

從以下版本開始:
1.4
另請參見:
序列化表格

建構子摘要
KerberosKey(KerberosPrincipal principal, byte[] keyBytes, int keyType, int versionNum)
          當已知密鑰型別和密鑰版本號時,根據給出的位元組建構 KerberosKey。
KerberosKey(KerberosPrincipal principal, char[] password, String algorithm)
          根據主體的密碼建構 KerberosKey。
 
方法摘要
 void destroy()
          銷毀此密鑰。
 boolean equals(Object other)
          比較指定 Object 與此 KerberosKey 的相等性。
 String getAlgorithm()
          返回此密鑰的標準演算法名稱。
 byte[] getEncoded()
          返回秘密密鑰的密鑰材料。
 String getFormat()
          返回此秘密密鑰的編碼格式的名稱。
 int getKeyType()
          返回此長期密鑰的密鑰型別。
 KerberosPrincipal getPrincipal()
          返回此密鑰所屬的主體。
 int getVersionNumber()
          返回密鑰版本號。
 int hashCode()
          返回此 KerberosKey 的雜湊碼。
 boolean isDestroyed()
          確定此密鑰是否已經銷毀。
 String toString()
          返回該物件的字元串表示。
 
從類別 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

KerberosKey

public KerberosKey(KerberosPrincipal principal,
                   byte[] keyBytes,
                   int keyType,
                   int versionNum)
當已知密鑰型別和密鑰版本號時,根據給出的位元組建構 KerberosKey。當從 Kerberos "keytab" 讀取秘密密鑰資訊時,可以使用此 KerberosKey。

參數:
principal - 此秘密密鑰所屬的主體
keyBytes - 秘密密鑰的原始位元組
keyType - 秘密密鑰的密鑰型別,由 Kerberos 協議規範定義。
versionNum - 此秘密密鑰的版本號。

KerberosKey

public KerberosKey(KerberosPrincipal principal,
                   char[] password,
                   String algorithm)
根據主體的密碼建構 KerberosKey。

參數:
principal - 此密碼所屬的主體
password - 應該用於計算密鑰的密碼
algorithm - 此密鑰將使用的演算法的名稱。在假定預設演算法為 "DES" 的情況下此參數可以為 null。
拋出:
IllegalArgumentException - 如果不支持傳遞的演算法名稱。
方法詳細資訊

getPrincipal

public final KerberosPrincipal getPrincipal()
返回此密鑰所屬的主體。

返回:
此密鑰所屬的主體。

getVersionNumber

public final int getVersionNumber()
返回密鑰版本號。

返回:
密鑰版本號。

getKeyType

public final int getKeyType()
返回此長期密鑰的密鑰型別。

返回:
密鑰型別。

getAlgorithm

public final String getAlgorithm()
返回此密鑰的標準演算法名稱。例如,"DES" 指示此密鑰是一個 DES 密鑰。有關標準演算法名稱的資訊,請參閱 Java Cryptography Architecture API Specification & Reference 中的附錄 A。 與此密鑰有關聯的演算法的名稱。

指定者:
介面 Key 中的 getAlgorithm
返回:
與此密鑰關聯的演算法名稱。

getFormat

public final String getFormat()
返回此秘密密鑰的編碼格式的名稱。

指定者:
介面 Key 中的 getFormat
返回:
字元串 "RAW"。

getEncoded

public final byte[] getEncoded()
返回秘密密鑰的密鑰材料。

指定者:
介面 Key 中的 getEncoded
返回:
密鑰材料。

destroy

public void destroy()
             throws DestroyFailedException
銷毀此密鑰。銷毀密鑰後對此密鑰其他任何方法的調用將導致拋出 IllegalStateException。

指定者:
介面 Destroyable 中的 destroy
拋出:
DestroyFailedException - 如果銷毀密鑰時出現一些錯誤。

isDestroyed

public boolean isDestroyed()
確定此密鑰是否已經銷毀。

指定者:
介面 Destroyable 中的 isDestroyed
返回:
如果此 Object 已經銷毀,則返回 true;否則,返回 false。

toString

public String toString()
從類別 Object 複製的描述
返回該物件的字元串表示。通常,toString 方法會返回一個「以文本方式表示」此物件的字元串。結果應是一個簡明但易於讀懂的資訊表達式。建議所有子類別都覆寫此方法。

Object 類別的 toString 方法返回一個字元串,該字元串由類別名(物件是該類別的一個實例)、at 標記符“@”和此物件雜湊碼的無符號十六進製表示組成。換句話說,該方法返回一個字元串,它的值等於:

getClass().getName() + '@' + Integer.toHexString(hashCode())
 

覆寫:
類別 Object 中的 toString
返回:
該物件的字元串表示形式。

hashCode

public int hashCode()
返回此 KerberosKey 的雜湊碼。

覆寫:
類別 Object 中的 hashCode
返回:
KerberosKey 的 hashCode()
從以下版本開始:
1.6
另請參見:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object other)
比較指定 Object 與此 KerberosKey 的相等性。如果給定對象也是 KerberosKey 並且兩個 KerberosKey 實例相等,則返回 true。

覆寫:
類別 Object 中的 equals
參數:
other - 要與之比較的參考物件。
返回:
如果此物件與 obj 參數相同,則返回 true;否則返回 false
另請參見:
Object.hashCode(), Hashtable

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only