Spec-Zone.ru › OpenJDK 17

Класс 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 выше.

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

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

Возможно, для приложения потребуется разрешение PrivateCredentialPermission, если ему необходимо получить доступ к экземпляру KerberosKey из Subject. Это разрешение не требуется, когда приложение полагается на стандартный механизм JGSS Kerberos для доступа к KerberosKey. Однако в этом случае приложение потребует соответствующее разрешение ServicePermission.

При создании KerberosKey с помощью конструктора KerberosKey(KerberosPrincipal, char[], String), реализация может принимать имена алгоритмов, отличные от IANA (например, "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(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.

Методы, унаследованные от класса 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".
Параметры:
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 Kerberos Encryption Type Numbers.

Этот метод может возвращать следующие значения, не определённые на странице IANA:

  1. none: для etype, равного 0
  2. unknown: для etype больше 0, но не поддерживаемого реализацией
  3. 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

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

hashCode

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

equals

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

© 1993, 2021, 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://docs.oracle.com/en/java/javase/17/docs/api/java.security.jgss/javax/security/auth/kerberos/KerberosKey.html

Spec-Zone.ru

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