Spec-Zone.ru › OpenJDK 21

Интерфейс GSSContext

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

Если вызывающий экземпляризует контекст, используя значение по умолчанию 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 генерируют токены, которые приложение отправляет peer'у. Peer передает любой такой токен в качестве входных данных в свой метод acceptSecContext или initSecContext в зависимости от случая.

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

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

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

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

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

Методы с потоками 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 для инициализирующего peer'а. Представлены различные операции с объектом 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, содержащийся в параметре token, по предоставленному сообщению.
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.

Обратите внимание, что метод 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();
     }
 
Parameters:
inStream - входной поток, содержащий маркер, сгенерированный участником.
outStream - выходной поток, в который будет записан маркер вывода. На заключительном этапе установления контекста, возможно, не будет записано никаких байтов.
Throws:
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()
Используется во время установления контекста для определения состояния контекста.
Returns:
true если это полностью установленный контекст со стороны вызывающего объекта и больше маркеров от участника не требуется.

dispose

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

getWrapSizeLimit

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

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

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

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

wrap

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

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

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

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

Parameters:
inBuf - данные приложения, которые необходимо защитить.
offset - смещение в inBuf, где начинаются данные.
len - длина данных
msgProp - экземпляр MessageProp, который используется приложением для установки желаемого QOP и состояния конфиденциальности. Установите желаемый QOP в 0, чтобы запросить стандартный QOP. По возвращении из этого метода этот объект будет содержать фактическое состояние конфиденциальности, применённое к сообщению основным механизмом.
Returns:
массив байтов, содержащий маркер, который нужно отправить участнику.
Throws:
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 над ними. Данные могут быть зашифрованы, если была запрошена конфиденциальность (privacy). Этот метод эквивалентен методу wrap, основанному на массиве байтов.

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

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

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

Parameters:
inStream - входной поток, содержащий данные приложения, которые необходимо защитить. Все данные, доступные в inStream, используются.
outStream - выходной поток, в который необходимо записать защищенное сообщение.
msgProp - экземпляр MessageProp, который используется приложением для установки желаемого QOP и состояния конфиденциальности. Установите желаемый QOP в 0, чтобы запросить стандартный QOP. По возвращении из этого метода этот объект будет содержать фактическое состояние конфиденциальности, применённое к сообщению основным механизмом.
Throws:
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, для обеспечения «защищённой рамки», реализации должны поддерживать заворачивание и распаковку сообщений нулевой длины.

Parameters:
inBuf - массив байтов, содержащий маркер wrap, полученный от партнёра.
offset - смещение, с которого начинается маркер.
len - длина маркера
msgProp - по возвращении из метода, этот объект будет содержать применённый QOP, состояние конфиденциальности сообщения и дополнительную информацию о том, был ли маркер дубликатом, старым, вне последовательности или пришёл после разрыва.
Returns:
массив байтов, содержащий сообщение, распакованное из входного маркера.
Throws:
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.

Parameters:
inStream - InputStream, содержащий маркер wrap, сгенерированный партнёром.
outStream - OutputStream для записи сообщения приложения.
msgProp - по возвращении из метода, этот объект будет содержать применённый QOP, состояние конфиденциальности сообщения и дополнительную информацию о том, был ли маркер дубликатом, старым, вне последовательности или пришёл после разрыва.
Throws:
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 из сообщений нулевой длины.

Parameters:
inMsg - сообщение для генерации MIC.
offset - смещение в inMsg, где начинается сообщение.
len - длина сообщения
msgProp - экземпляр MessageProp, используемый приложением для установки желаемого QOP. Установите желаемый QOP в 0 в msgProp, чтобы запросить значение по умолчанию для QOP. В качестве альтернативы передайте null для msgProp чтобы запросить значение по умолчанию для QOP.
Returns:
массив байтов, содержащий маркер для отправки партнёру.
Throws:
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 из сообщений нулевой длины.

Parameters:
inStream - InputStream, содержащий сообщение для генерации MIC. Используются все доступные данные в inStream.
outStream - OutputStream для записи выходного маркера.
msgProp - экземпляр MessageProp, используемый приложением для установки желаемого QOP. Установите желаемый QOP в 0 в msgProp, чтобы запросить значение по умолчанию для QOP. В качестве альтернативы передайте null для msgProp чтобы запросить значение по умолчанию для QOP.
Throws:
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 для сообщений нулевой длины.

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

verifyMIC

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

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

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

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

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

export

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

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

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

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

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

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

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

requestMutualAuth

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

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

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

requestReplayDet

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

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

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

requestSequenceDet

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

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

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

requestCredDeleg

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

requestAnonymity

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

requestConf

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

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

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

requestInteg

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

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

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

requestLifetime

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

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

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

setChannelBinding

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

getCredDelegState

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

getMutualAuthState

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

getReplayDetState

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

getSequenceDetState

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

getAnonymityState

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

isTransferable

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

isProtReady

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

getConfState

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

getIntegState

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

getLifetime

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

getSrcName

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

getTargName

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

getMech

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

getDelegCred

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

isInitiator

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

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

Spec-Zone.ru

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