Интерфейс 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, все необязательные сервисы будут доступны локально. К ним относятся взаимная аутентификация, делегирование учетных данных, конфиденциальность и целостность защиты, а также обнаружение и упорядочивание повторов сообщений.

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

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

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

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

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

В конечном счете, разные поставщики механизмов могут устанавливать различные ограничения безопасности при использовании контекстов GSS-API. Эти ограничения будут документированы поставщиком механизма. Приложение должно убедиться, что у него есть соответствующие разрешения, если такие проверки выполняются на уровне механизма.

В Java SE 11 устарели методы, основанные на потоках GSSContext. Эти методы также были удалены из 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];

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

    while (!context.isEstablished()) {

        byte[] 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);

     byte []tok = context.wrap(appMsg, 0, appMsg.length, mProp);

     sendToken(tok);

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

Поля

Модификатор и тип Поле Описание
static int DEFAULT_LIFETIME

Константа срока службы, представляющая длительность контекста по умолчанию.

static 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. Это указывает, что токен необходимо отправить партнеру, но локальный конец контекста теперь полностью установлен.

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

Параметры:
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. После завершения установления контекста доступные параметры контекста можно запросить через методы get.

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

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

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

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

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 - поток входных данных, содержащий токен, сгенерированный партнером. Этот параметр игнорируется при первом вызове, так как токен от партнера еще не получен.
outStream - поток вывода, куда будет записан выходной токен. На заключительном этапе установления контекста может не быть записанных байтов.
Возвращает:
количество байтов, записанных в 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. Это указывает, что токен необходимо отправить партнеру, но локальный конец контекста теперь полностью установлен.

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

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

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.

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

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

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 - уровень защиты, который будет запрошен у механизма шифрования.
confReq - true если от механизма шифрования требуется защита конфиденциальности, false в противном случае.
maxTokenSize - желаемый максимальный размер токена, выпущенного механизмом шифрования.
Возвращает:
максимальный размер входного токена для данного размера выходного токена
Исключения:
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

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, состояние конфиденциальности сообщения и дополнительную информацию о том, был ли токен дубликатом, устаревшим, вне очереди или прибыл после разрыва.
Возвращает:
массив байт, содержащий сообщение, распакованное из входного токена.
Исключения:
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), содержащий маркер обёртки, сгенерированный партнёром.
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

verifyMIC

void verifyMIC(byte[] inToken,
               int tokOffset,
               int tokLen,
               byte[] inMsg,
               int msgOffset,
               int msgLen,
               MessageProp msgProp)
        throws GSSException

Проверяет криптографический MIC, содержащийся в параметре маркер, для предоставленного сообщения.

Объект 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, содержащегося в параметре маркер, для предоставленного сообщения. Этот метод эквивалентен методу на основе массива байтов 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.

Возвращает:
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, содержащий имя инициатора контекста.
Выбрасывает:
GSSException - содержащий следующие основные коды ошибок: GSSException.FAILURE
См. также:
GSSName

getTargName

GSSName getTargName()
             throws GSSException

Возвращает имя приемника контекста. Этот вызов действителен только после того, как один из методов isProtReady или isEstablished вернёт true.

Возвращает:
GSSName, содержащий имя приемника контекста.
Выбрасывает:
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

© 1993, 2020, 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/11/docs/api/java.security.jgss/org/ietf/jgss/GSSContext.html

Spec-Zone .ru
спецификации, руководства, описания, API