本文整理汇总了Java中org.spongycastle.operator.bc.BcRSAContentSignerBuilder类的典型用法代码示例。如果您正苦于以下问题:Java BcRSAContentSignerBuilder类的具体用法?Java BcRSAContentSignerBuilder怎么用?Java BcRSAContentSignerBuilder使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
BcRSAContentSignerBuilder类属于org.spongycastle.operator.bc包,在下文中一共展示了BcRSAContentSignerBuilder类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: generateCSR
import org.spongycastle.operator.bc.BcRSAContentSignerBuilder; //导入依赖的package包/类
/**
* Create the certificate signing request (CSR) from private and public keys
*
* @param keyPair the KeyPair with private and public keys
* @return PKCS10CertificationRequest with the certificate signing request
* (CSR) data
* @throws IOException
* @throws OperatorCreationException
*/
public static PKCS10CertificationRequest generateCSR(KeyPair keyPair) throws IOException,
OperatorCreationException {
String principal = "CN=AWS IoT Certificate" + ", O=Amazon";
AsymmetricKeyParameter privateKey = PrivateKeyFactory.createKey(keyPair.getPrivate()
.getEncoded());
AlgorithmIdentifier signatureAlgorithm = new DefaultSignatureAlgorithmIdentifierFinder()
.find("SHA1WITHRSA");
AlgorithmIdentifier digestAlgorithm = new DefaultDigestAlgorithmIdentifierFinder()
.find("SHA-1");
ContentSigner signer = new BcRSAContentSignerBuilder(signatureAlgorithm, digestAlgorithm)
.build(privateKey);
PKCS10CertificationRequestBuilder csrBuilder = new JcaPKCS10CertificationRequestBuilder(
new X500Name(principal), keyPair.getPublic());
ExtensionsGenerator extensionsGenerator = new ExtensionsGenerator();
extensionsGenerator.addExtension(Extension.basicConstraints, true, new BasicConstraints(
true));
csrBuilder.addAttribute(PKCSObjectIdentifiers.pkcs_9_at_extensionRequest,
extensionsGenerator.generate());
PKCS10CertificationRequest csr = csrBuilder.build(signer);
return csr;
}
示例2: generateCertificate
import org.spongycastle.operator.bc.BcRSAContentSignerBuilder; //导入依赖的package包/类
/**
* Generates a short-living certificate for the keyPair.
*/
private X509Certificate generateCertificate() throws NoSuchProviderException, NoSuchAlgorithmException, CertificateException, SignatureException, InvalidKeyException, IOException, OperatorCreationException {
/* The certificate starts to be valid one minute in the past to be safe
* if the clocks are a bit out of sync. */
Calendar startDate = Calendar.getInstance();
startDate.add(Calendar.MINUTE, -1);
/* The certificate is not valid anymore after two minutes. This should
* be enough to complete the protocol. */
Calendar expiryDate = Calendar.getInstance();
expiryDate.add(Calendar.MINUTE, +2);
AlgorithmIdentifier sha1withRSA = new DefaultSignatureAlgorithmIdentifierFinder().find("SHA1withRSA");
ContentSigner signer = new BcRSAContentSignerBuilder(
new DefaultSignatureAlgorithmIdentifierFinder().find("SHA1withRSA"),
new DefaultDigestAlgorithmIdentifierFinder().find(sha1withRSA))
.build(keyPair.getPrivate());
X500Name subjectName = new X500Name("CN=Wallet Protocol Server Ephemeral Certificate");
BcX509v3CertificateBuilder certBuilder = new BcX509v3CertificateBuilder(
subjectName,
BigInteger.ONE,
startDate.getTime(), expiryDate.getTime(),
subjectName,
keyPair.getPublic()
);
X509CertificateHolder certHolder = certBuilder.build(signer);
X509Certificate cert = new JcaX509CertificateConverter().getCertificate(certHolder);
return cert;
}