Spec-Zone.ru › OpenJDK 25

Пакет javax.xml.crypto.dsig

package javax.xml.crypto.dsig
Классы для создания и проверки цифровых подписей XML. Этот пакет содержит классы, представляющие основные элементы, определённые в спецификации W3C для цифровых подписей XML: XMLSignature, SignedInfo, CanonicalizationMethod, SignatureMethod, Reference, DigestMethod, XMLObject, Manifest, SignatureProperties и SignatureProperty. Типы KeyInfo определены в под-пакете javax.xml.crypto.dsig.keyinfo. XMLSignatureFactory — это абстрактная фабрика, которая создаёт объекты XMLSignature с нуля или на основе уже существующего представления XML, например узла DOM. TransformService — это интерфейс поставщика услуг для создания и подключения реализаций алгоритмов преобразования и каноникализации.

Основное значение в этом пакете имеет класс XMLSignature, который позволяет подписывать и проверять цифровую подпись XML.

Поставщики услуг

Поставщик услуг — это конкретная реализация абстрактных классов XMLSignatureFactory и KeyInfoFactory, отвечающая за создание объектов и алгоритмов, которые разбирают, создают и проверяют подписи XML и структуры KeyInfo. Конкретная реализация XMLSignatureFactory ДОЛЖНА поддерживать каждый из ОБЯЗАТЕЛЬНЫХ алгоритмов, указанных в рекомендации W3C для подписей XML. Она МОЖЕТ поддерживать другие алгоритмы, определённые рекомендацией W3C или другими спецификациями.

API использует модель поставщиков JCA (см. the Provider class) для регистрации и загрузки реализаций XMLSignatureFactory и KeyInfoFactory.

Каждая конкретная реализация XMLSignatureFactory или KeyInfoFactory поддерживает определённый тип механизма XML, идентифицирующий механизм обработки XML, который реализация использует внутри для разбора и создания структур подписи XML и KeyInfo.

Реализация поставщика услуг ДОЛЖНА использовать базовые классы движка JCA, такие как Signature и MessageDigest, для выполнения криптографических операций.

Помимо классов XMLSignatureFactory и KeyInfoFactory, API поддерживает интерфейс поставщика услуг для алгоритмов преобразования и каноникализации. Класс TransformService позволяет разработать и подключить реализацию определённого алгоритма преобразования или каноникализации для конкретного типа механизма XML. Класс TransformService использует стандартную модель поставщиков JCA для регистрации и загрузки реализаций. Каждая реализация поставщика услуг ДОЛЖНА использовать класс TransformService для поиска поставщика, поддерживающего алгоритмы преобразования и каноникализации в подписях XML, которые она создаёт или проверяет.

Требования к механизму DOM

При реализации основанных на DOM XMLSignatureFactory, KeyInfoFactory или TransformService НЕОБХОДИМО соблюдать следующие требования, чтобы свести к минимуму проблемы совместимости:
  1. Метод unmarshalXMLSignature класса XMLSignatureFactory ДОЛЖЕН поддерживать типы DOMValidateContext. Если тип — DOMValidateContext, он ДОЛЖЕН содержать Element типа Signature. Кроме того, метод unmarshalXMLSignature МОЖЕТ заполнять сопоставления Id/Element переданного DOMValidateContext.
  2. Метод sign объектов XMLSignature, созданных посредством XMLSignatureFactory, ДОЛЖЕН поддерживать типы DOMSignContext, а метод validate ДОЛЖЕН поддерживать типы DOMValidateContext. Это требование также относится к методу validate класса SignatureValue и методу validate класса Reference.
  3. Реализация ДОЛЖНА поддерживать DOMStructure в качестве механизма, с помощью которого приложение задаёт расширяемое содержимое (любые элементы или смешанное содержимое).
  4. Если метод dereference пользовательских объектов URIDereferencer возвращает объекты NodeSetData, метод iterator ДОЛЖЕН возвращать итератор по объектам типа org.w3c.dom.Node.
  5. Объекты URIReference, передаваемые методу dereference пользовательских объектов URIDereferencer, ДОЛЖНЫ иметь тип DOMURIReference, а объекты XMLCryptoContext ДОЛЖНЫ реализовывать DOMCryptoContext.
  6. Предыдущие два требования также относятся к объектам URIDereferencer, возвращаемым методом getURIDereferencer класса XMLSignatureFactory и KeyInfoFactory.
  7. Метод unmarshalKeyInfo класса KeyInfoFactory ДОЛЖЕН поддерживать типы DOMStructure. Если тип — DOMStructure, он ДОЛЖЕН содержать Element типа KeyInfo.
  8. Метод transform класса Transform ДОЛЖЕН поддерживать типы параметров контекста DOMCryptoContext.
  9. Методы newtransform и newCanonicalizationMethod класса XMLSignatureFactory ДОЛЖНЫ поддерживать типы параметров DOMStructure.
  10. Методы init и marshalParams класса TransformService ДОЛЖНЫ поддерживать типы DOMStructure и DOMCryptoContext.
  11. Метод unmarshalXMLSignature класса XMLSignatureFactory ДОЛЖЕН поддерживать типы DOMStructure. Если тип — DOMStructure, он ДОЛЖЕН содержать Element типа Signature.
  12. Метод marshal класса KeyInfo ДОЛЖЕН поддерживать типы параметров DOMStructure и DOMCryptoContext.

Обратите внимание, что реализация DOM МОЖЕТ внутри использовать другие API разбора XML, помимо DOM, если это не влияет на совместимость. Например, реализация XMLSignatureFactory для DOM может использовать внутри парсер SAX для каноникализации данных.

Спецификация пакета

  • Синтаксис и обработка XML-подписей: рекомендация W3C
  • RFC 3275: синтаксис и обработка XML-подписей
С:
1.6
Пакет Описание
javax.xml.crypto
Общие классы для криптографии XML.
javax.xml.crypto.dsig.dom
Классы для работы с DOM в пакете javax.xml.crypto.dsig.
javax.xml.crypto.dsig.keyinfo
Классы для разбора и обработки элементов и структур KeyInfo.
javax.xml.crypto.dsig.spec
Классы параметров для цифровых подписей XML.
javax.xml.crypto.dom
Классы для работы с DOM в пакете javax.xml.crypto.
Класс Описание
CanonicalizationMethod
Представление элемента XML CanonicalizationMethod, определённого в рекомендации W3C по синтаксису и обработке XML-подписей.
DigestMethod
Представление элемента XML DigestMethod, определённого в рекомендации W3C по синтаксису и обработке XML-подписей.
Manifest
Представление элемента XML Manifest, определённого в рекомендации W3C по синтаксису и обработке XML-подписей.
Reference
Представление элемента Reference, определённого в рекомендации W3C по синтаксису и обработке XML-подписей.
SignatureMethod
Представление элемента XML SignatureMethod, определённого в рекомендации W3C по синтаксису и обработке XML-подписей.
SignatureProperties
Представление элемента XML SignatureProperties, определённого в рекомендации W3C по синтаксису и обработке XML-подписей.
SignatureProperty
Представление элемента XML SignatureProperty, определённого в рекомендации W3C по синтаксису и обработке XML-подписей.
SignedInfo
Представление элемента XML SignedInfo, определённого в рекомендации W3C по синтаксису и обработке XML-подписей.
Transform
Представление элемента XML Transform, определённого в рекомендации W3C по синтаксису и обработке XML-подписей.
TransformException
Указывает на исключительную ситуацию, возникшую при выполнении алгоритма преобразования.
TransformService
Интерфейс поставщика услуг для алгоритмов преобразования и каноникализации.
XMLObject
Представление элемента XML Object, определённого в рекомендации W3C по синтаксису и обработке XML-подписей.
XMLSignature
Представление элемента XML Signature, определённого в рекомендации W3C по синтаксису и обработке XML-подписей.
XMLSignature.SignatureValue
Представление элемента XML SignatureValue, определённого в рекомендации W3C по синтаксису и обработке XML-подписей.
XMLSignatureException
Указывает на исключительную ситуацию, возникшую в процессе создания или проверки подписи XML.
XMLSignatureFactory
Фабрика для создания объектов XMLSignature с нуля или для десериализации объекта XMLSignature на основе соответствующего представления XML.
XMLSignContext
Содержит контекстную информацию для создания подписей XML.
XMLValidateContext
Содержит контекстную информацию для проверки подписей XML.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры рабочего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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