private PGPPublicKeyRingCollection readPublicKey(final String keytext)
     throws IOException, PGPException {
   PGPPublicKeyRingCollection pgpPub =
       new PGPPublicKeyRingCollection(
           PGPUtil.getDecoderStream(new ByteArrayInputStream(keytext.getBytes())));
   return pgpPub;
 }
Example #2
0
  /**
   * Reads private key from the provided InputStream
   *
   * @param input InputStream of the private key
   * @return PGPSecretKey
   * @throws LRException NO_KEY error if the key cannot be obtained from the input stream
   */
  private PGPSecretKey readSecretKey(InputStream input) throws LRException {
    PGPSecretKeyRingCollection pgpSec;

    try {
      pgpSec = new PGPSecretKeyRingCollection(PGPUtil.getDecoderStream(input));
    } catch (Exception e) {
      throw new LRException(LRException.NO_KEY);
    }

    java.util.Iterator keyRingIter = pgpSec.getKeyRings();
    while (keyRingIter.hasNext()) {
      PGPSecretKeyRing keyRing = (PGPSecretKeyRing) keyRingIter.next();

      java.util.Iterator keyIter = keyRing.getSecretKeys();
      while (keyIter.hasNext()) {
        PGPSecretKey key = (PGPSecretKey) keyIter.next();

        if (key.isSigningKey()) {
          return key;
        }
      }
    }

    throw new LRException(LRException.NO_KEY);
  }
 @SuppressWarnings("resource")
 private static PGPPublicKeyRingCollection readPubRing(final File pub) {
   try {
     InputStream in = new FileInputStream(pub);
     try {
       in = PGPUtil.getDecoderStream(in);
       return new PGPPublicKeyRingCollection(in);
     } finally {
       in.close();
     }
   } catch (IOException e) {
     throw new ProvisionException("Cannot read " + pub, e);
   } catch (PGPException e) {
     throw new ProvisionException("Cannot read " + pub, e);
   }
 }
  static PGPPublicKey readPublicKey(String keyringPath) throws Exception {
    InputStream input = new ByteArrayInputStream(getKeyRing(keyringPath));
    PGPPublicKeyRingCollection pgpPub =
        new PGPPublicKeyRingCollection(PGPUtil.getDecoderStream(input));

    @SuppressWarnings("rawtypes")
    Iterator keyRingIter = pgpPub.getKeyRings();
    while (keyRingIter.hasNext()) {
      PGPPublicKeyRing keyRing = (PGPPublicKeyRing) keyRingIter.next();

      @SuppressWarnings("rawtypes")
      Iterator keyIter = keyRing.getPublicKeys();
      while (keyIter.hasNext()) {
        PGPPublicKey key = (PGPPublicKey) keyIter.next();

        if (key.isEncryptionKey()) {
          return key;
        }
      }
    }

    throw new IllegalArgumentException("Can't find encryption key in key ring.");
  }
  static PGPSecretKey readSecretKey() throws Exception {
    InputStream input = new ByteArrayInputStream(getSecKeyRing());
    PGPSecretKeyRingCollection pgpSec =
        new PGPSecretKeyRingCollection(PGPUtil.getDecoderStream(input));

    @SuppressWarnings("rawtypes")
    Iterator keyRingIter = pgpSec.getKeyRings();
    while (keyRingIter.hasNext()) {
      PGPSecretKeyRing keyRing = (PGPSecretKeyRing) keyRingIter.next();

      @SuppressWarnings("rawtypes")
      Iterator keyIter = keyRing.getSecretKeys();
      while (keyIter.hasNext()) {
        PGPSecretKey key = (PGPSecretKey) keyIter.next();

        if (key.isSigningKey()) {
          return key;
        }
      }
    }

    throw new IllegalArgumentException("Can't find signing key in key ring.");
  }
Example #6
0
  /**
   * Returns the secret key matching the specified identifier.
   *
   * @param input the input stream containing the keyring collection
   * @param keyId the 4 bytes identifier of the key
   */
  private static PGPSecretKey getSecretKey(InputStream input, String keyId)
      throws IOException, PGPException {
    PGPSecretKeyRingCollection keyrings =
        new PGPSecretKeyRingCollection(PGPUtil.getDecoderStream(input));

    Iterator rIt = keyrings.getKeyRings();

    while (rIt.hasNext()) {
      PGPSecretKeyRing kRing = (PGPSecretKeyRing) rIt.next();
      Iterator kIt = kRing.getSecretKeys();

      while (kIt.hasNext()) {
        PGPSecretKey key = (PGPSecretKey) kIt.next();

        if (key.isSigningKey()
            && Long.toHexString(key.getKeyID() & 0xFFFFFFFFL).equals(keyId.toLowerCase())) {
          return key;
        }
      }
    }

    return null;
  }