Spec-Zone.ru › OpenJDK 24

Интерфейс GSSContext

Все известные подинтерфейсы:
ExtendedGSSContext
public interface GSSContext
Этот интерфейс инкапсулирует контекст безопасности GSS-API и предоставляет доступные через него службы безопасности. Контексты безопасности устанавливаются между равноправными узлами с использованием локально полученных учетных данных. Может существовать несколько контекстов одновременно между парой узлов, используя одинаковый или разный набор учетных данных. GSS-API функционирует независимо от основного протокола транспорта и зависит от вызывающего приложения для передачи токенов, генерируемых контекстом безопасности между узлами.

Если вызывающий элемент создаёт контекст, используя экземпляр по умолчанию GSSManager, механизм GSS-API Kerberos v5 гарантированно доступен для создания контекста. Этот механизм идентифицируется с помощью Oid "1.2.840.113554.1.2.2" и определён в RFC 1964.

Перед началом фазы создания контекста инициатор контекста может запросить определённые характеристики желаемого контекста. Не все основанные механизмы поддерживают все характеристики, которые может потребовать вызывающий элемент. После создания контекста вызывающий элемент может проверить фактические характеристики и службы, предлагаемые этим контекстом, с помощью различных методов запроса. При использовании механизма Kerberos v5 GSS-API, предлагаемого экземпляром по умолчанию GSSManager, все необязательные службы будут доступны локально. К ним относятся взаимная аутентификация, делегирование учетных данных, защита конфиденциальности и целостности, а также обнаружение и упорядочивание повторов сообщений. Обратите внимание, что в GSS-API целостность сообщения является предпосылкой для конфиденциальности сообщения.

Создание контекста происходит в цикле, где инициатор вызывает initSecContext, а акцептор вызывает acceptSecContext, пока контекст не будет создан. В этом цикле методы initSecContext и acceptSecContext производят токены, которые приложение отправляет своему партнёру. Партнёр передает любой такой токен в качестве входных данных своему методу acceptSecContext или initSecContext, в зависимости от ситуации.

Во время фазы создания контекста можно вызвать метод isProtReady для определения возможности использования контекста для операций по сообщениям wrap и getMIC. Это позволяет приложениям использовать операции по сообщениям в контекстах, которые ещё не полностью созданы.

После создания контекста или возврата значения true методом isProtReady, можно вызвать процедуры запроса для определения фактических характеристик и служб созданного контекста. Приложение также может начать использовать методы по сообщениям wrap и getMIC для получения криптографических операций над данными, предоставленными приложением.

Когда контекст больше не нужен, приложение должно вызвать dispose для освобождения любых системных ресурсов, которые использует контекст.

Контекст безопасности обычно сохраняет информацию о последовательности и обнаружении повторов относительно токенов, которые он обрабатывает. Поэтому порядок, в котором токены представлены этому контексту для обработки, может иметь значение. Также обратите внимание, что ни один из методов в этом интерфейсе не является синхронизированным. Поэтому не рекомендуется совместно использовать GSSContext между несколькими потоками, если не реализована какая-либо синхронизация на уровне приложения.

Потоковые методы интерфейса GSSContext устарели в Java SE 11. Эти методы также были удалены из RFC 8353: Обновление Java-привязок к API общих служб безопасности версии 2 по следующим причинам (см. раздел 11): «Перегруженные методы GSSContext, использующие потоки ввода и вывода для передачи токенов аутентификации и GSS-API по сообщениям, как описано в разделе 5.15 RFC 5653, удалены в этом обновлении, поскольку протокол связи должен определяться приложением, а не библиотекой. Также невозможно корректно реализовать эти методы, когда токен не имеет самоопределения (где конец не может быть определён) или библиотека не имеет знаний о формате токена (например, в качестве моста, взаимодействующего с другой библиотекой GSS).» К таким методам относятся initSecContext(InputStream, OutputStream), acceptSecContext(InputStream, OutputStream), wrap(InputStream, OutputStream, MessageProp), unwrap(InputStream, OutputStream, MessageProp), getMIC(InputStream, OutputStream, MessageProp) и verifyMIC(InputStream, InputStream, MessageProp).

Приведенный ниже пример кода демонстрирует использование интерфейса GSSContext для инициализируемого узла. Представлены различные операции с объектом GSSContext, включая: создание объекта, установку желаемых флагов, создание контекста, запрос фактических флагов контекста, операции по сообщениям над данными приложения и, наконец, удаление контекста.

    // Create a context using default credentials
    // and the implementation specific default mechanism
    GSSManager manager = ...
    GSSName targetName = ...
    GSSContext context = manager.createContext(targetName, null, null,
                                           GSSContext.INDEFINITE_LIFETIME);

    // set desired context options prior to context establishment
    context.requestConf(true);
    context.requestMutualAuth(true);
    context.requestReplayDet(true);
    context.requestSequenceDet(true);

    // establish a context between peers

    byte[] inToken = new byte[0];
    byte[] outToken;

    // Loop while there still is a token to be processed

    while (!context.isEstablished()) {

        outToken = context.initSecContext(inToken, 0, inToken.length);

        // send the output token if generated
        if (outToken != null) {
            sendToken(outToken);
        }

        if (!context.isEstablished()) {
            inToken = readToken();
        }
    }

     // display context information
     System.out.println("Remaining lifetime in seconds = "
                                          + context.getLifetime());
     System.out.println("Context mechanism = " + context.getMech());
     System.out.println("Initiator = " + context.getSrcName());
     System.out.println("Acceptor = " + context.getTargName());

     if (context.getConfState()) {
         System.out.println("Confidentiality (i.e., privacy) is available");
     }

     if (context.getIntegState()) {
         System.out.println("Integrity is available");
     }

     // perform wrap on an application supplied message, appMsg,
     // using QOP = 0, and requesting privacy service
     byte[] appMsg = ...

     MessageProp mProp = new MessageProp(0, true);

     outToken = context.wrap(appMsg, 0, appMsg.length, mProp);

     sendToken(outToken);

     // perform unwrap on an incoming application message, and check
     // its privacy state and supplementary information
     inToken = readToken();

     mProp = new MessageProp(0, true);

     appMsg = context.unwrap(inToken, 0, inToken.length, mProp);

     System.out.println("Was it encrypted? " + mProp.getPrivacy());
     System.out.println("Duplicate Token? " + mProp.isDuplicateToken());
     System.out.println("Old Token? " + mProp.isOldToken());
     System.out.println("Unsequenced Token? " + mProp.isUnseqToken());
     System.out.println("Gap Token? " + mProp.isGapToken());

     // the application determines if the privacy state and supplementary
     // information are acceptable

     // release the local-end of the context
     context.dispose();

 
С:
1.4

Краткое описание полей

Модификатор и тип Поле Описание
static final int DEFAULT_LIFETIME
Постоянная, представляющая стандартную продолжительность жизни контекста.
static final int INDEFINITE_LIFETIME
Постоянная, представляющая неопределённую продолжительность жизни контекста.

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

Модификатор и тип Метод Описание
byte[] acceptSecContext(byte[] inToken, int offset, int len)
Вызывается приёмником контекста при получении токена от партнёра.
void acceptSecContext(InputStream inStream, OutputStream outStream)
Устарело.
Методы, основанные на потоках, удалены из RFC 8353.
void dispose()
Освобождает системные ресурсы и криптографическую информацию, хранящиеся в объекте контекста, и делает контекст недействительным.
byte[] export()
Экспортирует этот контекст, чтобы другой процесс мог его импортировать.
boolean getAnonymityState()
Определяет, аутентифицирован ли инициатор контекста анонимно для приёмника контекста.
boolean getConfState()
Определяет, доступна ли конфиденциальность данных через контекст.
boolean getCredDelegState()
Определяет, включена ли делегация учетных данных в этом контексте.
GSSCredential getDelegCred()
Получает учетные данные, делегированные инициатором контекста приёмнику контекста.
boolean getIntegState()
Определяет, доступна ли целостность данных через контекст.
int getLifetime()
Определяет оставшуюся продолжительность жизни этого контекста.
Oid getMech()
Определяет используемый механизм для этого контекста.
byte[] getMIC(byte[] inMsg, int offset, int len, MessageProp msgProp)
Возвращает токен, содержащий криптографический код целостности сообщения (MIC) для предоставленного сообщения, для передачи приложению-партнёру.
void getMIC(InputStream inStream, OutputStream outStream, MessageProp msgProp)
Устарело.
Методы, основанные на потоках, удалены из RFC 8353.
boolean getMutualAuthState()
Определяет, включена ли взаимная аутентификация в этом контексте.
boolean getReplayDetState()
Определяет, включено ли обнаружение повторов для служб безопасности по сообщениям из этого контекста.
boolean getSequenceDetState()
Определяет, включена ли проверка последовательности для служб безопасности по сообщениям из этого контекста.
GSSName getSrcName()
Возвращает имя инициатора контекста.
GSSName getTargName()
Возвращает имя приёмника контекста.
int getWrapSizeLimit(int qop, boolean confReq, int maxTokenSize)
Используется для определения ограничений на размер сообщения, которое может быть передано в wrap.
byte[] initSecContext(byte[] inputBuf, int offset, int len)
Вызывается инициатором контекста для запуска фазы создания контекста и обработки любых токенов, сгенерированных методом партнёра acceptSecContext.
int initSecContext(InputStream inStream, OutputStream outStream)
Устарело.
Методы, основанные на потоках, удалены из RFC 8353.
boolean isEstablished()
Используется во время создания контекста для определения состояния контекста.
boolean isInitiator()
Определяет, является ли это контекстом инициатора.
boolean isProtReady()
Определяет, готов ли контекст для использования операций по сообщениям.
boolean isTransferable()
Определяет, может ли контекст передаваться другим процессам с помощью метода export.
void requestAnonymity(boolean state)
Запрашивает, чтобы идентификатор инициатора не был раскрыт приёмнику.
void requestConf(boolean state)
Запрашивает включение конфиденциальности данных для метода wrap.
void requestCredDeleg(boolean state)
Запрашивает делегирование учетных данных инициатора приёмнику во время создания контекста.
void requestInteg(boolean state)
Запрашивает включение целостности данных для методов wrap и getMIC.
void requestLifetime(int lifetime)
Запрашивает продолжительность жизни контекста в секундах.
void requestMutualAuth(boolean state)
Запрашивает взаимную аутентификацию во время создания контекста.
void requestReplayDet(boolean state)
Запрашивает включение обнаружения повторов для служб безопасности по сообщениям после создания контекста.
void requestSequenceDet(boolean state)
Запрашивает включение проверки последовательности для служб безопасности по сообщениям после создания контекста.
void setChannelBinding(ChannelBinding cb)
Устанавливает канальные связи, используемые во время создания контекста.
byte[] unwrap(byte[] inBuf, int offset, int len, MessageProp msgProp)
Используется для обработки токенов, сгенерированных методом wrap на другой стороне контекста.
void unwrap(InputStream inStream, OutputStream outStream, MessageProp msgProp)
Устарело.
Методы, основанные на потоках, удалены из RFC 8353.
void verifyMIC(byte[] inToken, int tokOffset, int tokLen, byte[] inMsg, int msgOffset, int msgLen, MessageProp msgProp)
Проверяет криптографический MIC, содержащийся в параметре токена, по предоставленному сообщению.
void verifyMIC(InputStream tokStream, InputStream msgStream, MessageProp msgProp)
Устарело.
Методы, основанные на потоках, удалены из RFC 8353.
byte[] wrap(byte[] inBuf, int offset, int len, MessageProp msgProp)
Применяет службы безопасности по сообщениям над созданным контекстом безопасности.
void wrap(InputStream inStream, OutputStream outStream, MessageProp msgProp)
Устарело.
Методы, основанные на потоках, удалены из RFC 8353.

Подробное описание полей

DEFAULT_LIFETIME

static final int DEFAULT_LIFETIME
Константа времени жизни, представляющая стандартное время жизни контекста. Это значение установлено в 0.
См. также:
  • Значения константных полей

INDEFINITE_LIFETIME

static final int INDEFINITE_LIFETIME
Константа времени жизни, представляющая неопределенное время жизни контекста. Это значение должно быть установлено в максимальное целое значение в Java - Integer.MAX_VALUE.
См. также:
  • Значения константных полей

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

initSecContext

byte[] initSecContext(byte[] inputBuf, int offset, int len) throws GSSException
Вызывается инициатором контекста для начала фазы создания контекста и обработки любых токенов, сгенерированных методом acceptSecContext партнёра. Этот метод может вернуть выходной токен, который приложение должно отправить партнёру для обработки его методом acceptSecContext. Приложение может вызвать isEstablished, чтобы определить, завершилась ли фаза установления контекста на этой стороне контекста. Возвращаемое значение false от isEstablished указывает, что ожидаются дополнительные токены для initSecContext. После завершения установления контекста доступные параметры контекста можно запросить с помощью методов get.

Обратите внимание, что метод initSecContext может вернуть токен для партнёра, а isEstablished также вернуть true. Это указывает, что токен необходимо отправить партнёру, но локальный конец контекста теперь полностью установлен.

Параметры:
inputBuf - токен, сгенерированный партнёром. Этот параметр игнорируется при первом вызове, так как токен не был получен от партнёра.
offset - смещение в inputBuf, где начинается токен.
len - длина токена.
Возвращает:
массив байтов, содержащий токен, который необходимо отправить партнёру. null указывает, что токен не генерируется.
Исключение:
GSSException - содержащий следующие основные коды ошибок: GSSException.DEFECTIVE_TOKEN, GSSException.BAD_MIC, GSSException.NO_CRED, GSSException.CREDENTIALS_EXPIRED, GSSException.BAD_BINDINGS, GSSException.OLD_TOKEN, GSSException.DUPLICATE_TOKEN, GSSException.BAD_NAMETYPE, GSSException.BAD_MECH, GSSException.FAILURE

initSecContext

@Deprecated(since="11") int initSecContext(InputStream inStream, OutputStream outStream) throws GSSException
Устарело.
Методы, основанные на потоках, удалены из RFC 8353. Используйте initSecContext(byte[], int, int) вместо этого.
Вызывается инициатором контекста для начала фазы создания контекста и обработки любых токенов, сгенерированных методом acceptSecContext партнёра, с использованием потоков. Этот метод может записать выходной токен в OutpuStream, который приложение должно отправить партнёру для обработки методом acceptSecContext. Обычно приложение гарантирует это, вызвав метод flush на OutputStream, который инкапсулирует соединение между двумя партнёрами. Приложение может определить, был ли токен записан в OutputStream, по возвращаемому значению этого метода. Возвращаемое значение 0 указывает, что токен не был записан. Приложение может вызвать isEstablished, чтобы определить, завершилась ли фаза установления контекста на этой стороне контекста. Возвращаемое значение false от isEstablished указывает, что ожидаются дополнительные токены для initSecContext.

Обратите внимание, что метод initSecContext может вернуть токен для партнёра, а isEstablished также вернуть true. Это указывает, что токен необходимо отправить партнёру, но локальный конец контекста теперь полностью установлен.

Токены аутентификации GSS-API содержат определённое начало и конец. Этот метод будет пытаться прочитать один из этих токенов при каждом вызове и может блокироваться на потоке, если доступна только часть токена. Во всех остальных отношениях этот метод эквивалентен методу на основе массива байтов initSecContext.

Следующий пример кода демонстрирует, как этот метод можно использовать:

     InputStream is ...
     OutputStream os ...
     GSSContext context ...

     // Loop while there is still a token to be processed

     while (!context.isEstablished()) {

         context.initSecContext(is, os);

         // send output token if generated
         os.flush();
     }
 
Параметры:
inStream - InputStream, содержащий токен, сгенерированный партнёром. Этот параметр игнорируется при первом вызове, так как токен не был получен от партнёра на этом этапе.
outStream - OutputStream, в который будет записан выходной токен. На финальном этапе установления контекста байты могут не записываться.
Возвращает:
количество байтов, записанных в OutputStream в качестве части токена, который будет отправлен партнёру. Значение 0 указывает, что токен отправлять не нужно.
Исключение:
GSSException - содержащий следующие основные коды ошибок: GSSException.DEFECTIVE_TOKEN, GSSException.BAD_MIC, GSSException.NO_CRED, GSSException.CREDENTIALS_EXPIRED, GSSException.BAD_BINDINGS, GSSException.OLD_TOKEN, GSSException.DUPLICATE_TOKEN, GSSException.BAD_NAMETYPE, GSSException.BAD_MECH, GSSException.FAILURE

acceptSecContext

byte[] acceptSecContext(byte[] inToken, int offset, int len) throws GSSException
Вызывается приемником контекста при получении токена от партнёра. Этот метод может вернуть выходной токен, который приложение должно отправить партнёру для дальнейшей обработки методом initSecContext.

Приложение может вызвать isEstablished, чтобы определить, завершилась ли фаза установления контекста для этого партнёра. Возвращаемое значение false от isEstablished указывает, что ожидаются дополнительные токены для этого метода. После завершения установления контекста доступные параметры контекста можно запросить с помощью методов get.

Обратите внимание, что acceptSecContext может вернуть токен для партнёра, а isEstablished также вернуть true. Это указывает, что токен необходимо отправить партнёру, но локальный конец контекста теперь полностью установлен.

Следующий пример кода демонстрирует, как этот метод можно использовать:

     byte[] inToken;
     byte[] outToken;
     GSSContext context ...

     // Loop while there is still a token to be processed

     while (!context.isEstablished()) {
         inToken = readToken();
         outToken = context.acceptSecContext(inToken, 0,
                                             inToken.length);
         // send output token if generated
         if (outToken != null)
             sendToken(outToken);
     }
 
Параметры:
inToken - токен, сгенерированный партнёром.
offset - смещение в inToken, где начинается токен.
len - длина токена.
Возвращает:
массив байтов, содержащий токен, который необходимо отправить партнёру. null указывает, что токен не генерируется.
Исключение:
GSSException - содержащий следующие основные коды ошибок: GSSException.DEFECTIVE_TOKEN, GSSException.BAD_MIC, GSSException.NO_CRED, GSSException.CREDENTIALS_EXPIRED, GSSException.BAD_BINDINGS, GSSException.OLD_TOKEN, GSSException.DUPLICATE_TOKEN, GSSException.BAD_MECH, GSSException.FAILURE

acceptSecContext

@Deprecated(since="11") void acceptSecContext(InputStream inStream, OutputStream outStream) throws GSSException
Устарело.
Методы на основе потоков удалены из RFC 8353. Используйте acceptSecContext(byte[], int, int) вместо этого.
Вызывается приемником контекста для обработки маркера от участника с помощью потоков. Он может записать маркер вывода в OutputStream, который приложение должно отправить участнику для обработки его методом initSecContext. Как правило, приложение гарантирует это, вызвав метод flush для OutputStream, который инкапсулирует соединение между двумя участниками. Приложение может вызвать isEstablished, чтобы определить, завершилась ли фаза установления контекста с этой стороны контекста. Возвращаемое значение false из isEstablished указывает, что ожидается больше маркеров, которые должны быть предоставлены acceptSecContext. После завершения установления контекста доступные параметры контекста могут быть запрошены с помощью методов get.

Обратите внимание, что acceptSecContext может вернуть маркер для участника, а isEstablished вернуть true также. Это указывает на то, что маркер нужно отправить участнику, но локальная часть контекста теперь полностью установлена.

Токены аутентификации GSS-API содержат определённый начальный и конечный маркер. Этот метод попытается прочитать один из этих маркеров за вызов и может заблокироваться на потоке, если доступна только часть маркера. Во всех других отношениях этот метод эквивалентен методу на основе массива байтов acceptSecContext.

Следующий пример кода демонстрирует, как можно использовать этот метод:

     InputStream is ...
     OutputStream os ...
     GSSContext context ...

     // Loop while there is still a token to be processed

     while (!context.isEstablished()) {

         context.acceptSecContext(is, os);

         // send output token if generated
         os.flush();
     }
 
Параметры:
inStream - поток ввода, содержащий маркер, сгенерированный участником.
outStream - поток вывода, куда будет записан маркер вывода. На заключительном этапе установления контекста, возможно, не будет записано никаких байтов.
Исключения:
GSSException - содержащий следующие основные коды ошибок: GSSException.DEFECTIVE_TOKEN, GSSException.BAD_MIC, GSSException.NO_CRED, GSSException.CREDENTIALS_EXPIRED, GSSException.BAD_BINDINGS, GSSException.OLD_TOKEN, GSSException.DUPLICATE_TOKEN, GSSException.BAD_MECH, GSSException.FAILURE

isEstablished

boolean isEstablished()
Используется во время установления контекста для определения состояния контекста.
Возвращает:
true, если это полностью установленный контекст на стороне вызывающего метода и от участника больше не требуются маркеры.

dispose

void dispose() throws GSSException
Освобождает любые системные ресурсы и криптографическую информацию, хранящиеся в объекте контекста, и делает контекст недоступным.
Исключения:
GSSException - содержащий следующие основные коды ошибок: GSSException.FAILURE

getWrapSizeLimit

int getWrapSizeLimit(int qop, boolean confReq, int maxTokenSize) throws GSSException
Используется для определения ограничений на размер сообщения, которое можно передать методу wrap. Возвращает максимальный размер сообщения, который, если будет представлен методу wrap с теми же параметрами confReq и qop, приведет к маркеру вывода, содержащему не более maxTokenSize байтов.

Этот вызов предназначен для использования приложениями, которые взаимодействуют по протоколам, которые устанавливают максимальный размер сообщения. Он позволяет приложению фрагментировать сообщения до применения защиты.

Реализация GSS-API рекомендуется, но не является обязательной для обнаружения недопустимых значений QOP при вызове getWrapSizeLimit. Эта процедура гарантирует только максимальный размер сообщения, а не доступность определенных значений QOP для защиты сообщения.

Параметры:
qop - уровень защиты, который будет предоставлен wrap.
confReq - true, если wrap будет запрашивать конфиденциальность, false в противном случае.
maxTokenSize - желаемый максимальный размер маркера, выпущенного wrap.
Возвращает:
максимальный размер входного маркера для данного размера маркера вывода
Исключения:
GSSException - содержащий следующие основные коды ошибок: GSSException.CONTEXT_EXPIRED, GSSException.BAD_QOP, GSSException.FAILURE

wrap

byte[] wrap(byte[] inBuf, int offset, int len, MessageProp msgProp) throws GSSException
Применяет службы безопасности на сообщение в рамках установленного контекста безопасности. Метод вернет маркер с предоставленными приложением данными и криптографическим MIC над ними. Данные могут быть зашифрованы, если была запрошена конфиденциальность (приватность).

Объект MessageProp создается приложением и используется для указания значения QOP, которое выбирает криптографические алгоритмы, и сервиса приватности для необязательного шифрования сообщения. Базовый механизм, который используется в вызове, может не быть способен предоставить сервис приватности. Он устанавливает фактический сервис приватности, который он предоставляет, в этом объекте MessageProp, который вызывающий метод должен запросить после возврата. Если механизм не может предоставить запрошенный QOP, он генерирует исключение GSSException с кодом BAD_QOP.

Поскольку некоторые протоколы на уровне приложения могут захотеть использовать маркеры, выпущенные wrap, для обеспечения "безопасного фреймирования", реализации должны поддерживать обертку сообщений нулевой длины.

Приложение будет отвечать за отправку маркера участнику.

Параметры:
inBuf - данные приложения, которые необходимо защитить.
offset - смещение в inBuf, где начинаются данные.
len - длина данных
msgProp - экземпляр MessageProp, используемый приложением для установки желаемого QOP и состояния приватности. Установите желаемый QOP в 0, чтобы запросить стандартный QOP. После возврата из этого метода этот объект будет содержать фактическое состояние приватности, которое было применено к сообщению базовым механизмом.
Возвращает:
массив байтов, содержащий маркер, который необходимо отправить участнику.
Исключения:
GSSException - содержащий следующие основные коды ошибок: GSSException.CONTEXT_EXPIRED, GSSException.BAD_QOP, GSSException.FAILURE

wrap

@Deprecated(since="11") void wrap(InputStream inStream, OutputStream outStream, MessageProp msgProp) throws GSSException
Устарело.
Методы на основе потоков удалены из RFC 8353. Используйте wrap(byte[], int, int, MessageProp) вместо этого.
Применяет службы безопасности на сообщение в рамках установленного контекста безопасности с использованием потоков. Метод вернет маркер с предоставленными приложением данными и криптографическим MIC над ними. Данные могут быть зашифрованы, если была запрошена конфиденциальность (приватность). Этот метод эквивалентен методу wrap на основе массива байтов.

Приложение будет отвечать за отправку маркера участнику. Обычно приложение гарантирует это, вызвав метод flush для OutputStream, который инкапсулирует соединение между двумя участниками.

Объект MessageProp создается приложением и используется для указания значения QOP, которое выбирает криптографические алгоритмы, и сервиса приватности для необязательного шифрования сообщения. Базовый механизм, который используется в вызове, может не быть способен предоставить сервис приватности. Он устанавливает фактический сервис приватности, который он предоставляет, в этом объекте MessageProp, который вызывающий метод должен запросить после возврата. Если механизм не может предоставить запрошенный QOP, он генерирует исключение GSSException с кодом BAD_QOP.

Поскольку некоторые протоколы на уровне приложения могут захотеть использовать маркеры, выпущенные wrap, для обеспечения "безопасного фреймирования", реализации должны поддерживать обертку сообщений нулевой длины.

Параметры:
inStream - поток ввода, содержащий данные приложения, которые необходимо защитить. Используются все доступные данные в inStream.
outStream - поток вывода для записи защищенного сообщения.
msgProp - экземпляр MessageProp, используемый приложением для установки желаемого QOP и состояния приватности. Установите желаемый QOP в 0, чтобы запросить стандартный QOP. После возврата из этого метода этот объект будет содержать фактическое состояние приватности, которое было применено к сообщению базовым механизмом.
Исключения:
GSSException - содержащий следующие основные коды ошибок: GSSException.CONTEXT_EXPIRED, GSSException.BAD_QOP, GSSException.FAILURE

распаковать

byte[] unwrap(byte[] inBuf, int offset, int len, MessageProp msgProp) throws GSSException
Используется для обработки токенов, сгенерированных методом wrap на другой стороне контекста. Метод вернёт сообщение, предоставленное приложением-партнёром вызову wrap, одновременно проверяя встроенный MIC этого сообщения.

Объект MessageProp создаётся приложением и используется внутренней механикой для возвращения информации вызывающей стороне, такой как QOP, применяется ли конфиденциальность к сообщению и другая дополнительная информация о состоянии сообщения.

Поскольку некоторые протоколы прикладного уровня могут использовать токены, выпущенные wrap, для обеспечения «безопасной рамочной структуры», реализации должны поддерживать упаковку и распаковку сообщений нулевой длины.

Параметры:
inBuf - массив байтов, содержащий токен wrap, полученный от партнёра.
offset - смещение, где начинается токен.
len - длина токена
msgProp - по возвращении из метода этот объект будет содержать применённый QOP, состояние конфиденциальности сообщения и дополнительную информацию о том, был ли токен дубликатом, устаревшим, вне последовательности или прибыл после разрыва.
Возвращает:
массив байтов byte[] содержащий распакованное сообщение из входного токена.
Исключения:
GSSException - содержащий следующие основные коды ошибок: GSSException.DEFECTIVE_TOKEN, GSSException.BAD_MIC, GSSException.CONTEXT_EXPIRED, GSSException.FAILURE

распаковать

@Deprecated(since="11") void unwrap(InputStream inStream, OutputStream outStream, MessageProp msgProp) throws GSSException
Устарело.
Методы, основанные на потоках, удалены из RFC 8353. Используйте unwrap(byte[], int, int, MessageProp) вместо этого.
Использует потоки для обработки токенов, сгенерированных методом wrap на другой стороне контекста. Метод вернёт сообщение, предоставленное приложением-партнёром вызову wrap, одновременно проверяя встроенный MIC этого сообщения.

Объект MessageProp создаётся приложением и используется внутренней механикой для возвращения информации вызывающей стороне, такой как QOP, применяется ли конфиденциальность к сообщению и другая дополнительная информация о состоянии сообщения.

Поскольку некоторые протоколы прикладного уровня могут использовать токены, выпущенные wrap, для обеспечения «безопасной рамочной структуры», реализации должны поддерживать упаковку и распаковку сообщений нулевой длины.

Формат входного токена, который считывает этот метод, определён в спецификации для внутренней механики, которая будет использоваться. Этот метод попытается прочитать один из этих токенов на каждый вызов. Если токен механики содержит определённый начальный и конечный точки, этот метод может блокироваться на InputStream, если доступна только часть токена. Если начальная и конечная точки токена не определены, метод попытается обработать все доступные байты как часть токена.

Помимо возможного блокирующего поведения, описанного выше, этот метод эквивалентен методу на основе массива байтов unwrap.

Параметры:
inStream - входной поток InputStream, содержащий токен wrap, сгенерированный партнёром.
outStream - выходной поток OutputStream для записи сообщения приложения.
msgProp - по возвращении из метода этот объект будет содержать применённый QOP, состояние конфиденциальности сообщения и дополнительную информацию о том, был ли токен дубликатом, устаревшим, вне последовательности или прибыл после разрыва.
Исключения:
GSSException - содержащий следующие основные коды ошибок: GSSException.DEFECTIVE_TOKEN, GSSException.BAD_MIC, GSSException.CONTEXT_EXPIRED, GSSException.FAILURE

getMIC

byte[] getMIC(byte[] inMsg, int offset, int len, MessageProp msgProp) throws GSSException
Возвращает токен, содержащий криптографический код целостности сообщения (MIC) для предоставленного сообщения для передачи приложению-партнёру. В отличие от wrap, который инкапсулирует сообщение пользователя в возвращаемом токене, в выходном токене возвращается только MIC сообщения.

Обратите внимание, что конфиденциальность может быть применена только через вызов wrap.

Поскольку некоторые протоколы прикладного уровня могут использовать токены, выпущенные getMIC, для обеспечения «безопасной рамочной структуры», реализации должны поддерживать вычисление MIC из сообщений нулевой длины.

Параметры:
inMsg - сообщение, для которого необходимо сгенерировать MIC.
offset - смещение в inMsg, где начинается сообщение.
len - длина сообщения
msgProp - экземпляр MessageProp, используемый приложением для установки желаемого QOP. Установите желаемый QOP в 0 в msgProp, чтобы запросить QOP по умолчанию. В противном случае передайте null для msgProp, чтобы запросить QOP по умолчанию.
Возвращает:
массив байтов byte[] содержащий токен для отправки партнёру.
Исключения:
GSSException - содержащий следующие основные коды ошибок: GSSException.CONTEXT_EXPIRED, GSSException.BAD_QOP, GSSException.FAILURE

getMIC

@Deprecated(since="11") void getMIC(InputStream inStream, OutputStream outStream, MessageProp msgProp) throws GSSException
Устарело.
Методы, основанные на потоках, удалены из RFC 8353. Используйте getMIC(byte[], int, int, MessageProp) вместо этого.
Использует потоки для создания токена, содержащего криптографический MIC для предоставленного сообщения, для передачи приложению-партнёру. В отличие от wrap, который инкапсулирует сообщение пользователя в возвращаемом токене, в выходном токене вычисляется только MIC сообщения. Этот метод эквивалентен методу на основе массива байтов getMIC. Обратите внимание, что конфиденциальность может быть применена только через вызов wrap.

Поскольку некоторые протоколы прикладного уровня могут использовать токены, выпущенные getMIC, для обеспечения «безопасной рамочной структуры», реализации должны поддерживать вычисление MIC из сообщений нулевой длины.

Параметры:
inStream - входной поток InputStream, содержащий сообщение для вычисления MIC. Используются все данные, доступные в inStream.
outStream - выходной поток OutputStream для записи выходного токена.
msgProp - экземпляр MessageProp, используемый приложением для установки желаемого QOP. Установите желаемый QOP в 0 в msgProp, чтобы запросить QOP по умолчанию. В противном случае передайте null для msgProp, чтобы запросить QOP по умолчанию.
Исключения:
GSSException - содержащий следующие основные коды ошибок: GSSException.CONTEXT_EXPIRED, GSSException.BAD_QOP, GSSException.FAILURE

проверитьMIC

void verifyMIC(byte[] inToken, int tokOffset, int tokLen, byte[] inMsg, int msgOffset, int msgLen, MessageProp msgProp) throws GSSException
Проверяет криптографический MIC, содержащийся в параметре token, над предоставленным сообщением.

Объект MessageProp создаётся приложением и используется внутренней механикой для возвращения информации вызывающей стороне, такой как QOP, указывающий на уровень защиты, применённый к сообщению, и другую дополнительную информацию о состоянии сообщения.

Поскольку некоторые протоколы прикладного уровня могут использовать токены, выпущенные getMIC, для обеспечения «безопасной рамочной структуры», реализации должны поддерживать вычисление и проверку MIC для сообщений нулевой длины.

Параметры:
inToken - токен, сгенерированный методом getMIC партнёра.
tokOffset - смещение в inToken, где начинается токен.
tokLen - длина токена.
inMsg - сообщение приложения для проверки криптографического MIC.
msgOffset - смещение в inMsg, где начинается сообщение.
msgLen - длина сообщения.
msgProp - по возвращении из метода этот объект будет содержать применённый QOP и дополнительную информацию о том, был ли токен дубликатом, устаревшим, вне последовательности или прибыл после разрыва.
Исключения:
GSSException - содержащий следующие основные коды ошибок: GSSException.DEFECTIVE_TOKEN GSSException.BAD_MIC GSSException.CONTEXT_EXPIRED GSSException.FAILURE

verifyMIC

@Deprecated(since="11") void verifyMIC(InputStream tokStream, InputStream msgStream, MessageProp msgProp) throws GSSException
Устаревший.
Методы, основанные на потоках, удалены из RFC 8353. Используйте verifyMIC(byte[], int, int, byte[], int, int, MessageProp) вместо этого.
Использует потоки для проверки криптографического MIC, содержащегося в параметре token, по предоставленному сообщению. Этот метод эквивалентен методу verifyMIC, основанному на массиве байтов. Объект MessageProp создаётся приложением и используется базовым механизмом для возвращения информации вызывающей стороне, такой как QOP, указывающий уровень защиты, применённой к сообщению, и другую дополнительную информацию о состоянии сообщения.

Поскольку некоторые протоколы прикладного уровня могут использовать токены, выпущенные методом getMIC, для обеспечения «безопасной рамки», реализации должны поддерживать вычисление и проверку MIC для сообщений нулевой длины.

Формат входного токена, который считывает этот метод, определён в спецификации для базового механизма, который будет использован. Этот метод попытается прочитать один из этих токенов за один вызов. Если токен механизма содержит чёткое начало и конец, этот метод может блокироваться на InputStream, если доступна только часть токена. Если начало и конец токена не определены, метод попытается обработать все доступные байты как часть токена.

Помимо возможного блокирующего поведения, описанного выше, этот метод эквивалентен методу verifyMIC, основанному на массиве байтов.

Parameters:
tokStream - поток InputStream, содержащий токен, сгенерированный методом getMIC со стороны партнёра.
msgStream - поток InputStream, содержащий прикладное сообщение для проверки криптографического MIC. Используются все доступные данные в msgStream.
msgProp - по возвращении из метода, этот объект будет содержать применённый QOP и дополнительную информацию, указывающую, был ли токен дубликатом, старым, вне последовательности или прибыл после разрыва.
Throws:
GSSException - содержащий следующие основные коды ошибок: GSSException.DEFECTIVE_TOKEN GSSException.BAD_MIC GSSException.CONTEXT_EXPIRED GSSException.FAILURE

export

byte[] export() throws GSSException
Экспортирует этот контекст, чтобы другой процесс смог его импортировать. Предоставляется для поддержки совместной работы между несколькими процессами. Обычно эта процедура используется контекстно-акцептором в приложениях, где один процесс получает входящие запросы подключения и принимает контексты безопасности по ним, а затем передает установленный контекст одному или нескольким другим процессам для обмена сообщениями.

Этот метод деактивирует контекст безопасности и создаёт межпроцессный токен, который, при передаче в GSSManager.createContext в другом процессе, повторно активирует контекст во втором процессе. Только одна инстанция заданного контекста может быть активной в любой момент времени; последующая попытка экспортера контекста получить доступ к экспортированному контексту безопасности завершится ошибкой.

Реализация может ограничивать набор процессов, посредством которых межпроцессный токен может быть импортирован, либо в зависимости от локальной политики безопасности, либо в результате решений реализации. Например, некоторые реализации могут ограничить контексты передачей только между процессами, работающими под одной учётной записью или входящими в одну группу процессов.

Межпроцессный токен может содержать конфиденциальную информацию (например, криптографические ключи). Хотя механизмы рекомендуются для избегания размещения такой конфиденциальной информации в межпроцессных токенах или для шифрования токена перед возвращением его приложению, в типовой реализации GSS-API это может быть невозможно. Таким образом, приложение должно позаботиться о защите межпроцессного токена и убедиться, что любой процесс, которому передаётся токен, является надёжным.

Реализации не обязаны поддерживать межпроцессную передачу контекстов безопасности. Вызов метода isTransferable укажет, может ли объект контекста передаваться.

Вызов этого метода для контекста, который нельзя экспортировать, приведёт к тому, что будет выброшено это исключение с кодом ошибки GSSException.UNAVAILABLE.

Returns:
массив байтов byte[] содержащий экспортированный контекст
Throws:
GSSException - содержащий следующие основные коды ошибок: GSSException.UNAVAILABLE, GSSException.CONTEXT_EXPIRED, GSSException.NO_CONTEXT, GSSException.FAILURE
See Also:
  • GSSManager.createContext(byte[])

requestMutualAuth

void requestMutualAuth(boolean state) throws GSSException
Запрашивает выполнение взаимной аутентификации во время создания контекста. Этот запрос может быть сделан только со стороны инициатора контекста и должен быть выполнен до первого вызова initSecContext.

Не все механизмы поддерживают взаимную аутентификацию, и некоторые механизмы могут потребовать взаимной аутентификации даже если приложение этого не запрашивает. Поэтому приложение должно проверить, был ли запрос удовлетворён методом getMutualAuthState.

Parameters:
state - булево значение, указывающее, должна ли использоваться взаимная аутентификация или нет.
Throws:
GSSException - содержащий следующие основные коды ошибок: GSSException.FAILURE
See Also:
  • getMutualAuthState()

requestReplayDet

void requestReplayDet(boolean state) throws GSSException
Запрашивает включение обнаружения повторов для служб безопасности на уровне каждого сообщения после создания контекста. Этот запрос может быть сделан только со стороны инициатора контекста и должен быть выполнен до первого вызова initSecContext. Во время создания контекста обнаружение повторов не является опцией и является функцией возможностей базового механизма.

Не все механизмы поддерживают обнаружение повторов, и некоторые механизмы могут потребовать обнаружения повторов, даже если приложение этого не запрашивает. Поэтому приложение должно проверить, был ли запрос удовлетворён методом getReplayDetState. Если обнаружение повторов включено, то методы MessageProp.isDuplicateToken и MessageProp.isOldToken вернут корректные результаты для объекта MessageProp, который передаётся методу unwrap или методу verifyMIC.

Parameters:
state - булево значение, указывающее, должно ли быть включено обнаружение повторов для установленного контекста или нет.
Throws:
GSSException - содержащий следующие основные коды ошибок: GSSException.FAILURE
See Also:
  • getReplayDetState()

requestSequenceDet

void requestSequenceDet(boolean state) throws GSSException
Запрашивает включение проверки последовательности для служб безопасности на уровне каждого сообщения после создания контекста. Этот запрос может быть сделан только со стороны инициатора контекста и должен быть выполнен до первого вызова initSecContext. Во время создания контекста проверка последовательности не является опцией и зависит от возможностей базового механизма.

Не все механизмы поддерживают проверку последовательности, и некоторые механизмы могут потребовать проверки последовательности, даже если приложение этого не запрашивает. Поэтому приложение должно проверить, был ли запрос удовлетворён методом getSequenceDetState. Если проверка последовательности включена, то методы MessageProp.isDuplicateToken, MessageProp.isOldToken, MessageProp.isUnseqToken и MessageProp.isGapToken вернут корректные результаты для объекта MessageProp, который передаётся методу unwrap или методу verifyMIC.

Parameters:
state - булево значение, указывающее, должна ли быть включена проверка последовательности для установленного контекста или нет.
Throws:
GSSException - содержащий следующие основные коды ошибок: GSSException.FAILURE
See Also:
  • getSequenceDetState()

requestCredDeleg

void requestCredDeleg(boolean state) throws GSSException
Запрашивает делегирование учётных данных инициатора акцептору во время создания контекста. Этот запрос может быть сделан только со стороны инициатора контекста и должен быть выполнен до первого вызова initSecContext. Не все механизмы поддерживают делегирование учётных данных. Поэтому приложение, которое желает делегирования, должно проверить, был ли запрос удовлетворён методом getCredDelegState. Если приложение указывает, что делегирование не должно использоваться, то механизм выполнит запрос, и делегирование не произойдёт. Это исключение из общего правила, что механизм может включить службу даже если она не запрошена.
Parameters:
state - булево значение, указывающее, должны ли учётные данные быть делегированы или нет.
Throws:
GSSException - содержащий следующие основные коды ошибок: GSSException.FAILURE
See Also:
  • getCredDelegState()

requestAnonymity

void requestAnonymity(boolean state) throws GSSException
Запрашивает, чтобы идентификатор инициатора не был раскрыт акцептору. Этот запрос может быть выполнен только со стороны инициатора контекста и должен быть выполнен до первого вызова initSecContext. Не все механизмы поддерживают анонимность для инициатора. Поэтому приложение должно проверить, был ли запрос удовлетворён с помощью метода getAnonymityState.
Parameters:
state - логическое значение, указывающее, должен ли инициатор быть аутентифицирован у акцептора как анонимный субъект.
Throws:
GSSException - содержащий следующие основные коды ошибок: GSSException.FAILURE
See Also:
  • getAnonymityState()

requestConf

void requestConf(boolean state) throws GSSException
Запрашивает включение конфиденциальности данных для метода wrap. Этот запрос может быть выполнен только со стороны инициатора контекста и должен быть выполнен до первого вызова initSecContext. Не все механизмы поддерживают конфиденциальность, и другие механизмы могут включить её даже если приложение не запрашивает этого. Приложение может проверить, был ли запрос удовлетворён с помощью метода getConfState. Если конфиденциальность включена, только тогда механизм удовлетворит запрос на конфиденциальность в объекте MessageProp, который передаётся в метод wrap.

Включение конфиденциальности также автоматически включает целостность.

Parameters:
state - логическое значение, указывающее, нужно ли включать конфиденциальность.
Throws:
GSSException - содержащий следующие основные коды ошибок: GSSException.FAILURE
See Also:
  • getConfState()
  • getIntegState()
  • requestInteg(boolean)
  • MessageProp

requestInteg

void requestInteg(boolean state) throws GSSException
Запрашивает включение целостности данных для методов wrap и getMIC. Этот запрос может быть выполнен только со стороны инициатора контекста и должен быть выполнен до первого вызова initSecContext. Не все механизмы поддерживают целостность, и другие механизмы могут включить её даже если приложение не запрашивает этого. Приложение может проверить, был ли запрос удовлетворён с помощью метода getIntegState.

Отключение целостности также автоматически отключит конфиденциальность.

Parameters:
state - логическое значение, указывающее, нужно ли включать целостность.
Throws:
GSSException - содержащий следующие основные коды ошибок: GSSException.FAILURE
See Also:
  • getIntegState()

requestLifetime

void requestLifetime(int lifetime) throws GSSException
Запрашивает срок действия контекста в секундах. Этот метод может быть вызван только со стороны инициатора контекста и должен быть вызван до первого вызова initSecContext.

Фактический срок действия контекста будет зависеть от возможностей базового механизма, и приложение должно вызвать метод getLifetime для определения этого.

Parameters:
lifetime - желаемый срок действия контекста в секундах. Используйте INDEFINITE_LIFETIME для запроса неопределённого срока действия и DEFAULT_LIFETIME для запроса срока действия по умолчанию.
Throws:
GSSException - содержащий следующие основные коды ошибок: GSSException.FAILURE
See Also:
  • getLifetime()

setChannelBinding

void setChannelBinding(ChannelBinding cb) throws GSSException
Устанавливает канальные привязки, которые будут использоваться во время создания контекста. Этот метод может быть вызван как со стороны инициатора, так и со стороны акцептора контекста, но он должен быть вызван до начала установления контекста. Это означает, что инициатор должен вызвать его до первого вызова initSecContext, а акцептор — до первого вызова acceptSecContext.
Parameters:
cb - используемые канальные привязки.
Throws:
GSSException - содержащий следующие основные коды ошибок: GSSException.FAILURE

getCredDelegState

boolean getCredDelegState()
Определяет, включена ли делегация учетных данных в этом контексте. Его могут вызвать как инициатор, так и акцептор контекста. Для окончательного ответа этот метод должен быть вызван только после завершения установления контекста. Обратите внимание, что если инициатор запросит, чтобы делегация не была разрешена, метод requestCredDeleg выполнит этот запрос, и этот метод вернёт false со стороны инициатора с этого момента.
Returns:
true, если делегация включена, false в противном случае.
See Also:
  • requestCredDeleg(boolean)

getMutualAuthState

boolean getMutualAuthState()
Определяет, включена ли взаимная аутентификация в этом контексте. Его могут вызвать как инициатор, так и акцептор контекста. Для окончательного ответа этот метод должен быть вызван только после завершения установления контекста. Инициатор, который запрашивает взаимную аутентификацию, может вызвать этот метод после завершения контекста и удалить контекст, если его запрос не был удовлетворён.
Returns:
true, если взаимная аутентификация включена, false в противном случае.
See Also:
  • requestMutualAuth(boolean)

getReplayDetState

boolean getReplayDetState()
Определяет, включена ли проверка повторов для служб безопасности на уровне отдельных сообщений из этого контекста. Его могут вызвать как инициатор, так и акцептор контекста. Для окончательного ответа этот метод должен быть вызван только после завершения установления контекста. Инициатор, который запрашивает проверку повторов, может вызвать этот метод после завершения контекста и удалить контекст, если его запрос не был удовлетворён.
Returns:
true, если проверка повторов включена, false в противном случае.
See Also:
  • requestReplayDet(boolean)

getSequenceDetState

boolean getSequenceDetState()
Определяет, включена ли проверка последовательности для служб безопасности на уровне отдельных сообщений из этого контекста. Его могут вызвать как инициатор, так и акцептор контекста. Для окончательного ответа этот метод должен быть вызван только после завершения установления контекста. Инициатор, который запрашивает проверку последовательности, может вызвать этот метод после завершения контекста и удалить контекст, если его запрос не был удовлетворён.
Returns:
true, если проверка последовательности включена, false в противном случае.
See Also:
  • requestSequenceDet(boolean)

getAnonymityState

boolean getAnonymityState()
Определяет, аутентифицирован ли инициатор контекста анонимно для акцептора контекста. Его могут вызвать как инициатор, так и акцептор контекста в любое время. Со стороны инициатора вызов этого метода определяет, была ли раскрыта личность инициатора в каких-либо токенах установления контекста, которые могли быть сгенерированы до сих пор initSecContext. Инициатор, который должен быть аутентифицирован анонимно, должен вызвать этот метод после каждого вызова initSecContext, чтобы определить, следует ли отправлять сгенерированный токен партнёру или прервать контекст. Со стороны акцептора, вызов этого метода определяет, раскрыла ли какая-либо из обработанных токенов acceptSecContext личность инициатора до настоящего момента.
Returns:
true, если инициатор контекста всё ещё анонимен, false в противном случае.
See Also:
  • requestAnonymity(boolean)

isTransferable

boolean isTransferable() throws GSSException
Определяет, может ли контекст быть передан другим процессам с помощью метода export. Этот вызов допустим только для полностью установленных контекстов.
Returns:
true, если этот контекст может быть экспортирован, false в противном случае.
Throws:
GSSException - содержащий следующие основные коды ошибок: GSSException.FAILURE

isProtReady

boolean isProtReady()
Определяет, готов ли контекст к использованию операций на уровне отдельных сообщений над ним. Некоторые механизмы могут разрешать использование операций на уровне отдельных сообщений до полного установления контекста.
Returns:
true, если методы, такие как wrap, unwrap, getMIC и verifyMIC, могут быть использованы с этим контекстом на текущей стадии установления контекста, false в противном случае.
END_OF_DOCUMENT_MARKER

getConfState

boolean getConfState()
Определяет, доступна ли конфиденциальность данных в контексте. Этот метод может быть вызван как инициатором контекста, так и приемником контекста, но только после того, как один из isProtReady или isEstablished вернёт true. Если этот метод возвращает true, то и getIntegState вернёт то же самое.
Returns:
true, если услуги конфиденциальности доступны, false — в противном случае.
See Also:
  • requestConf(boolean)

getIntegState

boolean getIntegState()
Определяет, доступна ли целостность данных в контексте. Этот метод может быть вызван как инициатором контекста, так и приемником контекста, но только после того, как один из isProtReady или isEstablished вернёт true. Этот метод всегда вернёт true, если getConfState возвращает true.
Returns:
true, если услуги целостности доступны, false — в противном случае.
See Also:
  • requestInteg(boolean)

getLifetime

int getLifetime()
Определяет оставшийся срок действия этого контекста. Его можно вызывать как инициатором контекста, так и приемником контекста, но для получения окончательного ответа его следует вызывать только после того, как isEstablished вернёт true.
Returns:
оставшийся срок действия в секундах
See Also:
  • requestLifetime(int)

getSrcName

GSSName getSrcName() throws GSSException
Возвращает имя инициатора контекста. Этот вызов допустим только после того, как один из isProtReady или isEstablished вернёт true.
Returns:
GSSName, являющийся MN, содержащий имя инициатора контекста.
Throws:
GSSException — содержащий следующие основные коды ошибок: GSSException.FAILURE
See Also:
  • GSSName

getTargName

GSSName getTargName() throws GSSException
Возвращает имя приемника контекста. Этот вызов допустим только после того, как один из isProtReady или isEstablished вернёт true.
Returns:
GSSName, являющийся MN, содержащий имя приемника контекста.
Throws:
GSSException — содержащий следующие основные коды ошибок: GSSException.FAILURE

getMech

Oid getMech() throws GSSException
Определяет, какой механизм используется для этого контекста. Этот метод может быть вызван до полного установления контекста, но возвращаемый механизм может меняться при последующих вызовах в случае согласованного механизма.
Returns:
Oid используемого механизма
Throws:
GSSException — содержащий следующие основные коды ошибок: GSSException.FAILURE

getDelegCred

GSSCredential getDelegCred() throws GSSException
Получает учётные данные, делегированные инициатором контекста приемнику контекста. Его следует вызывать только со стороны приемника контекста и после полного установления контекста. Вызывающий метод может использовать метод getCredDelegState для определения наличия делегированных учётных данных.
Returns:
GSSCredential, содержащий делегированные учётные данные инициатора, или null, если делегированные учётные данные отсутствуют.
Throws:
GSSException — содержащий следующие основные коды ошибок: GSSException.FAILURE

isInitiator

boolean isInitiator() throws GSSException
Определяет, является ли это инициатором контекста. Его можно вызывать как со стороны инициатора контекста, так и со стороны приемника контекста.
Returns:
true, если это инициатор контекста, false — если это приемник контекста.
Throws:
GSSException — содержащий следующие основные коды ошибок: GSSException.FAILURE

© 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/org/ietf/jgss/GSSContext.html

Spec-Zone.ru

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