org.bouncycastle.openpgp

## Class PGPSignatureSubpacketGenerator

- java.lang.Object
- - org.bouncycastle.openpgp.PGPSignatureSubpacketGenerator

    public class PGPSignatureSubpacketGenerator
    extends java.lang.Object

Generator for signature subpackets.

### Constructor Summary

Constructors
Constructor and Description
`PGPSignatureSubpacketGenerator()`

### Method Summary

Methods
`PGPSignatureSubpacketVector` `generate()`
`void` `setEmbeddedSignature(boolean isCritical, PGPSignature pgpSignature)`
`void` `setExportable(boolean isCritical, boolean isExportable)`
`void` `setKeyExpirationTime(boolean isCritical, long seconds)` Set the number of seconds a key is valid for after the time of its creation.
`void` `setKeyFlags(boolean isCritical, int flags)`
`void` `setNotationData(boolean isCritical, boolean isHumanReadable, java.lang.String notationName, java.lang.String notationValue)`
`void` `setPreferredCompressionAlgorithms(boolean isCritical, int[] algorithms)`
`void` `setPreferredHashAlgorithms(boolean isCritical, int[] algorithms)`
`void` `setPreferredSymmetricAlgorithms(boolean isCritical, int[] algorithms)`
`void` `setPrimaryUserID(boolean isCritical, boolean isPrimaryUserID)`
`void` `setRevocable(boolean isCritical, boolean isRevocable)`
`void` `setSignatureCreationTime(boolean isCritical, java.util.Date date)` Set the creation time for the signature.
`void` `setSignatureExpirationTime(boolean isCritical, long seconds)` Set the number of seconds a signature is valid for after the time of its creation.
`void` `setSignerUserID(boolean isCritical, java.lang.String userID)`
`void` `setTrust(boolean isCritical, int depth, int trustAmount)` Add a TrustSignature packet to the signature.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### PGPSignatureSubpacketGenerator

    public PGPSignatureSubpacketGenerator()

### Method Detail

#### setRevocable

    public void setRevocable(boolean isCritical,
                    boolean isRevocable)

#### setExportable

    public void setExportable(boolean isCritical,
                     boolean isExportable)

#### setTrust

    public void setTrust(boolean isCritical,
                int depth,
                int trustAmount)

Add a TrustSignature packet to the signature. The values for depth and trust are largely installation dependent but there are some guidelines in RFC 4880 - 5.2.3.13.

Parameters:
  `isCritical` - true if the packet is critical.
  `depth` - depth level.
  `trustAmount` - trust amount.

#### setKeyExpirationTime

    public void setKeyExpirationTime(boolean isCritical,
                            long seconds)

Set the number of seconds a key is valid for after the time of its creation. A value of zero means the key never expires.

Parameters:
  `isCritical` - true if should be treated as critical, false otherwise.
  `seconds` -

#### setSignatureExpirationTime

    public void setSignatureExpirationTime(boolean isCritical,
                                  long seconds)

Set the number of seconds a signature is valid for after the time of its creation. A value of zero means the signature never expires.

Parameters:
  `isCritical` - true if should be treated as critical, false otherwise.
  `seconds` -

#### setSignatureCreationTime

    public void setSignatureCreationTime(boolean isCritical,
                                java.util.Date date)

Set the creation time for the signature.

Note: this overrides the generation of a creation time when the signature is generated.

#### setPreferredHashAlgorithms

    public void setPreferredHashAlgorithms(boolean isCritical,
                                  int[] algorithms)

#### setPreferredSymmetricAlgorithms

    public void setPreferredSymmetricAlgorithms(boolean isCritical,
                                       int[] algorithms)

#### setPreferredCompressionAlgorithms

    public void setPreferredCompressionAlgorithms(boolean isCritical,
                                         int[] algorithms)

#### setKeyFlags

    public void setKeyFlags(boolean isCritical,
                   int flags)

#### setSignerUserID

    public void setSignerUserID(boolean isCritical,
                       java.lang.String userID)

#### setEmbeddedSignature

    public void setEmbeddedSignature(boolean isCritical,
                            PGPSignature pgpSignature)
                              throws java.io.IOException

Throws:
  `java.io.IOException`

#### setPrimaryUserID

    public void setPrimaryUserID(boolean isCritical,
                        boolean isPrimaryUserID)

#### setNotationData

    public void setNotationData(boolean isCritical,
                       boolean isHumanReadable,
                       java.lang.String notationName,
                       java.lang.String notationValue)

#### generate

    public PGPSignatureSubpacketVector generate()