PGPData (Java SE 13 & JDK 13 )
Description: declaration: module: java.xml.crypto, package: javax.xml.crypto.dsig.keyinfo, interface: PGPData
Keywords: javax.xml.crypto.dsig.keyinfo.PGPData interface

Module java.xml.crypto
Package javax.xml.crypto.dsig.keyinfo

# 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 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 javax.xml.crypto.XMLStructure

  `isFeatureSupported`

- ## 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`)