Spec-Zone.ru › OpenJDK 27

Класс KerberosKey

java.lang.Object
javax.security.auth.kerberos.KerberosKey
Все реализуемые интерфейсы:
Serializable, Key, SecretKey, Destroyable
public class KerberosKey extends Object implements SecretKey
Этот класс инкапсулирует долговременный секретный ключ субъекта Kerberos.

Объект KerberosKey включает EncryptionKey, KerberosPrincipal в качестве владельца и номер версии ключа.

EncryptionKey определён в разделе 4.2.9 спецификации протокола Kerberos (RFC 4120) следующим образом:

    EncryptionKey   ::= SEQUENCE {
            keytype         [0] Int32 -- actually encryption type --,
            keyvalue        [1] OCTET STRING
    }
Материал ключа KerberosKey определяется как значение указанного выше keyValue.

Все модули входа JAAS Kerberos, которые получают пароль субъекта и генерируют на его основе секретный ключ, должны использовать этот класс. Иногда, например при аутентификации сервера без взаимной аутентификации пользователей, модуль входа сохраняет экземпляр этого класса в наборе закрытых учётных данных объекта Subject на этапе фиксации процесса аутентификации.

Служба Kerberos, использующая таблицу ключей для чтения секретных ключей, должна использовать класс KeyTab, который позволяет считывать актуальные ключи по мере необходимости.

При создании объекта KerberosKey с помощью конструктора KerberosKey(KerberosPrincipal, char[], String) реализация может принимать имена алгоритмов, не соответствующие IANA (например, «ArcFourMac» для «rc4-hmac»), однако метод getAlgorithm() всегда должен возвращать имя алгоритма IANA.

Примечание по реализации:
В целях совместимости в этой реализации в конструкторе KerberosKey(KerberosPrincipal, char[], String) поддерживаются имена алгоритмов, использовавшиеся до JDK 9: «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(KerberosPrincipal principal, byte[] keyBytes, int keyType, int versionNum)
Создаёт объект KerberosKey из заданных байтов, если известны тип ключа и номер его версии.
KerberosKey(KerberosPrincipal principal, char[] password, String algorithm)
Создаёт объект KerberosKey на основе пароля субъекта с использованием указанного имени алгоритма.

Краткое описание методов

Модификатор и тип Метод Описание
void destroy()
Уничтожает этот ключ, очищая материал секретного ключа.
boolean equals(Object other)
Сравнивает указанный объект с этим 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.

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

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. Номер версии созданного ключа будет равен 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:

  1. none: если etype равен 0
  2. unknown: если etype больше 0, но не поддерживается реализацией
  3. private: если etype меньше 0
Определено в:
getAlgorithm в интерфейсе Key
Возвращает:
имя алгоритма, связанного с этим ключом.
Исключения:
IllegalStateException — если ключ уничтожен
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java

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

public String toString()
Возвращает информативное текстовое представление этого KerberosKey.
Переопределяет:
toString в классе Object
Возвращает:
информативное текстовое представление этого KerberosKey.

hashCode

public int hashCode()
Возвращает хеш-код этого KerberosKey.
Переопределяет:
hashCode в классе Object
Возвращает:
хеш-код этого KerberosKey
Начиная с:
1.6
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

equals

public boolean equals(Object other)
Сравнивает указанный объект с этим KerberosKey на равенство. Возвращает true, если заданный объект также является KerberosKey и два экземпляра KerberosKey эквивалентны. Уничтоженный объект KerberosKey равен только самому себе.
Переопределяет:
equals в классе Object
Параметры:
other — объект для сравнения
Возвращает:
true, если указанный объект равен этому KerberosKey; в противном случае — false.
Начиная с:
1.6
См. также:
  • Object.hashCode()
  • HashMap

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, где приведены более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры рабочего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API