當前位置: 首頁>>代碼示例>>Java>>正文


Java PEMKeyPair類代碼示例

本文整理匯總了Java中org.bouncycastle.openssl.PEMKeyPair的典型用法代碼示例。如果您正苦於以下問題:Java PEMKeyPair類的具體用法?Java PEMKeyPair怎麽用?Java PEMKeyPair使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


PEMKeyPair類屬於org.bouncycastle.openssl包,在下文中一共展示了PEMKeyPair類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: setUp

import org.bouncycastle.openssl.PEMKeyPair; //導入依賴的package包/類
@Before
public void setUp() throws Exception {
    // TODO should do this in @BeforeClass. Need to find out how to get to
    // files from static junit method
    BufferedInputStream bis = new BufferedInputStream(this.getClass().getResourceAsStream("/ca.crt"));
    testCACert = cf.generateCertificate(bis);
    bis.close();
    crypto.addCACertificateToTrustStore(testCACert, "ca");

    bis = new BufferedInputStream(this.getClass().getResourceAsStream("/keypair-signed.crt"));
    Certificate cert = cf.generateCertificate(bis);
    bis.close();

    // TODO: get PEM file without dropping down to BouncyCastle ?
    PEMParser pem = new PEMParser(new FileReader(this.getClass().getResource("/keypair-signed.key").getFile()));
    PEMKeyPair bcKeyPair = (PEMKeyPair) pem.readObject();
    PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(bcKeyPair.getPrivateKeyInfo().getEncoded());
    PrivateKey key = kf.generatePrivate(keySpec);

    Certificate[] certificates = new Certificate[] {cert, testCACert};
    crypto.getTrustStore().setKeyEntry("key", key, "123456".toCharArray(), certificates);
    pem.close();
}
 
開發者ID:hyperledger,項目名稱:fabric-sdk-java,代碼行數:24,代碼來源:CryptoPrimitivesTest.java

示例2: getKeyPair

import org.bouncycastle.openssl.PEMKeyPair; //導入依賴的package包/類
public KeyPair getKeyPair(PEMKeyPair keyPair)
    throws PEMException
{
    try
    {
        String algorithm =  keyPair.getPrivateKeyInfo().getPrivateKeyAlgorithm().getAlgorithm().getId();

        if (X9ObjectIdentifiers.id_ecPublicKey.getId().equals(algorithm))
        {
            algorithm = "ECDSA";
        }

        KeyFactory keyFactory = helper.createKeyFactory(algorithm);

        return new KeyPair(keyFactory.generatePublic(new X509EncodedKeySpec(keyPair.getPublicKeyInfo().getEncoded())),
                            keyFactory.generatePrivate(new PKCS8EncodedKeySpec(keyPair.getPrivateKeyInfo().getEncoded())));
    }
    catch (Exception e)
    {
        throw new PEMException("unable to convert key pair: " + e.getMessage(), e);
    }
}
 
開發者ID:Appdome,項目名稱:ipack,代碼行數:23,代碼來源:JcaPEMKeyConverter.java

示例3: generate

import org.bouncycastle.openssl.PEMKeyPair; //導入依賴的package包/類
static PrivateKey generate(Path path) throws IOException {
    try (Reader in = Files.newBufferedReader(path, StandardCharsets.UTF_8)) {
        PEMParser parser = new PEMParser(in);

        Object keyPair = parser.readObject();
        if (!(keyPair instanceof PEMKeyPair)) {
            throw new IllegalStateException(String.format("%s contains an artifact that is not a key pair: %s", path, keyPair));
        }

        PrivateKeyInfo privateKeyInfo = ((PEMKeyPair) keyPair).getPrivateKeyInfo();
        if (privateKeyInfo == null) {
            throw new IllegalStateException(String.format("%s does not contain a private key", path));
        }

        return CONVERTER.getPrivateKey(privateKeyInfo);
    }
}
 
開發者ID:cloudfoundry,項目名稱:java-buildpack-security-provider,代碼行數:18,代碼來源:PrivateKeyFactory.java

示例4: createKeyPair

import org.bouncycastle.openssl.PEMKeyPair; //導入依賴的package包/類
/**
 * Utility method to decode a PEM encoded private key string to a PrivateKey instance
 * @param key
 *         - a PEM encoded private key string
 * @return - decoded PrivateKey instance
 */
public static KeyPair createKeyPair(String key) {
    AssertUtil.assertNotNull(key, "key");
    String decryptedKey = EncryptionUtils.decrypt(key);
    try (PEMParser parser = new PEMParser(new StringReader(decryptedKey))) {

        JcaPEMKeyConverter converter = new JcaPEMKeyConverter();
        PEMKeyPair keyPair = (PEMKeyPair) parser.readObject();
        if (keyPair == null) {
            throw new RuntimeException("A valid key pair was not found");
        }
        return converter.getKeyPair(keyPair);

    } catch (IOException e) {
        throw new RuntimeException("Failed to create key pair", e);
    }
}
 
開發者ID:vmware,項目名稱:photon-model,代碼行數:23,代碼來源:CertificateUtil.java

示例5: readPrivateKey

import org.bouncycastle.openssl.PEMKeyPair; //導入依賴的package包/類
/**
 * Reads a base64-format PEM key and returns a Java PrivateKey for it.
 * @param privateKey PEM-encoded private key
 */
public static PrivateKey readPrivateKey(String privateKey) {
    try (StringReader keyReader = new StringReader(privateKey);
         PEMParser pemReader = new PEMParser(keyReader)) {
        
        JcaPEMKeyConverter converter = new JcaPEMKeyConverter();
        Object keyPair = pemReader.readObject();
        if (keyPair instanceof PrivateKeyInfo) {
            return converter.getPrivateKey((PrivateKeyInfo) keyPair);
        } else {
            return converter.getPrivateKey(((PEMKeyPair) keyPair).getPrivateKeyInfo());
        }
    } catch (IOException x) {
        // Shouldn't occur, since we're only reading from strings
        throw new RuntimeException(x);            
    }
}
 
開發者ID:Tradeshift,項目名稱:ts-reaktive,代碼行數:21,代碼來源:SSLFactory.java

示例6: getPrivateKeyFromPEM

import org.bouncycastle.openssl.PEMKeyPair; //導入依賴的package包/類
private static PrivateKey getPrivateKeyFromPEM(final Reader keyReader)
  throws IOException {
  final JcaPEMKeyConverter jcaPEMKeyConverter = new JcaPEMKeyConverter();

  final PEMParser pem = new PEMParser(keyReader);

  PrivateKey key;
  Object pemContent = pem.readObject();
  if(pemContent instanceof PEMKeyPair) {
    PEMKeyPair pemKeyPair = (PEMKeyPair)pemContent;
    KeyPair keyPair = jcaPEMKeyConverter.getKeyPair(pemKeyPair);
    key = keyPair.getPrivate();
  } else if (pemContent instanceof PrivateKeyInfo) {
    PrivateKeyInfo privateKeyInfo = (PrivateKeyInfo) pemContent;
    key = jcaPEMKeyConverter.getPrivateKey(privateKeyInfo);
  } else {
    throw new IllegalArgumentException("Unsupported private key format '" + pemContent.getClass().getSimpleName() + '"');
  }

  pem.close();
  return key;
}
 
開發者ID:heroku,項目名稱:env-keystore,代碼行數:23,代碼來源:EnvKeyStore.java

示例7: readVapidKeys

import org.bouncycastle.openssl.PEMKeyPair; //導入依賴的package包/類
/**
 * Read the VAPID key from the .pem file in the resources folder.
 *
 * @return
 * @throws IOException
 */
public static KeyPair readVapidKeys() throws IOException {
    try (InputStreamReader inputStreamReader = new InputStreamReader(TestUtils.class.getResourceAsStream("/vapid.pem"))) {
        PEMParser pemParser = new PEMParser(inputStreamReader);
        PEMKeyPair pemKeyPair = (PEMKeyPair) pemParser.readObject();

        return new JcaPEMKeyConverter().getKeyPair(pemKeyPair);
    } catch (IOException e) {
        throw new IOException("The private key could not be decrypted", e);
    }
}
 
開發者ID:web-push-libs,項目名稱:webpush-java,代碼行數:17,代碼來源:TestUtils.java

示例8: rebuildKeyPair

import org.bouncycastle.openssl.PEMKeyPair; //導入依賴的package包/類
/**
 * Rebuild the {@link KeyPair} associated with the submitted {@link PrivateKey}.
 *
 * @param privateKey The {@link PrivateKey} to rebuild the {@link KeyPair} for.
 * @return The rebuild {@link KeyPair}.
 * @throws IOException if an I/O error occurs during the rebuild.
 */
public static KeyPair rebuildKeyPair(PrivateKey privateKey) throws IOException {
	StringWriter stringWriter = new StringWriter();

	try (JcaPEMWriter pemWriter = new JcaPEMWriter(stringWriter)) {
		pemWriter.writeObject(privateKey);
		pemWriter.flush();
	}

	StringReader stringReader = new StringReader(stringWriter.toString());
	Object pemObject;

	try (PEMParser pemParser = new PEMParser(stringReader)) {
		pemObject = pemParser.readObject();
	}

	if (!(pemObject instanceof PEMKeyPair)) {
		throw new IOException("Unexpected pem object: " + pemObject);
	}

	PEMKeyPair pemKeyPair = (PEMKeyPair) pemObject;

	return PEM_KEY_CONVERTER.getKeyPair(pemKeyPair);
}
 
開發者ID:hdecarne,項目名稱:certmgr,代碼行數:31,代碼來源:KeyHelper.java

示例9: convertKey

import org.bouncycastle.openssl.PEMKeyPair; //導入依賴的package包/類
private static KeyPair convertKey(PEMEncryptedKeyPair pemObject, String resource, PasswordCallback password)
		throws IOException {
	PEMKeyPair pemKeyPair = null;
	Throwable passwordException = null;

	while (pemKeyPair == null) {
		char[] passwordChars = password.queryPassword(resource);

		if (passwordChars == null) {
			throw new PasswordRequiredException(resource, passwordException);
		}

		PEMDecryptorProvider pemDecryptorProvider = PEM_DECRYPTOR_PROVIDER_BUILDER.build(passwordChars);

		try {
			pemKeyPair = pemObject.decryptKeyPair(pemDecryptorProvider);
		} catch (EncryptionException e) {
			passwordException = e;
		}
	}
	return convertKey(pemKeyPair);
}
 
開發者ID:hdecarne,項目名稱:certmgr,代碼行數:23,代碼來源:PEMCertReaderWriter.java

示例10: dwimKey

import org.bouncycastle.openssl.PEMKeyPair; //導入依賴的package包/類
static Key dwimKey(String v) {
    File f = new File(v);
    if (f.isFile()) {
        try (PEMParser pem = new PEMParser(Files.newBufferedReader(f.toPath(), StandardCharsets.UTF_8))) {
            Object x = pem.readObject();
            if (x instanceof PEMKeyPair) {
                PEMKeyPair kp = (PEMKeyPair) x;
                // Make a private key
                return new JcaPEMKeyConverter().getPrivateKey(kp.getPrivateKeyInfo());
            } else {
                fail("-key only supports plain PEM keypairs");
                return null; // Static code analyzer
            }
        } catch (IOException e) {
            throw new IllegalArgumentException("Could not parse key: " + e.getMessage(), e);
        }
    } else {
        // Assume it is an AES key
        // TODO: check for validity before
        return new SecretKeySpec(HexUtils.stringToBin(v), "AES");
    }
}
 
開發者ID:martinpaljak,項目名稱:cdoc,代碼行數:23,代碼來源:Tool.java

示例11: loadKeyPair

import org.bouncycastle.openssl.PEMKeyPair; //導入依賴的package包/類
private PrivateKey loadKeyPair() throws IOException {
    PEMParser reader = new PEMParser(file);
    Object pemObject;

    JcaPEMKeyConverter converter = new JcaPEMKeyConverter().setProvider("BC");
    //PEMDecryptorProvider decryptionProv = new JcePEMDecryptorProviderBuilder().build(passphrase);

    while((pemObject = reader.readObject()) != null) {
        logger.debug("PemObject type: " + pemObject.getClass().getName());

        if(pemObject instanceof PEMKeyPair) {
            logger.debug("it match");
            PrivateKeyInfo pki = ((PEMKeyPair) pemObject).getPrivateKeyInfo();
            logger.debug("content: " + pki.getEncoded("UTF-8"));
            return converter.getPrivateKey(pki);
        } else {
            logger.debug("Dont match");
        }
    }

    logger.debug("fsdfsfs");
    return null;
}
 
開發者ID:DTStack,項目名稱:jlogstash-input-plugin,代碼行數:24,代碼來源:PrivateKeyConverter.java

示例12: buildCertificateRequest

import org.bouncycastle.openssl.PEMKeyPair; //導入依賴的package包/類
@Override
public String buildCertificateRequest() {
	try {
		CompanyInfo companyInfo = wsaaDao.loadActiveCompanyInfo();

		JcaPEMKeyConverter converter = new JcaPEMKeyConverter();

		PEMKeyPair pemPrivateKey = fromPem(companyInfo.getPrivateKey());
		PrivateKey privateKey = converter.getPrivateKey(pemPrivateKey
				.getPrivateKeyInfo());
		PEMKeyPair pemPublicKey = fromPem(companyInfo.getPrivateKey());
		PublicKey publicKey = converter.getPublicKey(pemPublicKey
				.getPublicKeyInfo());

		X500Principal subject = new X500Principal(companyInfo.buildSource());
		ContentSigner signGen = new JcaContentSignerBuilder(SIGNING_ALGORITHM)
				.build(privateKey);

		PKCS10CertificationRequest csr = new JcaPKCS10CertificationRequestBuilder(
				subject, publicKey).build(signGen);

		return toPem(csr);
	} catch (IOException | OperatorCreationException e) {
		throw Throwables.propagate(e);
	}
}
 
開發者ID:NibiruOS,項目名稱:afip,代碼行數:27,代碼來源:BouncyCastleWsaaManager.java

示例13: providePrivateKey

import org.bouncycastle.openssl.PEMKeyPair; //導入依賴的package包/類
@Singleton
@Provides
static PrivateKey providePrivateKey(@Named("pemObjects") ImmutableList<Object> pemObjects) {
  JcaPEMKeyConverter converter = new JcaPEMKeyConverter().setProvider("BC");
  Function<PEMKeyPair, PrivateKey> privateKeyConverter =
      pemKeyPair -> {
        try {
          return converter.getKeyPair(pemKeyPair).getPrivate();
        } catch (PEMException e) {
          logger.severefmt(e, "Error converting private key: %s", pemKeyPair);
          throw new RuntimeException(e);
        }
      };
  ImmutableList<PrivateKey> privateKeys =
      filterAndConvert(pemObjects, PEMKeyPair.class, privateKeyConverter);
  checkState(
      privateKeys.size() == 1,
      "The pem file must contain exactly one private key, but %s keys are found",
      privateKeys.size());
  return privateKeys.get(0);
}
 
開發者ID:google,項目名稱:nomulus,代碼行數:22,代碼來源:CertificateModule.java

示例14: init

import org.bouncycastle.openssl.PEMKeyPair; //導入依賴的package包/類
public JsonWebToken init() throws IOException {
	Security.addProvider(new BouncyCastleProvider());
	Reader reader;
	String keyFile = config.getAppKeyFile();
	boolean isOnClasspath = keyFile.startsWith("classpath:");
	if (isOnClasspath) {
		keyFile = keyFile.substring(10);
		reader = new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream(keyFile));
	} else {
		reader = new FileReader(new File(keyFile));
	}
	try (PEMParser pp = new PEMParser(reader)) {
		PEMKeyPair pemKeyPair = (PEMKeyPair) pp.readObject();
		keyPair = new JcaPEMKeyConverter().getKeyPair(pemKeyPair);
	}
	return this;
}
 
開發者ID:poynt,項目名稱:java-cloud-sdk,代碼行數:18,代碼來源:JsonWebToken.java

示例15: readKeyPairFromFile

import org.bouncycastle.openssl.PEMKeyPair; //導入依賴的package包/類
/**
 * Reads a keypair from a File.
 * 
 * @throws IOException If an error occurs while reading the file.
 * @throws InvalidKeySpecException If the key isn't encoded in x509.
 */
public static KeyPair readKeyPairFromFile(File file) throws IOException, InvalidKeySpecException {
  PEMParser parser =
      new PEMParser(new InputStreamReader(new FileInputStream(file), Constants.charset));

  Object obj = parser.readObject();
  parser.close();

  if (obj instanceof PEMKeyPair) {
    PEMKeyPair pem = (PEMKeyPair) obj;
    JcaPEMKeyConverter conv = new JcaPEMKeyConverter();

    return conv.getKeyPair(pem);
  }

  return null;
}
 
開發者ID:kit-tm,項目名稱:PTP,代碼行數:23,代碼來源:CryptHelper.java


注:本文中的org.bouncycastle.openssl.PEMKeyPair類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。