FileDocCategorySizeDatePackage
KeyInfo.javaAPI DocJava SE 6 API4038Tue Jun 10 00:27:06 BST 2008javax.xml.crypto.dsig.keyinfo

KeyInfo

public interface KeyInfo implements 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 {@link XMLStructure}s, 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 {@link KeyInfoFactory#newKeyInfo newKeyInfo} methods of the {@link 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 {@link #marshal marshal} method.

author
Sean Mullan
author
JSR 105 Expert Group
since
1.6
see
KeyInfoFactory#newKeyInfo(List)
see
KeyInfoFactory#newKeyInfo(List, String)

Fields Summary
Constructors Summary
Methods Summary
public java.util.ListgetContent()
Returns an {@link java.util.Collections#unmodifiableList unmodifiable list} containing the key information. Each entry of the list is an {@link 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 {@link javax.xml.crypto.dsig.keyinfo.X509Data}).

return
an unmodifiable list of one or more XMLStructures in this KeyInfo. Never returns null or an empty list.

public java.lang.StringgetId()
Return the optional Id attribute of this KeyInfo, which may be useful for referencing this KeyInfo from other XML structures.

return
the Id attribute of this KeyInfo (may be null if not specified)

public voidmarshal(javax.xml.crypto.XMLStructure parent, javax.xml.crypto.XMLCryptoContext context)
Marshals the key info to XML.

param
parent a mechanism-specific structure containing the parent node that the marshalled key info will be appended to
param
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
throws
MarshalException if the key info cannot be marshalled
throws
NullPointerException if parent is null