Spec-Zone.ru › OpenJDK 17

Интерфейс GSSContext

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

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

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

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

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

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

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

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

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

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

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

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

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

    // establish a context between peers

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

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

    while (!context.isEstablished()) {

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

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

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

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

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

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

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

     MessageProp mProp = new MessageProp(0, true);

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

     sendToken(outToken);

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

     mProp = new MessageProp(0, true);

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

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

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

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

 
С:
1.4

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

Modifier and Type Field Description
static final int DEFAULT_LIFETIME
Постоянная константа, представляющая длительность контекста по умолчанию.
static final int INDEFINITE_LIFETIME
Постоянная константа, представляющая неопределённую длительность контекста.

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

Modifier and Type Method Description
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.

Обратите внимание, что метод 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 - an InputStream, содержащий маркер, сгенерированный удаленным узлом.
outStream - an OutputStream, куда будет записан маркер вывода. На заключительном этапе установления контекста может не быть записанных байтов.
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 - уровень защиты, которую запросит обертка.
confReq - true если обертка запросит предоставление конфиденциальности, false в противном случае.
maxTokenSize - желаемый максимальный размер маркера, выпущенного оболочкой.
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 над ними. Данные могут быть зашифрованы, если была запрошена конфиденциальность (приватность).

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

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

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

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 над ними. Данные могут быть зашифрованы, если была запрошена конфиденциальность (приватность). Этот метод эквивалентен методу wrap на основе массива байтов.

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

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

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

Parameters:
inStream - an InputStream, содержащий данные приложения, которые необходимо защитить. Используются все данные, доступные в inStream.
outStream - an OutputStream, куда записывается защищенное сообщение.
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, для обеспечения «защищённой рамки», реализации должны поддерживать упаковку и распаковку сообщений нулевой длины.

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

verifyMIC

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

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

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

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

verifyMIC

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

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

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

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

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

export

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

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

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

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

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

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

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

requestMutualAuth

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

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

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

requestReplayDet

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

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

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

requestSequenceDet

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

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

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

requestCredDeleg

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

requestAnonymity

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

requestConf

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

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

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

requestInteg

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

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

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

requestLifetime

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

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

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

setChannelBinding

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

getCredDelegState

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

getMutualAuthState

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

getReplayDetState

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

getSequenceDetState

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

getAnonymityState

boolean getAnonymityState()
Определяет, является ли инициатор контекста анонимно аутентифицированным для акцептора контекста. Его можно вызывать как со стороны инициатора, так и со стороны акцептора контекста в любое время. Со стороны инициатора вызов этого метода определяет, был ли идентификатор инициатора раскрыт в любом из токенов установления контекста, которые могут быть сгенерированы до сих пор initSecContext. Инициатор, который должен быть аутентифицирован анонимно, должен вызывать этот метод после каждого вызова initSecContext для определения, должен ли сгенерированный токен быть отправлен в peer или контекст прерван. Со стороны акцептора вызов этого метода определяет, раскрыл ли какой-либо из токенов, обработанных 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 в противном случае.
See Also:
  • requestConf(boolean)

getIntegState

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

getLifetime

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

getSrcName

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

getTargName

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

getMech

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

getDelegCred

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

isInitiator

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

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.security.jgss/org/ietf/jgss/GSSContext.html

Spec-Zone.ru

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