SecretKeyPacket
Date: 2016-06-23

org.bouncycastle.bcpg

## Class SecretKeyPacket

- java.lang.Object
- - org.bouncycastle.bcpg.Packet
  - - org.bouncycastle.bcpg.ContainedPacket
    - - org.bouncycastle.bcpg.SecretKeyPacket

- All Implemented Interfaces:
    PacketTags, PublicKeyAlgorithmTags, org.bouncycastle.util.Encodable
  Direct Known Subclasses:
    SecretSubkeyPacket

      public class SecretKeyPacket
      extends ContainedPacket
      implements PublicKeyAlgorithmTags

  basic packet for a PGP secret key

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `USAGE_CHECKSUM`
    `static int` | `USAGE_NONE`
    `static int` | `USAGE_SHA1`

    - ### Fields inherited from interface org.bouncycastle.bcpg.PublicKeyAlgorithmTags

      `DIFFIE_HELLMAN, DSA, EC, ECDH, ECDSA, ELGAMAL_ENCRYPT, ELGAMAL_GENERAL, EXPERIMENTAL_1, EXPERIMENTAL_10, EXPERIMENTAL_11, EXPERIMENTAL_2, EXPERIMENTAL_3, EXPERIMENTAL_4, EXPERIMENTAL_5, EXPERIMENTAL_6, EXPERIMENTAL_7, EXPERIMENTAL_8, EXPERIMENTAL_9, RSA_ENCRYPT, RSA_GENERAL, RSA_SIGN`

    - ### Fields inherited from interface org.bouncycastle.bcpg.PacketTags

      `COMPRESSED_DATA, EXPERIMENTAL_1, EXPERIMENTAL_2, EXPERIMENTAL_3, EXPERIMENTAL_4, LITERAL_DATA, MARKER, MOD_DETECTION_CODE, ONE_PASS_SIGNATURE, PUBLIC_KEY, PUBLIC_KEY_ENC_SESSION, PUBLIC_SUBKEY, RESERVED, SECRET_KEY, SECRET_SUBKEY, SIGNATURE, SYM_ENC_INTEGRITY_PRO, SYMMETRIC_KEY_ENC, SYMMETRIC_KEY_ENC_SESSION, TRUST, USER_ATTRIBUTE, USER_ID`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SecretKeyPacket(PublicKeyPacket pubKeyPacket, int encAlgorithm, int s2kUsage, S2K s2k, byte[] iv, byte[] secKeyData)`
    `SecretKeyPacket(PublicKeyPacket pubKeyPacket, int encAlgorithm, S2K s2k, byte[] iv, byte[] secKeyData)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `encode(BCPGOutputStream out)`
    `int` | `getEncAlgorithm()`
    `byte[]` | `getEncodedContents()`
    `byte[]` | `getIV()`
    `PublicKeyPacket` | `getPublicKeyPacket()`
    `S2K` | `getS2K()`
    `int` | `getS2KUsage()`
    `byte[]` | `getSecretKeyData()`

    - ### Methods inherited from class org.bouncycastle.bcpg.ContainedPacket

      `getEncoded`

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

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

- - ### Field Detail

    - #### USAGE_NONE

          public static final int USAGE_NONE

      See Also:
        Constant Field Values

    - #### USAGE_CHECKSUM

          public static final int USAGE_CHECKSUM

      See Also:
        Constant Field Values

    - #### USAGE_SHA1

          public static final int USAGE_SHA1

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### SecretKeyPacket

          public SecretKeyPacket(PublicKeyPacket pubKeyPacket,
                         int encAlgorithm,
                         S2K s2k,
                         byte[] iv,
                         byte[] secKeyData)

      Parameters:
        `pubKeyPacket` -
        `encAlgorithm` -
        `s2k` -
        `iv` -
        `secKeyData` -

    - #### SecretKeyPacket

          public SecretKeyPacket(PublicKeyPacket pubKeyPacket,
                         int encAlgorithm,
                         int s2kUsage,
                         S2K s2k,
                         byte[] iv,
                         byte[] secKeyData)

  - ### Method Detail

    - #### getEncAlgorithm

          public int getEncAlgorithm()

    - #### getS2KUsage

          public int getS2KUsage()

    - #### getIV

          public byte[] getIV()

    - #### getS2K

          public S2K getS2K()

    - #### getPublicKeyPacket

          public PublicKeyPacket getPublicKeyPacket()

    - #### getSecretKeyData

          public byte[] getSecretKeyData()

    - #### getEncodedContents

          public byte[] getEncodedContents()
                                    throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### encode

          public void encode(BCPGOutputStream out)
                      throws java.io.IOException

      Specified by:
        `encode` in class `ContainedPacket`
      Throws:
        `java.io.IOException`