# Interface PGPData

All Superinterfaces:
  `XMLStructure`

public interface PGPData extends XMLStructure
A representation of the XML `PGPData` element as defined in the W3C Recommendation for XML-Signature Syntax and Processing. A `PGPData` object is used to convey information related to PGP public key pairs and signatures on such keys. The XML Schema Definition is defined as:

       <element name="PGPData" type="ds:PGPDataType"/>
       <complexType name="PGPDataType">
         <choice>
           <sequence>
             <element name="PGPKeyID" type="base64Binary"/>
             <element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/>
             <any namespace="##other" processContents="lax" minOccurs="0"
              maxOccurs="unbounded"/>
           </sequence>
           <sequence>
             <element name="PGPKeyPacket" type="base64Binary"/>
             <any namespace="##other" processContents="lax" minOccurs="0"
              maxOccurs="unbounded"/>
           </sequence>
         </choice>
       </complexType>

A `PGPData` instance may be created by invoking one of the `newPGPData` methods of the `KeyInfoFactory` class, and passing it `byte` arrays representing the contents of the PGP public key identifier and/or PGP key material packet, and an optional list of elements from an external namespace.

Since:
  1.6
See Also:
  - `KeyInfoFactory.newPGPData(byte[])`
  - `KeyInfoFactory.newPGPData(byte[], byte[], List)`
  - `KeyInfoFactory.newPGPData(byte[], List)`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `TYPE`
  URI identifying the PGPData KeyInfo type: http://www.w3.org/2000/09/xmldsig#PGPData.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<XMLStructure>`
  `getExternalElements()`
  Returns an `unmodifiable list` of `XMLStructure`s representing elements from an external namespace.
  `byte[]`
  `getKeyId()`
  Returns the PGP public key identifier of this `PGPData` as defined in RFC 2440, section 11.2.
  `byte[]`
  `getKeyPacket()`
  Returns the PGP key material packet of this `PGPData` as defined in RFC 2440, section 5.5.

  ### Methods declared in interface XMLStructure

  `isFeatureSupported`
  Modifier and Type
  Method
  Description
  `boolean`
  `isFeatureSupported(String feature)`
  Indicates whether a specified feature is supported.

- ## Field Details

  - ### TYPE

    static final String TYPE
    URI identifying the PGPData KeyInfo type: http://www.w3.org/2000/09/xmldsig#PGPData. This can be specified as the value of the `type` parameter of the `RetrievalMethod` class to describe a remote `PGPData` structure.
    See Also:
      - Constant Field Values

- ## Method Details

  - ### getKeyId

    byte[] getKeyId()
    Returns the PGP public key identifier of this `PGPData` as defined in RFC 2440, section 11.2.
    Returns:
      the PGP public key identifier (may be `null` if not specified). Each invocation of this method returns a new clone to protect against subsequent modification.

  - ### getKeyPacket

    byte[] getKeyPacket()
    Returns the PGP key material packet of this `PGPData` as defined in RFC 2440, section 5.5.
    Returns:
      the PGP key material packet (may be `null` if not specified). Each invocation of this method returns a new clone to protect against subsequent modification.

  - ### getExternalElements

    List<XMLStructure> getExternalElements()
    Returns an `unmodifiable list` of `XMLStructure`s representing elements from an external namespace.
    Returns:
      an unmodifiable list of `XMLStructure`s (may be empty, but never `null`)