Package 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 | Description
    --- | --- | ---
    `static int` | `USAGE_CHECKSUM` |
    `static int` | `USAGE_NONE` |
    `static int` | `USAGE_SHA1` |

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

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

      `DIFFIE_HELLMAN, DSA, EC, ECDH, ECDSA, EDDSA, 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`

  - ### Constructor Summary

    Constructors
    Constructor | 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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | 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`