background image

Service Providers

<< Package Hierarchy | Introduction to XML Signatures >>
<< Package Hierarchy | Introduction to XML Signatures >>
S
ERVICE
P
ROVIDERS
217
javax.xml.crypto.dsig
packages, respectively. Only developers and users
who are creating or using a DOM-based
XMLSignatureFactory
or
KeyInfo-
Factory
implementation should need to make direct use of these packages.
Service Providers
A JSR 105 cryptographic service is a concrete implementation of the abstract
XMLSignatureFactory
and
KeyInfoFactory
classes and is responsible for cre-
ating objects and algorithms that parse, generate and validate XML Signatures
and
KeyInfo
structures. A concrete implementation of
XMLSignatureFactory
must provide support for each of the required algorithms as specified by the
W3C recommendation for XML Signatures. It may support other algorithms as
defined by the W3C recommendation or other specifications.
JSR 105 leverages the JCA provider model for registering and loading
XMLSig-
natureFactory
and
KeyInfoFactory
implementations.
Each concrete
XMLSignatureFactory
or
KeyInfoFactory
implementation sup-
ports a specific XML mechanism type that identifies the XML processing mech-
anism that an implementation uses internally to parse and generate XML
signature and
KeyInfo
structures. This JSR supports one standard type, DOM.
The XML Digital Signature API early access provider implementation that is
bundled with Java WSDP supports the DOM mechanism. Support for new stan-
dard types, such as JDOM, may be added in the future.
An XML Digital Signature API implementation should use underlying JCA
engine classes, such as
java.security.Signature
and
java.security.Mes-
sageDigest
, to perform cryptographic operations.
In addition to the
XMLSignatureFactory
and
KeyInfoFactory
classes, JSR 105
supports a service provider interface for transform and canonicalization algo-
rithms. The
TransformService
class allows you to develop and plug in an
implementation of a specific transform or canonicalization algorithm for a par-
ticular XML mechanism type. The
TransformService
class uses the standard
JCA provider model for registering and loading implementations. Each JSR 105
implementation should use the
TransformService
class to find a provider that
supports transform and canonicalization algorithms in XML Signatures that it is
generating or validating.