Package org.platformlayer.crypto

Source Code of org.platformlayer.crypto.KeyPairUtils

package org.platformlayer.crypto;

import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;

import org.bouncycastle.openssl.PEMReader;
import org.bouncycastle.openssl.PEMWriter;
import org.platformlayer.ops.OpsException;

import com.fathomdb.crypto.bouncycastle.BouncyCastleLoader;
import com.fathomdb.io.IoUtils;

public class KeyPairUtils {

  public static KeyPair deserialize(String keyData) throws IOException {
    PEMReader r = new PEMReader(new StringReader(keyData), null, BouncyCastleLoader.getName());
    try {
      return (KeyPair) r.readObject();
    } finally {
      IoUtils.safeClose(r);
    }
  }

  public static String serialize(KeyPair keyPair) throws IOException {
    StringWriter writer = new StringWriter();
    PEMWriter pemWriter = new PEMWriter(writer, BouncyCastleLoader.getName());
    try {
      pemWriter.writeObject(keyPair);
      pemWriter.flush();
      return writer.toString();
    } finally {
      IoUtils.safeClose(pemWriter);
    }
  }

  public static KeyPair generateKeyPair(String algorithm, Integer keySize) throws OpsException {
    KeyPairGenerator generator;
    try {
      generator = KeyPairGenerator.getInstance(algorithm);
    } catch (NoSuchAlgorithmException e) {
      throw new OpsException("Error building keypair generator: " + algorithm, e);
    }
    if (keySize != null) {
      generator.initialize(keySize);
    }
    return generator.generateKeyPair();
  }

}
TOP

Related Classes of org.platformlayer.crypto.KeyPairUtils

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.