Interface KeyInfo

  • All Superinterfaces:
    XMLStructure


    public interface KeyInfo
    extends XMLStructure
    A representation of the XML KeyInfo element as defined in the W3C Recommendation for XML-Signature Syntax and Processing. A KeyInfo contains a list of XMLStructures, each of which contain information that enables the recipient(s) to obtain the key needed to validate an XML signature. The XML Schema Definition is defined as:
     <element name="KeyInfo" type="ds:KeyInfoType"/>
     <complexType name="KeyInfoType" mixed="true">
       <choice maxOccurs="unbounded">
         <element ref="ds:KeyName"/>
         <element ref="ds:KeyValue"/>
         <element ref="ds:RetrievalMethod"/>
         <element ref="ds:X509Data"/>
         <element ref="ds:PGPData"/>
         <element ref="ds:SPKIData"/>
         <element ref="ds:MgmtData"/>
         <any processContents="lax" namespace="##other"/>
         <!-- (1,1) elements from (0,unbounded) namespaces -->
       </choice>
       <attribute name="Id" type="ID" use="optional"/>
     </complexType>
     
    A KeyInfo instance may be created by invoking one of the newKeyInfo methods of the KeyInfoFactory class, and passing it a list of one or more XMLStructures and an optional id parameter; for example:
       KeyInfoFactory factory = KeyInfoFactory.getInstance("DOM");
       KeyInfo keyInfo = factory.newKeyInfo
          (Collections.singletonList(factory.newKeyName("Alice"), "keyinfo-1"));
     

    KeyInfo objects can also be marshalled to XML by invoking the marshal method.

    Since:
    1.6
    See Also:
    KeyInfoFactory.newKeyInfo(List), KeyInfoFactory.newKeyInfo(List, String)
    • Method Detail

      • getContent

        List<XMLStructure> getContent​()
        Returns an unmodifiable list containing the key information. Each entry of the list is an XMLStructure.

        If there is a public subclass representing the type of XMLStructure, it is returned as an instance of that class (ex: an X509Data element would be returned as an instance of X509Data).

        Returns:
        an unmodifiable list of one or more XMLStructures in this KeyInfo. Never returns null or an empty list.
      • getId

        String getId​()
        Return the optional Id attribute of this KeyInfo, which may be useful for referencing this KeyInfo from other XML structures.
        Returns:
        the Id attribute of this KeyInfo (may be null if not specified)
      • marshal

        void marshal​(XMLStructure parent,
                     XMLCryptoContext context)
              throws MarshalException
        Marshals the key info to XML.
        Parameters:
        parent - a mechanism-specific structure containing the parent node that the marshalled key info will be appended to
        context - the XMLCryptoContext containing additional context (may be null if not applicable)
        Throws:
        ClassCastException - if the type of parent or context is not compatible with this key info
        MarshalException - if the key info cannot be marshalled
        NullPointerException - if parent is null