Класс KerberosKey
- Все реализуемые интерфейсы:
-
Serializable,Key,SecretKey,Destroyable
public class KerberosKey extends Object implements SecretKey
Объект KerberosKey включает в себя EncryptionKey, KerberosPrincipal в качестве владельца и номер версии ключа.
EncryptionKey определяется в разделе 4.2.9 спецификации протокола Kerberos (RFC 4120):
EncryptionKey ::= SEQUENCE {
keytype [0] Int32 -- actually encryption type --,
keyvalue [1] OCTET STRING
}
Материалом ключа KerberosKey является значение keyValue выше. Все модули входа Kerberos JAAS, которые получают пароль принципала и генерируют секретный ключ из него, должны использовать этот класс. Иногда, например, при аутентификации сервера в отсутствие аутентификации пользователь-пользователь, модуль входа сохраняет экземпляр этого класса в частном наборе идентификационных данных Subject во время фазы подтверждения процесса аутентификации.
Сервис Kerberos, использующий keytab для чтения секретных ключей, должен использовать класс KeyTab, где необходимые ключи могут читаться по мере необходимости.
При создании KerberosKey с помощью конструктора KerberosKey(KerberosPrincipal, char[], String), реализация может принять нестандартные имена алгоритмов (например, "ArcFourMac" для "rc4-hmac"), но метод getAlgorithm() всегда должен возвращать имя алгоритма IANA.
- Примечание реализации:
- Старые имена алгоритмов, используемые до JDK 9, поддерживаются в конструкторе
KerberosKey(KerberosPrincipal, char[], String)в этой реализации по соображениям совместимости, которые являются "DES" (и null) для "des-cbc-md5", "DESede" для "des3-cbc-sha1-kd", "ArcFourHmac" для "rc4-hmac", "AES128" для "aes128-cts-hmac-sha1-96" и "AES256" для "aes256-cts-hmac-sha1-96". - С:
- 1.4
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
KerberosKey |
Создает KerberosKey из заданных байтов, когда известны тип ключа и номер версии ключа. |
KerberosKey |
Создает KerberosKey из пароля принципала, используя заданное имя алгоритма. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
destroy() |
Уничтожает этот ключ, очищая материал ключа этого секретного ключа. |
boolean |
equals |
Сравнивает указанный объект с этим KerberosKey на равенство. |
final String |
getAlgorithm() |
Возвращает стандартное имя алгоритма для этого ключа. |
final byte[] |
getEncoded() |
Возвращает материал ключа этого секретного ключа. |
final String |
getFormat() |
Возвращает имя формата кодирования для этого секретного ключа. |
final int |
getKeyType() |
Возвращает тип ключа для этого долговременного ключа. |
final KerberosPrincipal |
getPrincipal() |
Возвращает принципала, которому принадлежит этот ключ. |
final int |
getVersionNumber() |
Возвращает номер версии ключа. |
int |
hashCode() |
Возвращает хэш-код для этого KerberosKey. |
boolean |
isDestroyed() |
Определяет, был ли уничтожен этот ключ. |
String |
toString() |
Возвращает информативное текстовое представление этого KerberosKey. |
Подробное описание конструкторов
KerberosKey
public KerberosKey(KerberosPrincipal principal, byte[] keyBytes, int keyType, int versionNum)
KerberosKey из заданных байтов, если известны тип ключа и номер версии. Это можно использовать при чтении информации о секретном ключе из Kerberos «keytab».- Параметры:
-
principal- принципал, которому принадлежит этот секретный ключ -
keyBytes- материал ключа для секретного ключа -
keyType- тип ключа для секретного ключа, определённый спецификацией протокола Kerberos. -
versionNum- номер версии этого секретного ключа
KerberosKey
public KerberosKey(KerberosPrincipal principal, char[] password, String algorithm)
KerberosKey из пароля принципала, используя заданное имя алгоритма. Имя алгоритма (регистронезависимое) должно быть предоставлено в виде строки типа шифрования, определённой на странице IANA Kerberos Encryption Type Numbers. Номер версии сгенерированного ключа будет 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:
- none: для etype, равного 0
- unknown: для etype больше 0, но не поддерживаемого реализацией
- private: для etype меньше 0
- Определено в:
-
getAlgorithmв интерфейсеKey - Возвращает:
- имя алгоритма, связанного с этим ключом.
- Исключения:
-
IllegalStateException- если ключ уничтожен - Внешние спецификации
getFormat
public final String getFormat()
- Определено в:
-
getFormatв интерфейсеKey - Возвращает:
- строку "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 - Возвращает:
- true, если этот
Objectбыл уничтожен, false в противном случае.
toString
hashCode
equals
public boolean equals(Object other)
KerberosKey на предмет равенства. Возвращает true, если указанный объект также является KerberosKey и две экземпляры KerberosKey эквивалентны. Уничтоженный объект KerberosKey равен только самому себе.
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.security.jgss/javax/security/auth/kerberos/KerberosKey.html