Service Providers
A JSR 105 cryptographic service is a concrete implementation of the abstract
XMLSignatureFactoryandKeyInfoFactoryclasses and is responsible for creating objects and algorithms that parse, generate and validate XML Signatures andKeyInfostructures. A concrete implementation ofXMLSignatureFactorymust 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
XMLSignatureFactoryandKeyInfoFactoryimplementations.Each concrete
XMLSignatureFactoryorKeyInfoFactoryimplementation supports a specific XML mechanism type that identifies the XML processing mechanism that an implementation uses internally to parse and generate XML signature andKeyInfostructures. 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 standard 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.Signatureandjava.security.MessageDigest, to perform cryptographic operations.In addition to the
XMLSignatureFactoryandKeyInfoFactoryclasses, JSR 105 supports a service provider interface for transform and canonicalization algorithms. TheTransformServiceclass allows you to develop and plug in an implementation of a specific transform or canonicalization algorithm for a particular XML mechanism type. TheTransformServiceclass uses the standard JCA provider model for registering and loading implementations. Each JSR 105 implementation should use theTransformServiceclass to find a provider that supports transform and canonicalization algorithms in XML Signatures that it is generating or validating.