com.liferay.sync.engine.lan.util.LanPEMParserUtil.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.sync.engine.lan.util.LanPEMParserUtil.java

Source

/**
 * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package com.liferay.sync.engine.lan.util;

import java.io.StringReader;

import java.security.PrivateKey;
import java.security.cert.X509Certificate;

import org.bouncycastle.asn1.pkcs.PrivateKeyInfo;
import org.bouncycastle.cert.X509CertificateHolder;
import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter;
import org.bouncycastle.openssl.PEMParser;
import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter;

/**
 * @author Dennis Ju
 */
public class LanPEMParserUtil {

    public static PrivateKey parsePrivateKey(String privateKey) throws Exception {

        StringBuilder sb = new StringBuilder();

        sb.append("-----BEGIN PRIVATE KEY-----\n");
        sb.append(privateKey);

        if (!privateKey.endsWith("\n")) {
            sb.append("\n");
        }

        sb.append("-----END PRIVATE KEY-----");

        PEMParser pemParser = new PEMParser(new StringReader(sb.toString()));

        JcaPEMKeyConverter jcaPEMKeyConverter = new JcaPEMKeyConverter();

        return jcaPEMKeyConverter.getPrivateKey((PrivateKeyInfo) pemParser.readObject());
    }

    public static X509Certificate parseX509Certificate(String certificate) throws Exception {

        StringBuilder sb = new StringBuilder();

        sb.append("-----BEGIN CERTIFICATE-----\n");
        sb.append(certificate);

        if (!certificate.endsWith("\n")) {
            sb.append("\n");
        }

        sb.append("-----END CERTIFICATE-----");

        PEMParser pemParser = new PEMParser(new StringReader(sb.toString()));

        JcaX509CertificateConverter jcaX509CertificateConverter = new JcaX509CertificateConverter();

        return jcaX509CertificateConverter.getCertificate((X509CertificateHolder) pemParser.readObject());
    }

}