Класс XMLSignatureFactory

public abstract class XMLSignatureFactory
extends Object

Фабрика для создания объектов XMLSignature с нуля или для разбора объекта XMLSignature из соответствующего XML-представления.

Тип XMLSignatureFactory

Каждый экземпляр XMLSignatureFactory поддерживает определенный тип XML-механизма. Для создания XMLSignatureFactory, вызовите один из статических методов getInstance, передав желаемый тип XML-механизма, например:

XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM");

Объекты, создаваемые этой фабрикой, будут основаны на DOM и соответствовать требованиям межплатформенной совместимости DOM, как определено в разделе Требования к механизму DOM обзора API. Список стандартных типов механизмов см. в разделе Поставщики сервисов обзора API.

Реализации XMLSignatureFactory регистрируются и загружаются с помощью механизма Provider. Например, поставщик сервиса, поддерживающий механизм DOM, будет указан в подклассе Provider как:

put("XMLSignatureFactory.DOM", "org.example.DOMXMLSignatureFactory");

Реализация ДОЛЖНА минимально поддерживать тип механизма по умолчанию: DOM.

Обратите внимание, что вызывающая сторона должна использовать тот же экземпляр XMLSignatureFactory для создания объектов XMLStructure определенного типа XMLSignature, который должен быть сгенерирован. Поведение не определено, если объекты XMLStructure из разных поставщиков или разных типов механизмов используются вместе.

Кроме того, объекты XMLStructure, создаваемые этой фабрикой, могут содержать состояние, специфичное для XMLSignature, и не предназначены для повторного использования.

Создание XMLSignatures с нуля

После создания XMLSignatureFactory объекты могут быть созданы путем вызова соответствующего метода. Например, экземпляр Reference можно создать, вызвав один из методов newReference.

Разбор XMLSignatures из XML

В качестве альтернативы, XMLSignature может быть создан из существующего XML-представления путем вызова метода unmarshalXMLSignature и передачи ему экземпляра XMLValidateContext, специфичного для механизма, содержащего XML-контент:

DOMValidateContext context = new DOMValidateContext(key, signatureElement);
 XMLSignature signature = factory.unmarshalXMLSignature(context);
Каждый XMLSignatureFactory должен поддерживать необходимые типы XMLValidateContext для этого типа фабрики, но может поддерживать и другие. DOM XMLSignatureFactory должен поддерживать объекты DOMValidateContext.

Подпись и преобразование XMLSignatures в XML

Каждый объект XMLSignature , созданный фабрикой, также может быть преобразован в XML-представление и подписан, вызвав метод sign объекта XMLSignature и передав ему объект XMLSignContext, специфичный для механизма, содержащий ключ подписи и параметры преобразования (см. DOMSignContext). Например:
DOMSignContext context = new DOMSignContext(privateKey, document);
    signature.sign(context);
Доступ в многопоточном режиме

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

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

Since:
1.6

Конструкторы

Модификатор Конструктор Описание
protected XMLSignatureFactory()

Конструктор по умолчанию, для вызова подклассами.

Методы

Модификатор и тип Метод Описание
static XMLSignatureFactory getInstance()

Возвращает XMLSignatureFactory, который поддерживает механизм обработки XML по умолчанию и тип представления ("DOM").

static XMLSignatureFactory getInstance​(String mechanismType)

Возвращает XMLSignatureFactory, который поддерживает указанный механизм обработки XML и тип представления (например, "DOM").

static XMLSignatureFactory getInstance​(String mechanismType, String provider)

Возвращает XMLSignatureFactory, который поддерживает запрашиваемый механизм обработки XML и тип представления (например, "DOM"), предоставленный указанным поставщиком.

static XMLSignatureFactory getInstance​(String mechanismType, Provider provider)

Возвращает XMLSignatureFactory, который поддерживает запрашиваемый механизм обработки XML и тип представления (например, "DOM"), предоставленный указанным поставщиком.

KeyInfoFactory getKeyInfoFactory()

Возвращает KeyInfoFactory, который создаёт объекты KeyInfo.

String getMechanismType()

Возвращает тип механизма обработки XML и поддерживаемого представления этим XMLSignatureFactory (например, "DOM").

Provider getProvider()

Возвращает поставщика этого XMLSignatureFactory.

abstract URIDereferencer getURIDereferencer()

Возвращает ссылку на URIDereferencer, который используется по умолчанию для разыменования URI в объектах Reference.

abstract boolean isFeatureSupported​(String feature)

Указывает, поддерживается ли указанная функция.

abstract CanonicalizationMethod newCanonicalizationMethod​(String algorithm, C14NMethodParameterSpec params)

Создаёт CanonicalizationMethod для указанного URI алгоритма и параметров.

abstract CanonicalizationMethod newCanonicalizationMethod​(String algorithm, XMLStructure params)

Создаёт CanonicalizationMethod для указанного URI алгоритма и параметров.

abstract DigestMethod newDigestMethod​(String algorithm, DigestMethodParameterSpec params)

Создаёт DigestMethod для указанного URI алгоритма и параметров.

abstract Manifest newManifest​(List<? extends Reference> references)

Создаёт Manifest, содержащий указанный список Reference.

abstract Manifest newManifest​(List<? extends Reference> references, String id)

Создаёт Manifest, содержащий указанный список Reference и необязательный идентификатор.

abstract Reference newReference​(String uri, DigestMethod dm)

Создаёт Reference с указанным URI и методом хеширования.

abstract Reference newReference​(String uri, DigestMethod dm, List<? extends Transform> transforms, String type, String id)

Создаёт Reference с указанными параметрами.

abstract Reference newReference​(String uri, DigestMethod dm, List<? extends Transform> transforms, String type, String id, byte[] digestValue)

Создаёт Reference с указанными параметрами и предварительно вычисленным значением хеширования.

abstract Reference newReference​(String uri, DigestMethod dm, List<? extends Transform> appliedTransforms, Data result, List<? extends Transform> transforms, String type, String id)

Создаёт Reference с указанными параметрами.

abstract SignatureMethod newSignatureMethod​(String algorithm, SignatureMethodParameterSpec params)

Создаёт SignatureMethod для указанного URI алгоритма и параметров.

abstract SignatureProperties newSignatureProperties​(List<? extends SignatureProperty> properties, String id)

Создаёт SignatureProperties, содержащий указанный список SignatureProperty и необязательный идентификатор.

abstract SignatureProperty newSignatureProperty​(List<? extends XMLStructure> content, String target, String id)

Создаёт SignatureProperty, содержащий указанный список XMLStructure, целевой URI и необязательный идентификатор.

abstract SignedInfo newSignedInfo​(CanonicalizationMethod cm, SignatureMethod sm, List<? extends Reference> references)

Создаёт SignedInfo с указанными методами канонизации и подписи, а также списком одного или нескольких ссылок.

abstract SignedInfo newSignedInfo​(CanonicalizationMethod cm, SignatureMethod sm, List<? extends Reference> references, String id)

Создаёт SignedInfo с указанными параметрами.

abstract Transform newTransform​(String algorithm, TransformParameterSpec params)

Создаёт Transform для указанного URI алгоритма и параметров.

abstract Transform newTransform​(String algorithm, XMLStructure params)

Создаёт Transform для указанного URI алгоритма и параметров.

abstract XMLObject newXMLObject​(List<? extends XMLStructure> content, String id, String mimeType, String encoding)

Создаёт XMLObject из указанных параметров.

abstract XMLSignature newXMLSignature​(SignedInfo si, KeyInfo ki)

Создаёт XMLSignature и инициализирует его содержимым указанных объектов SignedInfo и KeyInfo.

abstract XMLSignature newXMLSignature​(SignedInfo si, KeyInfo ki, List<? extends XMLObject> objects, String id, String signatureValueId)

Создаёт XMLSignature и инициализирует его указанными параметрами.

abstract XMLSignature unmarshalXMLSignature​(XMLValidateContext context)

Десериализует новый экземпляр XMLSignature из механизм-специфичного экземпляра XMLValidateContext.

abstract XMLSignature unmarshalXMLSignature​(XMLStructure xmlStructure)

Десериализует новый экземпляр XMLSignature из механизм-специфичного экземпляра XMLStructure.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Конструкторы

XMLSignatureFactory

protected XMLSignatureFactory()

Конструктор по умолчанию, для вызова подклассами.

Методы

getInstance

public static XMLSignatureFactory getInstance(String mechanismType)

Возвращает XMLSignatureFactory, который поддерживает указанный механизм обработки XML и тип представления (например, "DOM").

Этот метод использует стандартный механизм поиска поставщиков JCA для поиска и создания реализации XMLSignatureFactory указанного типа механизма. Он проходит по списку зарегистрированных поставщиков безопасности Provider, начиная с наиболее предпочтительного Provider. Возвращается новый объект XMLSignatureFactory из первого Provider , который поддерживает указанный механизм.

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

Примечание реализации:
Реализация JDK дополнительно использует свойство jdk.security.provider.preferred Security для определения предпочтительного порядка поставщиков для указанного алгоритма. Это может отличаться от порядка поставщиков, возвращаемого методом Security.getProviders().
Параметры:
mechanismType - тип механизма обработки XML и представления. Список стандартных типов механизмов см. в разделе «Поставщики услуг» обзора API по адресу mechanismType.
Возвращает:
новый XMLSignatureFactory
Исключения:
NullPointerException - если mechanismType null
NoSuchMechanismException - если ни один поставщик не поддерживает реализацию Provider для указанного механизма
См. также:
Provider

getInstance

public static XMLSignatureFactory getInstance(String mechanismType,
                                              Provider provider)

Возвращает XMLSignatureFactory , который поддерживает требуемый механизм обработки XML и тип представления (например, "DOM"), как предоставленный указанным поставщиком. Обратите внимание, что указанный объект Provider не обязательно должен быть зарегистрирован в списке поставщиков.

Параметры:
mechanismType - тип механизма обработки XML и представления. Список стандартных типов механизмов см. в разделе «Поставщики услуг» обзора API по адресу mechanismType.
provider - объект Provider
Возвращает:
новый XMLSignatureFactory
Исключения:
NullPointerException - если provider или mechanismType null
NoSuchMechanismException - если реализация XMLSignatureFactory для указанного механизма недоступна от указанного объекта Provider
См. также:
Provider

getInstance

public static XMLSignatureFactory getInstance(String mechanismType,
                                              String provider)
                                       throws NoSuchProviderException

Возвращает XMLSignatureFactory , который поддерживает требуемый механизм обработки XML и тип представления (например, "DOM"), как предоставленный указанным поставщиком. Указанный поставщик должен быть зарегистрирован в списке поставщиков безопасности.

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

Параметры:
mechanismType - тип механизма обработки XML и представления. Список стандартных типов механизмов см. в разделе «Поставщики услуг» обзора API по адресу mechanismType.
provider - имя строки поставщика
Возвращает:
новый XMLSignatureFactory
Исключения:
NoSuchProviderException - если указанный поставщик не зарегистрирован в списке поставщиков безопасности
NullPointerException - если provider или mechanismType null
NoSuchMechanismException - если реализация XMLSignatureFactory для указанного механизма недоступна от указанного поставщика
См. также:
Provider

getInstance

public static XMLSignatureFactory getInstance()

Возвращает XMLSignatureFactory, который поддерживает стандартный механизм обработки XML и тип представления ("DOM").

Этот метод использует стандартный механизм поиска поставщиков JCA для поиска и создания реализации XMLSignatureFactory стандартного типа механизма. Он проходит по списку зарегистрированных поставщиков безопасности Provider, начиная с наиболее предпочтительного Provider. Возвращается новый объект XMLSignatureFactory из первого Provider , который поддерживает механизм DOM.

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

Возвращает:
новый XMLSignatureFactory
Исключения:
NoSuchMechanismException - если ни один поставщик не поддерживает реализацию Provider для механизма DOM
См. также:
Provider

getMechanismType

public final String getMechanismType()

Возвращает тип механизма обработки XML и представление, поддерживаемые этим XMLSignatureFactory (например, "DOM").

Возвращает:
тип механизма обработки XML, поддерживаемый этим XMLSignatureFactory

getProvider

public final Provider getProvider()

Возвращает поставщика этого XMLSignatureFactory.

Возвращает:
поставщик этого XMLSignatureFactory

newXMLSignature

public abstract XMLSignature newXMLSignature(SignedInfo si,
                                             KeyInfo ki)

Создает XMLSignature и инициализирует его содержимым указанных объектов SignedInfo и KeyInfo.

Параметры:
si - информация о подписи
ki - информация о ключе (может быть null)
Возвращает:
XMLSignature
Исключения:
NullPointerException - если si null

newXMLSignature

public abstract XMLSignature newXMLSignature(SignedInfo si,
                                             KeyInfo ki,
                                             List<? extends XMLObject> objects,
                                             String id,
                                             String signatureValueId)

Создает XMLSignature и инициализирует его указанными параметрами.

Параметры:
si - информация о подписи
ki - информация о ключе (может быть null)
objects - список XMLObject (может быть пустым или null)
id - идентификатор (может быть null)
signatureValueId - идентификатор SignatureValue (может быть null)
Возвращает:
XMLSignature
Исключения:
NullPointerException - если si null
ClassCastException - если какой-либо из objects не является объектом типа XMLObject

newReference

public abstract Reference newReference(String uri,
                                       DigestMethod dm)

Создает Reference с указанным URI и методом хэширования.

Параметры:
uri - URI ссылки (может быть null)
dm - метод хэширования
Возвращает:
Reference
Исключения:
IllegalArgumentException - если uri не соответствует RFC 2396
NullPointerException - если dm null

newReference

public abstract Reference newReference(String uri,
                                       DigestMethod dm,
                                       List<? extends Transform> transforms,
                                       String type,
                                       String id)

Создает Reference с указанными параметрами.

Параметры:
uri - URI ссылки (может быть null)
dm - метод хэширования
transforms - список объектов Transform. Список защищенно копируется для предотвращения последующего изменения. Может быть null или пустым.
type - тип ссылки как URI (может быть null)
id - идентификатор ссылки (может быть null)
Возвращает:
Reference
Исключения:
ClassCastException - если какой-либо из transforms не является объектом типа Transform
IllegalArgumentException - если uri не соответствует RFC 2396
NullPointerException - если dm null

newReference

public abstract Reference newReference(String uri,
                                       DigestMethod dm,
                                       List<? extends Transform> transforms,
                                       String type,
                                       String id,
                                       byte[] digestValue)

Создает Reference с указанными параметрами и предварительно вычисленным значением хэша.

Этот метод полезен, когда значение хэша Reference было предварительно вычислено. См., например, спецификацию OASIS-DSS (Услуги цифровых подписей) по адресу Reference.

Параметры:
uri — ссылка URI (может быть null).
dm — метод дайджеста.
transforms — список Transform. Список копируется для защиты от последующих изменений. Может быть null или пустым.
type — тип ссылки как URI (может быть null).
id — идентификатор ссылки (может быть null).
digestValue — значение дайджеста. Массив клонируется для защиты от последующих изменений.
Возвращает:
Reference
Выбрасывает:
ClassCastException — если какой-либо из transforms не имеет тип Transform
IllegalArgumentException — если uri не соответствует RFC 2396.
NullPointerException — если dm или digestValue null

newReference

public abstract Reference newReference(String uri,
                                       DigestMethod dm,
                                       List<? extends Transform> appliedTransforms,
                                       Data result,
                                       List<? extends Transform> transforms,
                                       String type,
                                       String id)

Создаёт ссылку Reference со заданными параметрами.

Этот метод полезен, когда список преобразований уже применён к Reference. См., например, спецификацию OASIS-DSS (Услуги цифровых подписей).

При генерации XML-объекта, содержащего эту ссылку, указанные transforms (если не null) применяются к указанному result. Элемент Transforms в результирующем элементе Reference устанавливается в конкатенацию appliedTransforms и transforms.

Параметры:
uri — ссылка URI (может быть null).
dm — метод дайджеста.
appliedTransforms — список Transform, которые уже применены. Список копируется для защиты от последующих изменений. Список должен содержать по крайней мере одну запись.
result — результат обработки последовательности appliedTransforms
transforms — список Transform, которые должны быть применены при генерации подписи. Список копируется для защиты от последующих изменений. Может быть null или пустым.
type — тип ссылки как URI (может быть null).
id — идентификатор ссылки (может быть null).
Возвращает:
Reference
Выбрасывает:
ClassCastException — если какой-либо из преобразований (в любом списке) не имеет тип Transform
IllegalArgumentException — если uri не соответствует RFC 2396 или appliedTransforms пусто.
NullPointerException — если dm, appliedTransforms или result null

newSignedInfo

public abstract SignedInfo newSignedInfo(CanonicalizationMethod cm,
                                         SignatureMethod sm,
                                         List<? extends Reference> references)

Создаёт SignedInfo со заданными методом канонизации, методом подписи и списком ссылок.

Параметры:
cm — метод канонизации.
sm — метод подписи.
references — список одного или нескольких Reference. Список копируется для защиты от последующих изменений.
Возвращает:
SignedInfo
Выбрасывает:
ClassCastException — если какая-либо из ссылок не имеет тип Reference
IllegalArgumentException — если references пусто.
NullPointerException — если какой-либо из параметров null

newSignedInfo

public abstract SignedInfo newSignedInfo(CanonicalizationMethod cm,
                                         SignatureMethod sm,
                                         List<? extends Reference> references,
                                         String id)

Создаёт SignedInfo со заданными параметрами.

Параметры:
cm — метод канонизации.
sm — метод подписи.
references — список одного или нескольких Reference. Список копируется для защиты от последующих изменений.
id — идентификатор (может быть null).
Возвращает:
SignedInfo
Выбрасывает:
ClassCastException — если какая-либо из ссылок не имеет тип Reference
IllegalArgumentException — если references пусто.
NullPointerException — если cm, sm или references null

newXMLObject

public abstract XMLObject newXMLObject(List<? extends XMLStructure> content,
                                       String id,
                                       String mimeType,
                                       String encoding)

Создаёт XMLObject из заданных параметров.

Параметры:
content — список XMLStructure. Список копируется для защиты от последующих изменений. Может быть null или пустым.
id — идентификатор (может быть null).
mimeType — тип MIME (может быть null).
encoding — кодировка (может быть null).
Возвращает:
XMLObject
Выбрасывает:
ClassCastException — если content содержит записи, не имеющие тип XMLStructure

newManifest

public abstract Manifest newManifest(List<? extends Reference> references)

Создаёт Manifest, содержащий указанный список Reference.

Параметры:
references — список одного или более Reference. Список копируется для защиты от последующих изменений.
Возвращает:
Manifest
Выбрасывает:
NullPointerException — если references null
IllegalArgumentException — если references пусто.
ClassCastException — если references содержит записи, не имеющие тип Reference

newManifest

public abstract Manifest newManifest(List<? extends Reference> references,
                                     String id)

Создаёт Manifest, содержащий указанный список Reference и необязательный идентификатор.

Параметры:
references — список одного или более Reference. Список копируется для защиты от последующих изменений.
id — идентификатор (может быть null).
Возвращает:
Manifest
Выбрасывает:
NullPointerException — если references null
IllegalArgumentException — если references пусто.
ClassCastException — если references содержит записи, не имеющие тип Reference

newSignatureProperty

public abstract SignatureProperty newSignatureProperty(List<? extends XMLStructure> content,
                                                       String target,
                                                       String id)

Создаёт SignatureProperty, содержащий указанный список XMLStructure, целевой URI и необязательный идентификатор.

Параметры:
content — список одного или более XMLStructure. Список копируется для защиты от последующих изменений.
target — целевой URI подписи, к которой относится это свойство.
id — идентификатор (может быть null).
Возвращает:
SignatureProperty
Выбрасывает:
NullPointerException — если content или target null
IllegalArgumentException — если content пусто.
ClassCastException — если content содержит записи, не имеющие тип XMLStructure

newSignatureProperties

public abstract SignatureProperties newSignatureProperties(List<? extends SignatureProperty> properties,
                                                           String id)

Создаёт SignatureProperties, содержащий указанный список SignatureProperty и необязательный идентификатор.

Параметры:
properties — список одного или более SignatureProperty. Список копируется для защиты от последующих изменений.
id — идентификатор (может быть null).
Возвращает:
SignatureProperties
Выбрасывает:
NullPointerException — если properties null
IllegalArgumentException — если properties пусто.
ClassCastException — если properties содержит записи, не имеющие тип SignatureProperty

newDigestMethod

public abstract DigestMethod newDigestMethod(String algorithm,
                                             DigestMethodParameterSpec params)
                                      throws NoSuchAlgorithmException,
                                             InvalidAlgorithmParameterException

Создаёт DigestMethod для заданного URI алгоритма и параметров.

Параметры:
algorithm — URI, определяющий алгоритм дайджеста.
params — параметры дайджеста, специфичные для алгоритма (могут быть null).
Возвращает:
DigestMethod
Выбрасывает:
InvalidAlgorithmParameterException — если заданные параметры неподходящие для запрошенного алгоритма.
NoSuchAlgorithmException — если реализация указанного алгоритма не найдена.
NullPointerException — если algorithm null

newSignatureMethod

public abstract SignatureMethod newSignatureMethod(String algorithm,
                                                   SignatureMethodParameterSpec params)
                                            throws NoSuchAlgorithmException,
                                                   InvalidAlgorithmParameterException

Создаёт SignatureMethod для заданного URI алгоритма и параметров.

Параметры:
algorithm — URI, определяющий алгоритм подписи
params — параметры подписи, специфичные для алгоритма (могут быть null)
Возвращает:
SignatureMethod
Выбрасывает:
InvalidAlgorithmParameterException — если указанные параметры не подходят для запрошенного алгоритма
NoSuchAlgorithmException — если реализация указанного алгоритма не найдена
NullPointerException — если algorithm имеет значение null

newTransform

public abstract Transform newTransform(String algorithm,
                                       TransformParameterSpec params)
                                throws NoSuchAlgorithmException,
                                       InvalidAlgorithmParameterException

Создаёт Transform для указанного URI алгоритма и параметров.

Параметры:
algorithm — URI, определяющий алгоритм преобразования
params — параметры преобразования, специфичные для алгоритма (могут быть null)
Возвращает:
Transform
Выбрасывает:
InvalidAlgorithmParameterException — если указанные параметры не подходят для запрошенного алгоритма
NoSuchAlgorithmException — если реализация указанного алгоритма не найдена
NullPointerException — если algorithm имеет значение null

newTransform

public abstract Transform newTransform(String algorithm,
                                       XMLStructure params)
                                throws NoSuchAlgorithmException,
                                       InvalidAlgorithmParameterException

Создаёт Transform для указанного URI алгоритма и параметров. Параметры задаются как механизм-специфическая XMLStructure (например, DOMStructure). Этот метод полезен, когда параметры представлены в формате XML или нет стандартного класса для их задания.

Параметры:
algorithm — URI, определяющий алгоритм преобразования
params — XML-структура, специфичная для механизма, из которой будут извлечены параметры (может быть null если не требуется или необязательно)
Возвращает:
Transform
Выбрасывает:
ClassCastException — если тип params не подходит для этого XMLSignatureFactory
InvalidAlgorithmParameterException — если указанные параметры не подходят для запрошенного алгоритма
NoSuchAlgorithmException — если реализация указанного алгоритма не найдена
NullPointerException — если algorithm имеет значение null

newCanonicalizationMethod

public abstract CanonicalizationMethod newCanonicalizationMethod(String algorithm,
                                                                 C14NMethodParameterSpec params)
                                                          throws NoSuchAlgorithmException,
                                                                 InvalidAlgorithmParameterException

Создаёт CanonicalizationMethod для указанного URI алгоритма и параметров.

Параметры:
algorithm — URI, определяющий алгоритм канонизации
params — параметры канонизации, специфичные для алгоритма (могут быть null)
Возвращает:
CanonicalizationMethod
Выбрасывает:
InvalidAlgorithmParameterException — если указанные параметры не подходят для запрошенного алгоритма
NoSuchAlgorithmException — если реализация указанного алгоритма не найдена
NullPointerException — если algorithm имеет значение null

newCanonicalizationMethod

public abstract CanonicalizationMethod newCanonicalizationMethod(String algorithm,
                                                                 XMLStructure params)
                                                          throws NoSuchAlgorithmException,
                                                                 InvalidAlgorithmParameterException

Создаёт CanonicalizationMethod для указанного URI алгоритма и параметров. Параметры задаются как механизм-специфическая XMLStructure (например, DOMStructure). Этот метод полезен, когда параметры представлены в формате XML или нет стандартного класса для их задания.

Параметры:
algorithm — URI, определяющий алгоритм канонизации
params — XML-структура, специфичная для механизма, из которой будут извлечены параметры (может быть null если не требуется или необязательно)
Возвращает:
CanonicalizationMethod
Выбрасывает:
ClassCastException — если тип params не подходит для этого XMLSignatureFactory
InvalidAlgorithmParameterException — если указанные параметры не подходят для запрошенного алгоритма
NoSuchAlgorithmException — если реализация указанного алгоритма не найдена
NullPointerException — если algorithm имеет значение null

getKeyInfoFactory

public final KeyInfoFactory getKeyInfoFactory()

Возвращает KeyInfoFactory для создания объектов KeyInfo. Возвращаемый KeyInfoFactory имеет тот же тип механизма и провайдера, что и этот XMLSignatureFactory.

Возвращает:
KeyInfoFactory
Выбрасывает:
NoSuchMechanismException — если реализация KeyFactory с таким же типом механизма и провайдера недоступна

unmarshalXMLSignature

public abstract XMLSignature unmarshalXMLSignature(XMLValidateContext context)
                                            throws MarshalException

Распаковывает новый экземпляр XMLSignature из экземпляра XMLValidateContext, специфичного для механизма.

Параметры:
context — контекст, специфичный для механизма, из которого нужно распаковать подпись
Возвращает:
XMLSignature
Выбрасывает:
NullPointerException — если context имеет значение null
ClassCastException — если тип context не подходит для этого фабрики
MarshalException — если во время распаковки произошла невосстановимая ошибка

unmarshalXMLSignature

public abstract XMLSignature unmarshalXMLSignature(XMLStructure xmlStructure)
                                            throws MarshalException

Распаковывает новый экземпляр XMLSignature из экземпляра XMLStructure, специфичного для механизма. Этот метод полезен, если вы хотите только распаковать (а не валидировать) XMLSignature.

Параметры:
xmlStructure — XML-структура, специфичная для механизма, из которой нужно распаковать подпись
Возвращает:
XMLSignature
Выбрасывает:
NullPointerException — если xmlStructure имеет значение null
ClassCastException — если тип xmlStructure не подходит для этой фабрики
MarshalException — если во время распаковки произошла невосстановимая ошибка

isFeatureSupported

public abstract boolean isFeatureSupported(String feature)

Определяет, поддерживается ли указанная функция.

Параметры:
feature — имя функции (в виде абсолютного URI)
Возвращает:
true если указанная функция поддерживается, false в противном случае
Выбрасывает:
NullPointerException — если feature имеет значение null

getURIDereferencer

public abstract URIDereferencer getURIDereferencer()

Возвращает ссылку на URIDereferencer, используемый по умолчанию для разыменования URI в объектах Reference.

Возвращает:
ссылка на стандартный URIDereferencer (никогда null)

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

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