Class KeyForSigning

java.lang.Object
org.c02e.jpgpj.Key
org.c02e.jpgpj.key.KeyForSigning
All Implemented Interfaces:
Cloneable

public class KeyForSigning extends Key
Key that should be used exclusively for signing.

Regardless of PGP usage flags associated with the original key source, only the last subkey flagged for signing will be used, and the key will be used for nothing else (so the Encryptor will use this key only for signing, and not for encryption; and the Decryptor will ignore this key entirely). If no subkeys have been flagged for signing, this class will automatically flag the subkey most likely to have been intended to be used for signing.

Use like the following:


 new Encryptor(
     new KeyForSigning(new File("path/to/my/keys/alice-sec.gpg"), "password123"),
     new KeyForEncryption(new File("path/to/my/keys/bob-pub.gpg"))
 ).encrypt(
     new File("path/to/plaintext.txt"),
     new File("path/to/ciphertext.txt.gpg")
 );
 
See Also:
  • Constructor Details

    • KeyForSigning

      public KeyForSigning()
      Constructs a new empty key.
    • KeyForSigning

      public KeyForSigning(List<Subkey> subkeys)
      Constructs a new key with the specified subkeys.
    • KeyForSigning

      public KeyForSigning(String armor) throws IOException, org.bouncycastle.openpgp.PGPException
      Loads first key from the specified armored text.
      Throws:
      org.bouncycastle.openpgp.PGPException - if the text contains no keys.
      IOException
    • KeyForSigning

      public KeyForSigning(String armor, char[] passphraseChars) throws IOException, org.bouncycastle.openpgp.PGPException
      Loads first key from the specified armored text, and sets the passphrase of all subkeys to the specified passphrase.
      Throws:
      org.bouncycastle.openpgp.PGPException - if the text contains no keys.
      IOException
    • KeyForSigning

      public KeyForSigning(String armor, String passphrase) throws IOException, org.bouncycastle.openpgp.PGPException
      Loads first key from the specified armored text, and sets the passphrase of all subkeys to the specified passphrase. Prefer KeyForSigning(String, char[]) to avoid creating extra copies of the passphrase in memory that cannot be cleaned up.
      Throws:
      org.bouncycastle.openpgp.PGPException - if the text contains no keys.
      IOException
    • KeyForSigning

      public KeyForSigning(File file) throws IOException, org.bouncycastle.openpgp.PGPException
      Loads first key from the specified file.
      Throws:
      org.bouncycastle.openpgp.PGPException - if the file contains no keys.
      IOException
    • KeyForSigning

      public KeyForSigning(File file, char[] passphraseChars) throws IOException, org.bouncycastle.openpgp.PGPException
      Loads first key from the specified file, and sets the passphrase of all subkeys to the specified passphrase.
      Throws:
      org.bouncycastle.openpgp.PGPException - if the file contains no keys.
      IOException
    • KeyForSigning

      public KeyForSigning(File file, String passphrase) throws IOException, org.bouncycastle.openpgp.PGPException
      Loads first key from the specified file, and sets the passphrase of all subkeys to the specified passphrase. Prefer KeyForSigning(File, char[]) to avoid creating extra copies of the passphrase in memory that cannot be cleaned up.
      Throws:
      org.bouncycastle.openpgp.PGPException - if the file contains no keys.
      IOException
    • KeyForSigning

      public KeyForSigning(InputStream stream) throws IOException, org.bouncycastle.openpgp.PGPException
      Loads first key from the specified input stream.
      Throws:
      org.bouncycastle.openpgp.PGPException - if the input streame contains no keys.
      IOException
    • KeyForSigning

      public KeyForSigning(InputStream stream, char[] passphraseChars) throws IOException, org.bouncycastle.openpgp.PGPException
      Loads first key from the specified input stream, and sets the passphrase of all subkeys to the specified passphrase.
      Throws:
      org.bouncycastle.openpgp.PGPException - if the input streame contains no keys.
      IOException
    • KeyForSigning

      public KeyForSigning(InputStream stream, String passphrase) throws IOException, org.bouncycastle.openpgp.PGPException
      Loads first key from the specified input stream, and sets the passphrase of all subkeys to the specified passphrase. Prefer KeyForSigning(InputStream, char[]) to avoid creating extra copies of the passphrase in memory that cannot be cleaned up.
      Throws:
      org.bouncycastle.openpgp.PGPException - if the input streame contains no keys.
      IOException
  • Method Details

    • setSubkeys

      protected void setSubkeys(List<Subkey> x)
      Description copied from class: Key
      All subkeys, or an empty list.
      Overrides:
      setSubkeys in class Key
    • setSubkeysUsage

      protected void setSubkeysUsage()