Example usage for org.bouncycastle.util.io.pem PemReader readPemObject

List of usage examples for org.bouncycastle.util.io.pem PemReader readPemObject

Introduction

In this page you can find the example usage for org.bouncycastle.util.io.pem PemReader readPemObject.

Prototype

public PemObject readPemObject() throws IOException 

Source Link

Document

Read the next PEM object as a blob of raw data with header information.

Usage

From source file:de.alpharogroup.crypto.key.KeyExtensions.java

License:Open Source License

/**
 * Gets the pem object.//from w w  w  .  j  a  va2s. c  o m
 *
 * @param file
 *            the file
 * @return the pem object
 * @throws IOException
 *             Signals that an I/O exception has occurred.
 */
public static PemObject getPemObject(final File file) throws IOException {
    PemObject pemObject;
    final PemReader pemReader = new PemReader(new InputStreamReader(new FileInputStream(file)));
    try {
        pemObject = pemReader.readPemObject();
    } finally {
        pemReader.close();
    }
    return pemObject;
}

From source file:io.apigee.trireme.crypto.algorithms.DsaKeyPairProvider.java

License:Open Source License

/**
 * DSA Key Pair format -- the PEM file contains an ASN.1 sequence containing six integers:
 * p, q, g, y, and x. We construct the appropriate Java data structures after parsing those.
 *///from w  w w  .  j av a2s. c  om
@Override
public KeyPair readKeyPair(String algorithm, Reader rdr, char[] passphrase)
        throws CryptoException, IOException {
    PemReader reader = new PemReader(rdr);

    PemObject pemObj = reader.readPemObject();
    if (pemObj == null) {
        throw new CryptoException("Not a valid PEM file");
    }

    if (!DSA_TYPE.equals(pemObj.getType())) {
        throw new CryptoException("PEM file does not contain a DSA private key");
    }

    ASN1InputStream asnIn = new ASN1InputStream(pemObj.getContent());
    ASN1Primitive ao = asnIn.readObject();
    if (ao == null) {
        throw new CryptoException("PEM file does not contain an ASN.1 object");
    }
    if (!(ao instanceof ASN1Sequence)) {
        throw new CryptoException("PEM file does not contain a sequence");
    }

    ASN1Sequence seq = (ASN1Sequence) ao;
    if (seq.size() != 6) {
        throw new CryptoException("ASN.1 sequence is the wrong length for a DSA key");
    }

    DERInteger p = (DERInteger) seq.getObjectAt(1);
    DERInteger q = (DERInteger) seq.getObjectAt(2);
    DERInteger g = (DERInteger) seq.getObjectAt(3);
    DERInteger y = (DERInteger) seq.getObjectAt(4);
    DERInteger x = (DERInteger) seq.getObjectAt(5);

    try {
        KeyFactory factory = KeyFactory.getInstance("DSA");

        DSAPublicKeySpec pubSpec = new DSAPublicKeySpec(y.getValue(), p.getValue(), q.getValue(), g.getValue());
        PublicKey pub = factory.generatePublic(pubSpec);

        DSAPrivateKeySpec keySpec = new DSAPrivateKeySpec(x.getValue(), p.getValue(), q.getValue(),
                g.getValue());
        PrivateKey key = factory.generatePrivate(keySpec);

        return new KeyPair(pub, key);

    } catch (GeneralSecurityException gse) {
        throw new CryptoException(gse);
    }
}

From source file:io.kodokojo.commons.utils.RSAUtils.java

License:Open Source License

public static RSAPrivateKey readRsaPrivateKey(Reader reader) {
    Security.addProvider(new BouncyCastleProvider());
    try {//from   w  w w  . j  a v a2s . com
        KeyFactory factory = KeyFactory.getInstance("RSA", "BC");

        PemReader pemReader = new PemReader(reader);
        PemObject privatePem = pemReader.readPemObject();
        PKCS8EncodedKeySpec privateSpec = new PKCS8EncodedKeySpec(privatePem.getContent());
        RSAPrivateKey privateKey = (RSAPrivateKey) factory.generatePrivate(privateSpec);
        return privateKey;
    } catch (IOException | NoSuchAlgorithmException | InvalidKeySpecException | NoSuchProviderException e) {
        throw new RuntimeException("Unable to extract private RAS Key .", e);
    }
}

From source file:ir.iais.gensig.utilities.PemFile.java

public PemFile(String filename) throws FileNotFoundException, IOException {
    PemReader pemReader = new PemReader(new InputStreamReader(new FileInputStream(filename)));
    try {//from w w w.j av a2  s . co m
        this.pemObject = pemReader.readPemObject();
    } finally {
        pemReader.close();
    }
}

From source file:jazmin.server.relay.udp.webrtc.TlsUtils.java

License:Open Source License

static PemObject loadPemResource(String resource) throws IOException {
    InputStream s = TlsUtils.class.getResourceAsStream(resource);
    PemReader p = new PemReader(new InputStreamReader(s));
    PemObject o = p.readPemObject();
    p.close();//from w w w  . ja v a 2s  .  co m
    return o;
}

From source file:mamo.vanillaVotifier.AbstractConfig.java

License:Open Source License

protected void loadKeyPair() throws IOException, InvalidKeySpecException {
    if (!publicKeyFile.exists() && !privateKeyFile.exists()) {
        generateKeyPair();//  w  ww . j a v  a 2  s  . c  om
        saveKeyPair();
    }
    if (!publicKeyFile.exists()) {
        throw new PublicKeyFileNotFoundException();
    }
    if (!privateKeyFile.exists()) {
        throw new PrivateKeyFileNotFoundException();
    }
    PemReader publicKeyPemReader = new PemReader(new BufferedReader(new FileReader(publicKeyFile)));
    PemReader privateKeyPemReader = new PemReader(new BufferedReader(new FileReader(privateKeyFile)));
    PemObject publicPemObject = publicKeyPemReader.readPemObject();
    if (publicPemObject == null) {
        throw new InvalidPublicKeyFileException();
    }
    PemObject privatePemObject = privateKeyPemReader.readPemObject();
    if (privatePemObject == null) {
        throw new InvalidPrivateKeyFileException();
    }
    keyPair = new KeyPair(RsaUtils.bytesToPublicKey(publicPemObject.getContent()),
            RsaUtils.bytesToPrivateKey(privatePemObject.getContent()));
    publicKeyPemReader.close();
    privateKeyPemReader.close();
}

From source file:mamo.vanillaVotifier.JsonConfig.java

License:Open Source License

@Override
public synchronized void load() throws IOException, InvalidKeySpecException {
    if (!configFile.exists()) {
        BufferedInputStream in = new BufferedInputStream(JsonConfig.class.getResourceAsStream("config.json"));
        StringBuilder stringBuilder = new StringBuilder();
        int i;//from  www.  jav a  2  s .  com
        while ((i = in.read()) != -1) {
            stringBuilder.append((char) i);
        }
        BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(configFile));
        for (char c : stringBuilder.toString()
                .replaceAll("\\u000D\\u000A|[\\u000A\\u000B\\u000C\\u000D\\u0085\\u2028\\u2029]",
                        System.getProperty("line.separator"))
                .toCharArray()) {
            out.write((int) c);
        }
        out.flush();
        out.close();
    }
    BufferedInputStream in = new BufferedInputStream(JsonConfig.class.getResourceAsStream("config.json"));
    JSONObject defaultConfig = new JSONObject(new JSONTokener(in));
    in.close();
    JSONObject config = new JSONObject(
            new JSONTokener(new BufferedInputStream(new FileInputStream(configFile))));
    boolean save = JsonUtils.merge(defaultConfig, config);
    configVersion = config.getInt("config-version");
    if (configVersion == 2) {
        v2ToV3(config);
        configVersion = 3;
        save = true;
    }
    logFile = new File(config.getString("log-file"));
    inetSocketAddress = new InetSocketAddress(config.getString("ip"), config.getInt("port"));
    publicKeyFile = new File(config.getJSONObject("key-pair-files").getString("public"));
    privateKeyFile = new File(config.getJSONObject("key-pair-files").getString("private"));
    if (!publicKeyFile.exists() && !privateKeyFile.exists()) {
        KeyPair keyPair = RsaUtils.genKeyPair();
        PemWriter publicPemWriter = new PemWriter(new BufferedWriter(new FileWriter(publicKeyFile)));
        publicPemWriter.writeObject(new PemObject("PUBLIC KEY", keyPair.getPublic().getEncoded()));
        publicPemWriter.flush();
        publicPemWriter.close();
        PemWriter privatePemWriter = new PemWriter(new BufferedWriter(new FileWriter(privateKeyFile)));
        privatePemWriter.writeObject(new PemObject("RSA PRIVATE KEY", keyPair.getPrivate().getEncoded()));
        privatePemWriter.flush();
        privatePemWriter.close();
    }
    if (!publicKeyFile.exists()) {
        throw new PublicKeyFileNotFoundException();
    }
    if (!privateKeyFile.exists()) {
        throw new PrivateKeyFileNotFoundException();
    }
    PemReader publicKeyPemReader = new PemReader(new BufferedReader(new FileReader(publicKeyFile)));
    PemReader privateKeyPemReader = new PemReader(new BufferedReader(new FileReader(privateKeyFile)));
    PemObject publicPemObject = publicKeyPemReader.readPemObject();
    if (publicPemObject == null) {
        throw new InvalidPublicKeyFileException();
    }
    PemObject privatePemObject = privateKeyPemReader.readPemObject();
    if (privatePemObject == null) {
        throw new InvalidPrivateKeyFileException();
    }
    keyPair = new KeyPair(RsaUtils.bytesToPublicKey(publicPemObject.getContent()),
            RsaUtils.bytesToPrivateKey(privatePemObject.getContent()));
    publicKeyPemReader.close();
    privateKeyPemReader.close();
    rconConfigs = new ArrayList<RconConfig>();
    for (int i = 0; i < config.getJSONArray("rcon-list").length(); i++) {
        JSONObject jsonObject = config.getJSONArray("rcon-list").getJSONObject(i);
        RconConfig rconConfig = new RconConfig(
                new InetSocketAddress(jsonObject.getString("ip"), jsonObject.getInt("port")),
                jsonObject.getString("password"));
        for (int j = 0; j < jsonObject.getJSONArray("commands").length(); j++) {
            rconConfig.getCommands().add(jsonObject.getJSONArray("commands").getString(j));
        }
        rconConfigs.add(rconConfig);
    }
    loaded = true;
    if (save) {
        save();
    }
}

From source file:net.etfbl.cryptodigitalcertificate.tool.util.CryptoPEMExtractor.java

public Key loadKey(String filePath, boolean pubKey)
        throws FileNotFoundException, IOException, NoSuchAlgorithmException, InvalidKeySpecException {
    Key key = null;/*  w w w  .  java2 s  .co m*/
    PemReader reader = new PemReader(new InputStreamReader(new FileInputStream(filePath)));
    PemObject keyObject = reader.readPemObject();
    reader.close();
    if (pubKey) {
        key = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(keyObject.getContent()));
    } else {
        key = KeyFactory.getInstance("RSA").generatePrivate(new PKCS8EncodedKeySpec(keyObject.getContent()));
    }
    return key;
}

From source file:net.solarnetwork.node.setup.test.DefaultKeystoreServiceTest.java

License:Open Source License

@Test
public void saveCASignedCert() throws Exception {
    SetupIdentityInfo info = new SetupIdentityInfo(1L, TEST_CONF_VALUE, "localhost", 80, false, TEST_PW_VALUE);
    expect(setupIdentityDao.getSetupIdentityInfo()).andReturn(info).atLeastOnce();
    replayAll();//from w  w  w.j  a v  a  2 s  .  c o  m
    service.saveCACertificate(CA_CERT);
    service.generateNodeSelfSignedCertificate(TEST_DN);
    String csr = service.generateNodePKCS10CertificateRequestString();

    PemReader pemReader = new PemReader(new StringReader(csr));
    try {
        PemObject pem = pemReader.readPemObject();
        PKCS10CertificationRequest req = new PKCS10CertificationRequest(pem.getContent());
        X509Certificate signedCert = PKITestUtils.sign(req, CA_CERT, CA_KEY_PAIR.getPrivate());
        String signedPem = PKITestUtils.getPKCS7Encoding(new X509Certificate[] { signedCert });
        service.saveNodeSignedCertificate(signedPem);

        log.debug("Saved signed node certificate:\n{}", signedPem);

        assertNotNull(csr);
    } finally {
        pemReader.close();
    }
}

From source file:net.solarnetwork.node.setup.test.DefaultKeystoreServiceTest.java

License:Open Source License

@Test
public void saveCASubSignedCert() throws Exception {
    SetupIdentityInfo info = new SetupIdentityInfo(1L, TEST_CONF_VALUE, "localhost", 80, false, TEST_PW_VALUE);
    expect(setupIdentityDao.getSetupIdentityInfo()).andReturn(info).atLeastOnce();
    replayAll();/*  w  w  w . java 2 s .  c o m*/
    service.saveCACertificate(CA_CERT);
    service.generateNodeSelfSignedCertificate(TEST_DN);
    String csr = service.generateNodePKCS10CertificateRequestString();

    PemReader pemReader = new PemReader(new StringReader(csr));
    try {
        PemObject pem = pemReader.readPemObject();
        PKCS10CertificationRequest req = new PKCS10CertificationRequest(pem.getContent());
        X509Certificate signedCert = PKITestUtils.sign(req, CA_SUB_CERT, CA_SUB_KEY_PAIR.getPrivate());
        String signedPem = PKITestUtils
                .getPKCS7Encoding(new X509Certificate[] { signedCert, CA_SUB_CERT, CA_CERT });
        service.saveNodeSignedCertificate(signedPem);

        log.debug("Saved signed node certificate:\n{}", signedPem);
        assertNotNull(csr);
    } finally {
        pemReader.close();
    }
}