- すべての実装されたインタフェース:
Serializable
,Key
,SecretKey
,Destroyable
KerberosKey
オブジェクトには、EncryptionKey、所有者としてのKerberosPrincipal
、およびキーのバージョン番号が含まれます。
EncryptionKeyは、Kerberosプロトコル仕様(RFC 4120)のセクション4.2.9で次のように定義されます:
EncryptionKey ::= SEQUENCE { keytype [0] Int32 -- actually encryption type --, keyvalue [1] OCTET STRING }
KerberosKey
のキー・マテリアルは、前述のkeyValue
の値として定義されます。
主体のパスワードを取得して秘密キーを生成するすべてのKerberos JAASログイン・モジュールでは、このクラスを使用するようにしてください。 ユーザー対ユーザー認証なしでサーバーを認証する場合などに、ログイン・モジュールは、認証プロセスのコミット・フェーズ中に、このクラスのインスタンスをSubject
の非公開資格セットに格納することがあります。
キー・タブを使用して秘密キーを読み込むKerberosサービスでは、KeyTab
クラスを使用するようにしてください。このクラスでは、必要に応じて最新のキーが読み込まれます。
サブジェクトからKerberosKey
インスタンスにアクセスする必要がある場合は、アプリケーションにPrivateCredentialPermission
を付与する必要がある場合があります。 アプリケーションがKerberosKey
にアクセスするためのデフォルトのJGSS Kerberosメカニズムに依存する場合、このアクセス権は必要ありません。 ただしその場合、アプリケーションには適切なServicePermission
が必要です。
KerberosKey(KerberosPrincipal, char[], String)
コンストラクタを使用してKerberosKey
を作成する場合、実装では、IANA以外のアルゴリズム名(たとえば、"rc4-hmac"の場合は"ArcFourMac"です)を受け入れることができますが、getAlgorithm()
メソッドは、常にIANAアルゴリズム名を返す必要があります。
- 実装上のノート:
- 互換性の理由から、JDK 9より前に使用されていた古いアルゴリズム名は、この実装の
KerberosKey(KerberosPrincipal, char[], String)
コンストラクタでサポートされています。これは、"des-cbc-md5"の場合は"DES" (およびnull)、"des3-cbc-sha1-kd"の場合は"DESede"、"rc4-hmac"の場合は"ArcFourHmac"、"aes128-cts-hmac-sha1-96"の場合は"AES128"、"aes256-cts-hmac-sha1-96"の場合は"AES256"です。 - 導入されたバージョン:
- 1.4
- 関連項目:
-
コンストラクタのサマリー
コンストラクタコンストラクタ説明KerberosKey
(KerberosPrincipal principal, byte[] keyBytes, int keyType, int versionNum) キー・タイプおよびキー・バージョン番号がわかっている場合に、指定されたバイトからKerberosKey
を構築します。KerberosKey
(KerberosPrincipal principal, char[] password, String algorithm) 指定されたアルゴリズム名を使用して、プリンシパルのパスワードからKerberosKey
を構築します。 -
メソッドのサマリー
修飾子と型メソッド説明void
destroy()
この秘密キーのキー・マテリアルをクリアして、このキーを破棄します。boolean
指定されたオブジェクトをこのKerberosKey
と比較し、等しいかどうかを確認します。final String
このキーに対する標準アルゴリズムを返します。final byte[]
この秘密キーのキー・データを返します。final String
この秘密キーの符号化形式の名前を返します。final int
この長期キーのキー・タイプを返します。final KerberosPrincipal
このキーが属する主体を返します。final int
キーのバージョン番号を返します。int
hashCode()
このKerberosKey
のハッシュ・コードを返します。boolean
このキーが破棄されたかどうかを判定します。toString()
このKerberosKey
の有益なテキスト表現を返します。
-
コンストラクタの詳細
-
KerberosKey
public KerberosKey(KerberosPrincipal principal, byte[] keyBytes, int keyType, int versionNum) キー・タイプおよびキー・バージョン番号がわかっている場合に、指定されたバイトからKerberosKey
を構築します。 秘密キーの情報がKerberosの「キー・タブ」から読み取れるときに使用できます。- パラメータ:
principal
- この秘密キーが属する主体keyBytes
- 秘密鍵の鍵素材keyType
- Kerberosプロトコル仕様で定義された、秘密キーのキー・タイプ。versionNum
- この秘密キーのバージョン番号
-
KerberosKey
public KerberosKey(KerberosPrincipal principal, char[] password, String algorithm) 指定されたアルゴリズム名を使用して、プリンシパルのパスワードからKerberosKey
を構築します。 アルゴリズム名(大文字小文字を区別しません)は、IANAの「Kerberos暗号化型番号」ページで定義された暗号化タイプ文字列として指定する必要があります。 生成されたキーのバージョン番号は0になります。- パラメータ:
principal
- このパスワードが属する主体password
- キーを計算するのに使用されるパスワードalgorithm
- このキーが使用されるアルゴリズムの名前- 例外:
IllegalArgumentException
- 渡されたアルゴリズム名がサポートされていない場合。
-
-
メソッドの詳細
-
getPrincipal
public final KerberosPrincipal getPrincipal()このキーが属する主体を返します。- 戻り値:
- このキーが属する主体。
- 例外:
IllegalStateException
- キーが破棄された場合
-
getVersionNumber
public final int getVersionNumber()キーのバージョン番号を返します。- 戻り値:
- キーのバージョン番号。
- 例外:
IllegalStateException
- キーが破棄された場合
-
getKeyType
public final int getKeyType()この長期キーのキー・タイプを返します。- 戻り値:
- キー・タイプ。
- 例外:
IllegalStateException
- キーが破棄された場合
-
getAlgorithm
public final String getAlgorithm()このキーに対する標準アルゴリズムを返します。 アルゴリズム名は、IANAの「Kerberos暗号化型番号」ページで定義された暗号化タイプの文字列です。このメソッドは、IANAページで定義されていない次の値を返すことができます:
- none: etypeが0の場合
- 不明: etypeが0より大きいが、実装によってサポートされていない
- プライベート: 0より小さいetype
- 定義:
getAlgorithm
、インタフェースKey
- 戻り値:
- このキーに関連したアルゴリズムの名前。
- 例外:
IllegalStateException
- キーが破棄された場合
-
getFormat
public final String getFormat()この秘密キーの符号化形式の名前を返します。- 定義:
getFormat
、インタフェースKey
- 戻り値:
- String "RAW"
- 例外:
IllegalStateException
- キーが破棄された場合
-
getEncoded
public final byte[] getEncoded()この秘密キーのキー・データを返します。- 定義:
getEncoded
、インタフェースKey
- 戻り値:
- キー・データ
- 例外:
IllegalStateException
- キーが破棄された場合
-
destroy
public void destroy() throws DestroyFailedExceptionこの秘密キーのキー・マテリアルをクリアして、このキーを破棄します。- 定義:
destroy
、インタフェースDestroyable
- 例外:
DestroyFailedException
- このキーの破棄中にエラーが発生した場合。
-
isDestroyed
public boolean isDestroyed()このキーが破棄されたかどうかを判定します。- 定義:
isDestroyed
、インタフェースDestroyable
- 戻り値:
- この
Object
が破棄された場合はtrue、そうでない場合はfalse。
-
toString
public String toString()このKerberosKey
の有益なテキスト表現を返します。 -
hashCode
public int hashCode()このKerberosKey
のハッシュ・コードを返します。 -
equals
public boolean equals(Object other) 指定されたオブジェクトをこのKerberosKey
と比較し、等しいかどうかを確認します。 指定されたオブジェクトがKerberosKey
であり、2つのKerberosKey
インスタンスが等価である場合、trueを返します。 破棄されたKerberosKey
オブジェクトは、それ自体と等しいだけです。
-