Spec-Zone.ru › OpenJDK 25

Интерфейс GSSContext

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

Если вызывающий объект создает экземпляр контекста с помощью экземпляра GSSManager по умолчанию, для установления контекста гарантированно будет доступен механизм Kerberos v5 GSS-API. Этот механизм идентифицируется 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: Generic Security Service API Version 2: Java Bindings Update по следующим причинам (см. раздел 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. После завершения установления контекста доступные параметры контекста можно запросить с помощью методов получения значений.

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

Параметры:
inputBuf — токен, созданный узлом-участником. Этот параметр игнорируется при первом вызове, поскольку токен от узла-участника ещё не получен.
offset — смещение в inputBuf, с которого начинается токен.
len — длина токена.
Возвращает:
массив byte[], содержащий токен для отправки узлу-участнику. Значение 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 означает, что ожидается получение дополнительных токенов этим методом. После завершения установления контекста доступные параметры контекста можно запросить с помощью методов получения значений.

Обратите внимание, что 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 — длина токена.
Возвращает:
массив byte[], содержащий токен для отправки узлу-участнику. Значение 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. После завершения установления контекста доступные параметры контекста можно запросить с помощью методов получения значений.

Обратите внимание, что 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 — InputStream, содержащий токен, созданный узлом-участником.
outStream — OutputStream, в который будет записан выходной токен. На заключительном этапе установления контекста байты могут не записываться.
Исключения:
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 по умолчанию, задайте требуемое значение QOP равным 0. После возврата из этого метода объект будет содержать фактическое состояние конфиденциальности, применённое механизмом к сообщению.
Возвращает:
массив byte[], содержащий токен для отправки узлу-участнику.
Исключения:
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 — InputStream, содержащий данные приложения, подлежащие защите. Используются все доступные данные из inStream.
outStream — OutputStream для записи защищённого сообщения.
msgProp — экземпляр MessageProp, используемый приложением для задания требуемых значений QOP и состояния конфиденциальности. Чтобы запросить значение QOP по умолчанию, задайте требуемое значение QOP равным 0. После возврата из этого метода объект будет содержать фактическое состояние конфиденциальности, применённое механизмом к сообщению.
Исключения:
GSSException — содержит следующие основные коды ошибок: GSSException.CONTEXT_EXPIRED, GSSException.BAD_QOP, GSSException.FAILURE

unwrap

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

unwrap

@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 по умолчанию, задайте требуемое значение QOP равным 0 в msgProp. Также для запроса значения QOP по умолчанию можно передать null для msgProp.
Возвращает:
массив 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 по умолчанию, задайте требуемое значение QOP равным 0 в msgProp. Также для запроса значения QOP по умолчанию можно передать null для msgProp.
Исключения:
GSSException — содержит следующие основные коды ошибок: GSSException.CONTEXT_EXPIRED, GSSException.BAD_QOP, GSSException.FAILURE

verifyMIC

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.

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

export

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

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

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

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

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

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

Возвращает:
массив byte[], содержащий экспортированный контекст
Исключения:
GSSException — содержит следующие основные коды ошибок: GSSException.UNAVAILABLE, GSSException.CONTEXT_EXPIRED, GSSException.NO_CONTEXT, GSSException.FAILURE
См. также:
  • GSSManager.createContext(byte[])

requestMutualAuth

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

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

Параметры:
state — логическое значение, указывающее, следует ли использовать взаимную аутентификацию.
Исключения:
GSSException — содержит следующий основной код ошибки: GSSException.FAILURE
См. также:
  • getMutualAuthState()

requestReplayDet

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

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

Параметры:
state — логическое значение, указывающее, следует ли включить обнаружение повторов для установленного контекста.
Исключения:
GSSException — содержит следующий основной код ошибки: GSSException.FAILURE
См. также:
  • getReplayDetState()

requestSequenceDet

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

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

Параметры:
state — логическое значение, указывающее, следует ли включить проверку последовательности для установленного контекста.
Исключения:
GSSException — содержит следующий основной код ошибки: GSSException.FAILURE
См. также:
  • getSequenceDetState()

requestCredDeleg

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

requestAnonymity

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

requestConf

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

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

Параметры:
state — логическое значение, указывающее, следует ли включить конфиденциальность.
Исключения:
GSSException — содержит следующий основной код ошибки: GSSException.FAILURE
См. также:
  • getConfState()
  • getIntegState()
  • requestInteg(boolean)
  • MessageProp

requestInteg

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

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

Параметры:
state — логическое значение, указывающее, следует ли включить целостность.
Исключения:
GSSException — содержит следующий основной код ошибки: GSSException.FAILURE
См. также:
  • getIntegState()

requestLifetime

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

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

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

setChannelBinding

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

getCredDelegState

boolean getCredDelegState()
Определяет, включено ли в этом контексте делегирование учётных данных. Метод могут вызывать как инициатор, так и принимающая сторона контекста. Чтобы получить однозначный ответ, метод следует вызывать только после завершения установления контекста. Обратите внимание: если инициатор запросил запрет делегирования, метод requestCredDeleg выполнит этот запрос, и с этого момента данный метод будет возвращать false на стороне инициатора.
Возвращает:
true, если делегирование включено, иначе false.
См. также:
  • requestCredDeleg(boolean)

getMutualAuthState

boolean getMutualAuthState()
Определяет, включена ли в этом контексте взаимная аутентификация. Метод могут вызывать как инициатор, так и принимающая сторона контекста. Чтобы получить однозначный ответ, метод следует вызывать только после завершения установления контекста. Инициатор, запросивший взаимную аутентификацию, может вызвать этот метод после завершения установления контекста и удалить контекст, если запрос не был выполнен.
Возвращает:
true, если взаимная аутентификация включена, иначе false.
См. также:
  • requestMutualAuth(boolean)

getReplayDetState

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

getSequenceDetState

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

getAnonymityState

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

isTransferable

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

isProtReady

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

getConfState

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

getIntegState

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

getLifetime

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

getSrcName

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

getTargName

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

getMech

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

getDelegCred

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

isInitiator

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.security.jgss/org/ietf/jgss/GSSContext.html

Spec-Zone.ru

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