Example usage for org.bouncycastle.openpgp.operator.jcajce JcaPGPKeyConverter JcaPGPKeyConverter

List of usage examples for org.bouncycastle.openpgp.operator.jcajce JcaPGPKeyConverter JcaPGPKeyConverter

Introduction

In this page you can find the example usage for org.bouncycastle.openpgp.operator.jcajce JcaPGPKeyConverter JcaPGPKeyConverter.

Prototype

JcaPGPKeyConverter

Source Link

Usage

From source file:com.goodvikings.cryptim.api.KeyRing.java

License:BEER-WARE LICENSE

private byte[] ASN1EncodeKeys() throws IOException, PGPException {
    JcaPGPKeyConverter converter = new JcaPGPKeyConverter();

    PrivateKey priv = converter.getPrivateKey(kp.getPrivateKey());
    PublicKey pub = converter.getPublicKey(kp.getPublicKey());

    ASN1EncodableVector pubSeq = new ASN1EncodableVector();

    for (String jid : keys.keySet()) {
        pubSeq.add(new DERSequence(new ASN1Encodable[] { new DERUTF8String(jid),
                new DERUTF8String(nicks.get(jid)), new DERUTCTime(keys.get(jid).getCreationTime()),
                new DEROctetString(converter.getPublicKey(keys.get(jid)).getEncoded()) }));
    }/*from  w  w  w  . ja v  a 2  s. c  om*/

    DERSequence seq = new DERSequence(new ASN1Encodable[] {
            new DERSequence(new ASN1Encodable[] { new DERUTCTime(kp.getPublicKey().getCreationTime()),
                    new DEROctetString(pub.getEncoded()) }),
            new DEROctetString(priv.getEncoded()), new DERSequence(pubSeq) });

    return seq.getEncoded();
}

From source file:com.goodvikings.cryptim.api.KeyRing.java

License:BEER-WARE LICENSE

private void ASN1DecodeKeys(byte[] plain) throws IOException, PGPException, NoSuchProviderException,
        ParseException, InvalidKeyException, NoSuchAlgorithmException, InvalidKeySpecException {
    JcaPGPKeyConverter converter = new JcaPGPKeyConverter();

    ASN1Sequence seq = (ASN1Sequence) new ASN1InputStream(new ByteArrayInputStream(plain)).readObject();

    PGPPublicKey pub = converter.getPGPPublicKey(PGPPublicKey.RSA_GENERAL,
            new RSAPublicKeyImpl(
                    ((ASN1OctetString) ((ASN1Sequence) seq.getObjectAt(0)).getObjectAt(1)).getOctets()),
            ((ASN1UTCTime) ((ASN1Sequence) seq.getObjectAt(0)).getObjectAt(0)).getAdjustedDate());
    kp = new PGPKeyPair(pub, converter.getPGPPrivateKey(pub, KeyFactory.getInstance("RSA")
            .generatePrivate(new PKCS8EncodedKeySpec(((ASN1OctetString) seq.getObjectAt(1)).getOctets()))));

    ASN1Sequence keySeq = (ASN1Sequence) seq.getObjectAt(2);

    for (int i = 0; i < keySeq.size(); i++) {
        keys.put(((DERUTF8String) ((ASN1Sequence) keySeq.getObjectAt(i)).getObjectAt(0)).getString(),
                converter.getPGPPublicKey(PGPPublicKey.RSA_GENERAL, new RSAPublicKeyImpl(
                        ((ASN1OctetString) ((ASN1Sequence) keySeq.getObjectAt(i)).getObjectAt(3)).getOctets()),
                        ((ASN1UTCTime) ((ASN1Sequence) keySeq.getObjectAt(i)).getObjectAt(2))
                                .getAdjustedDate()));
        nicks.put(((DERUTF8String) ((ASN1Sequence) keySeq.getObjectAt(i)).getObjectAt(0)).getString(),
                ((DERUTF8String) ((ASN1Sequence) keySeq.getObjectAt(i)).getObjectAt(1)).getString());
    }//  w  ww  .j ava  2s. c  om
}

From source file:com.goodvikings.cryptim.api.KeyRing.java

License:BEER-WARE LICENSE

private boolean testKeyRing() throws BadPaddingException, IllegalBlockSizeException, InvalidKeyException,
        NoSuchAlgorithmException, NoSuchPaddingException, NoSuchProviderException, PGPException {
    JcaPGPKeyConverter conv = new JcaPGPKeyConverter();

    PublicKey pub = conv.getPublicKey(kp.getPublicKey());
    PrivateKey priv = conv.getPrivateKey(kp.getPrivateKey());

    String testData = "The quick brown fox jumps over the lazy dog.";

    Cipher enc = Cipher.getInstance(pub.getAlgorithm(), PROVIDER);
    enc.init(Cipher.ENCRYPT_MODE, pub);
    byte[] ciphertext = enc.doFinal(testData.getBytes());

    Cipher dec = Cipher.getInstance(pub.getAlgorithm(), PROVIDER);
    dec.init(Cipher.DECRYPT_MODE, priv);
    return new String(dec.doFinal(ciphertext)).equals(testData);
}

From source file:org.kontalk.certgen.PGP.java

License:Open Source License

private static void ensureKeyConverter() {
    if (sKeyConverter == null)
        sKeyConverter = new JcaPGPKeyConverter().setProvider(PGP.PROVIDER);
}

From source file:org.kontalk.crypto.PGPUtils.java

License:Open Source License

private static void ensureKeyConverter() {
    if (sKeyConverter == null)
        sKeyConverter = new JcaPGPKeyConverter().setProvider(PGPUtils.PROVIDER);
}

From source file:org.kontalk.xmppserver.pgp.PGPUtils.java

License:Open Source License

private static void ensureKeyConverter() {
    if (sKeyConverter == null)
        sKeyConverter = new JcaPGPKeyConverter().setProvider(org.kontalk.xmppserver.Security.PROVIDER);
}

From source file:org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey.java

License:Open Source License

public RSAPrivateCrtKey getCrtSecretKey() throws PgpGeneralException {
    if (mPrivateKeyState == PRIVATE_KEY_STATE_LOCKED) {
        throw new PgpGeneralException("Cannot get secret key attributes while key is locked.");
    }/*from   w w w . ja  v  a  2 s.  c o  m*/

    if (mPrivateKeyState == PRIVATE_KEY_STATE_DIVERT_TO_CARD) {
        throw new PgpGeneralException("Cannot get secret key attributes of divert-to-card key.");
    }

    JcaPGPKeyConverter keyConverter = new JcaPGPKeyConverter();
    PrivateKey retVal;
    try {
        retVal = keyConverter.getPrivateKey(mPrivateKey);
    } catch (PGPException e) {
        throw new PgpGeneralException("Error converting private key!", e);
    }

    return (RSAPrivateCrtKey) retVal;
}