org.bouncycastle.asn1.x500.X500Name类的使用及代码示例

x33g5p2x  于2022-02-02 转载在 其他  
字(14.7k)|赞(0)|评价(0)|浏览(271)

本文整理了Java中org.bouncycastle.asn1.x500.X500Name类的一些代码示例,展示了X500Name类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。X500Name类的具体详情如下:
包路径:org.bouncycastle.asn1.x500.X500Name
类名称:X500Name

X500Name介绍

[英]```
Name ::= CHOICE {
RDNSequence }
RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
AttributeTypeAndValue ::= SEQUENCE {
type OBJECT IDENTIFIER,
value ANY }

[中]```
Name ::= CHOICE { 
RDNSequence } 
RDNSequence ::= SEQUENCE OF RelativeDistinguishedName 
RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue 
AttributeTypeAndValue ::= SEQUENCE { 
type  OBJECT IDENTIFIER, 
value ANY }

代码示例

代码示例来源:origin: redisson/redisson

static String[] generate(String fqdn, KeyPair keypair, SecureRandom random, Date notBefore, Date notAfter)
    throws Exception {
  PrivateKey key = keypair.getPrivate();
  // Prepare the information required for generating an X.509 certificate.
  X500Name owner = new X500Name("CN=" + fqdn);
  X509v3CertificateBuilder builder = new JcaX509v3CertificateBuilder(
      owner, new BigInteger(64, random), notBefore, notAfter, owner, keypair.getPublic());
  ContentSigner signer = new JcaContentSignerBuilder("SHA256WithRSAEncryption").build(key);
  X509CertificateHolder certHolder = builder.build(signer);
  X509Certificate cert = new JcaX509CertificateConverter().setProvider(PROVIDER).getCertificate(certHolder);
  cert.verify(keypair.getPublic());
  return newSelfSignedCertificate(fqdn, key, cert);
}

代码示例来源:origin: igniterealtime/Openfire

public static synchronized X509Certificate createX509V3Certificate(KeyPair kp, int days, X500NameBuilder issuerBuilder,
    X500NameBuilder subjectBuilder, String domain, String signAlgoritm, Set<String> sanDnsNames ) throws GeneralSecurityException, IOException {
  PublicKey pubKey = kp.getPublic();
  PrivateKey privKey = kp.getPrivate();
  random.setSeed((new Date().getTime()));
  random.nextBytes(serno);
  BigInteger serial = (new java.math.BigInteger(serno)).abs();
  final boolean critical = subjectDN.getRDNs().length == 0;
  certBuilder.addExtension(Extension.subjectAlternativeName, critical, subjectAlternativeNames);
    ContentSigner signer = new JcaContentSignerBuilder(signAlgoritm).build(privKey);
    X509CertificateHolder cert = certBuilder.build(signer);
    return new JcaX509CertificateConverter().getCertificate(cert);

代码示例来源:origin: org.apache.poi/poi-ooxml

BigInteger nonce = new BigInteger(128, new SecureRandom());
TimeStampRequestGenerator requestGenerator = new TimeStampRequestGenerator();
requestGenerator.setCertReq(true);
Map<X500Name, X509CertificateHolder> certificateMap = new HashMap<>();
for (X509CertificateHolder certificate : certificates) {
  if (signerCertIssuer.equals(certificate.getIssuer())
    && signerCertSerialNumber.equals(certificate.getSerialNumber())) {
    signerCert = certificate;
JcaX509CertificateConverter x509converter = new JcaX509CertificateConverter();
x509converter.setProvider("BC");
X509CertificateHolder certificate = signerCert;
do {
  LOG.log(POILogger.DEBUG, "adding to certificate chain: " + certificate.getSubject());
  tspCertificateChain.add(x509converter.getCertificate(certificate));
  if (certificate.getSubject().equals(certificate.getIssuer())) {
    break;
X509CertificateHolder holder = new X509CertificateHolder(tspCertificateChain.get(0).getEncoded());
DefaultCMSSignatureAlgorithmNameGenerator nameGen = new DefaultCMSSignatureAlgorithmNameGenerator();
DefaultSignatureAlgorithmIdentifierFinder sigAlgoFinder = new DefaultSignatureAlgorithmIdentifierFinder();

代码示例来源:origin: apache/nifi

/**
 * Reverses the X500Name in order make the certificate be in the right order
 * [see http://stackoverflow.com/questions/7567837/attributes-reversed-in-certificate-subject-and-issuer/12645265]
 *
 * @param x500Name the X500Name created with the intended order
 * @return the X500Name reversed
 */
private static X500Name reverseX500Name(X500Name x500Name) {
  List<RDN> rdns = Arrays.asList(x500Name.getRDNs());
  Collections.reverse(rdns);
  return new X500Name(rdns.toArray(new RDN[rdns.size()]));
}

代码示例来源:origin: apache/nifi

RDN[] rdNs = new X500Name(dn).getRDNs();
Arrays.sort(rdNs, new Comparator<RDN>() {
  @Override
return new X500Name(rdNs).toString();

代码示例来源:origin: apache/geode

AlgorithmIdentifier digAlgId = new DefaultDigestAlgorithmIdentifierFinder().find(sigAlgId);
 AsymmetricKeyParameter privateKeyAsymKeyParam =
   PrivateKeyFactory.createKey(keyPair.getPrivate().getEncoded());
 SubjectPublicKeyInfo subPubKeyInfo =
   SubjectPublicKeyInfo.getInstance(keyPair.getPublic().getEncoded());
 ContentSigner sigGen =
   new BcRSAContentSignerBuilder(sigAlgId, digAlgId).build(privateKeyAsymKeyParam);
 X500Name name = new X500Name(dn);
 Date from = new Date();
 Date to = new Date(from.getTime() + days * 86400000L);
 BigInteger sn = new BigInteger(64, new SecureRandom());
 X509v3CertificateBuilder v3CertGen =
   new X509v3CertificateBuilder(name, sn, from, to, name, subPubKeyInfo);
  v3CertGen.addExtension(Extension.subjectAlternativeName, false, subjectAltName);
 X509CertificateHolder certificateHolder = v3CertGen.build(sigGen);
 return new JcaX509CertificateConverter().setProvider("BC")
   .getCertificate(certificateHolder);
} catch (CertificateException ce) {
 throw ce;

代码示例来源:origin: stackoverflow.com

.getEncoded());
SubjectPublicKeyInfo keyInfo = SubjectPublicKeyInfo.getInstance(pair
    .getPublic().getEncoded());
    new X500Name("CN=issuer"), new BigInteger("1"), new Date(
        System.currentTimeMillis()), new Date(
        System.currentTimeMillis() + 30 * 365 * 24 * 60 * 60
    .build(foo);        
X509CertificateHolder holder = myCertificateGenerator.build(sigGen);
X509CertificateStructure eeX509CertificateStructure = holder.toASN1Structure();

代码示例来源:origin: apache/zookeeper

throws Exception {
X509CertificateHolder holder = new JcaX509CertificateHolder(caCert);
ContentSigner signer =new JcaContentSignerBuilder("SHA256WithRSAEncryption").build(caPrivateKey);
    SubjectPublicKeyInfoFactory.createSubjectPublicKeyInfo(PublicKeyFactory.createKey(keyPair.getPublic()
        .getEncoded()));
X509ExtensionUtils extensionUtils = new BcX509ExtensionUtils();
X509v3CertificateBuilder certificateBuilder =
    new JcaX509v3CertificateBuilder(holder.getSubject(), new BigInteger(128, new Random()),
      certStartTime, certEndTime, new X500Name("CN=Test End Entity Certificate"), keyPair.getPublic())
    .addExtension(Extension.authorityKeyIdentifier, false,
        extensionUtils.createAuthorityKeyIdentifier(holder))
    .addExtension(Extension.subjectKeyIdentifier, false,
        extensionUtils.createSubjectKeyIdentifier(entityKeyInfo))
    .addExtension(Extension.basicConstraints, true, new BasicConstraints(false))
    .addExtension(Extension.keyUsage, true,
        new KeyUsage(KeyUsage.digitalSignature | KeyUsage.keyEncipherment));
return new JcaX509CertificateConverter().getCertificate(certificateBuilder.build(signer));

代码示例来源:origin: jamesdbloom/mockserver

/**
 * Create a certificate to use by a Certificate Authority, signed by a self signed certificate.
 */
private X509Certificate createCACert(PublicKey publicKey, PrivateKey privateKey) throws Exception {
  // signers name
  X500Name issuerName = new X500Name("CN=www.mockserver.com, O=MockServer, L=London, ST=England, C=UK");
  // subjects name - the same as we are self signed.
  X500Name subjectName = issuerName;
  // serial
  BigInteger serial = BigInteger.valueOf(new Random().nextInt(Integer.MAX_VALUE));
  // create the certificate - version 3
  X509v3CertificateBuilder builder = new JcaX509v3CertificateBuilder(issuerName, serial, NOT_BEFORE, NOT_AFTER, subjectName, publicKey);
  builder.addExtension(Extension.subjectKeyIdentifier, false, createSubjectKeyIdentifier(publicKey));
  builder.addExtension(Extension.basicConstraints, true, new BasicConstraints(true));
  KeyUsage usage = new KeyUsage(KeyUsage.keyCertSign | KeyUsage.digitalSignature | KeyUsage.keyEncipherment | KeyUsage.dataEncipherment | KeyUsage.cRLSign);
  builder.addExtension(Extension.keyUsage, false, usage);
  ASN1EncodableVector purposes = new ASN1EncodableVector();
  purposes.add(KeyPurposeId.id_kp_serverAuth);
  purposes.add(KeyPurposeId.id_kp_clientAuth);
  purposes.add(KeyPurposeId.anyExtendedKeyUsage);
  builder.addExtension(Extension.extendedKeyUsage, false, new DERSequence(purposes));
  X509Certificate cert = signCertificate(builder, privateKey);
  cert.checkValidity(new Date());
  cert.verify(publicKey);
  return cert;
}

代码示例来源:origin: apache/nifi

throws CertificateException {
try {
  ContentSigner sigGen = new JcaContentSignerBuilder(signingAlgorithm).setProvider(BouncyCastleProvider.PROVIDER_NAME).build(keyPair.getPrivate());
  SubjectPublicKeyInfo subPubKeyInfo = SubjectPublicKeyInfo.getInstance(keyPair.getPublic().getEncoded());
  Date startDate = new Date();
  Date endDate = new Date(startDate.getTime() + TimeUnit.DAYS.toMillis(certificateDurationDays));
  X509v3CertificateBuilder certBuilder = new X509v3CertificateBuilder(
      reverseX500Name(new X500Name(dn)),
      getUniqueSerialNumber(),
      startDate, endDate,
      reverseX500Name(new X500Name(dn)),
      subPubKeyInfo);
  certBuilder.addExtension(Extension.keyUsage, true, new KeyUsage(KeyUsage.digitalSignature | KeyUsage.keyEncipherment | KeyUsage.dataEncipherment
      | KeyUsage.keyAgreement | KeyUsage.nonRepudiation | KeyUsage.cRLSign | KeyUsage.keyCertSign));
  certBuilder.addExtension(Extension.basicConstraints, false, new BasicConstraints(true));
  certBuilder.addExtension(Extension.subjectKeyIdentifier, false, new JcaX509ExtensionUtils().createSubjectKeyIdentifier(keyPair.getPublic()));
  certBuilder.addExtension(Extension.authorityKeyIdentifier, false, new JcaX509ExtensionUtils().createAuthorityKeyIdentifier(keyPair.getPublic()));
  X509CertificateHolder certificateHolder = certBuilder.build(sigGen);
  return new JcaX509CertificateConverter().setProvider(BouncyCastleProvider.PROVIDER_NAME).getCertificate(certificateHolder);
} catch (CertIOException | NoSuchAlgorithmException | OperatorCreationException e) {
  throw new CertificateException(e);

代码示例来源:origin: apache/cloudstack

new X500Name(subject),
      serial,
      now.minusHours(12).toDate(),
      now.plusDays(validityDays).toDate(),
      new X500Name(subject),
      clientPublicKey);
  certBuilder.addExtension(Extension.basicConstraints, true, new BasicConstraints(true));
  certBuilder.addExtension(Extension.keyUsage, true, new KeyUsage(KeyUsage.keyCertSign | KeyUsage.cRLSign));
} else {
      clientPublicKey);
  certBuilder.addExtension(Extension.authorityKeyIdentifier, false, extUtils.createAuthorityKeyIdentifier(caCert));
final ContentSigner signer = new JcaContentSignerBuilder(signatureAlgorithm).setProvider("BC").build(caKeyPair.getPrivate());
final X509CertificateHolder certHolder = certBuilder.build(signer);
final X509Certificate cert = new JcaX509CertificateConverter().setProvider("BC").getCertificate(certHolder);
if (caCert != null) {
  cert.verify(caCert.getPublicKey());
} else {
  cert.verify(caKeyPair.getPublic());

代码示例来源:origin: apache/zookeeper

PublicKey certPublicKey,
  long expirationMillis) throws IOException, OperatorCreationException, GeneralSecurityException {
if (!caKeyPair.getPublic().equals(caCert.getPublicKey())) {
  throw new IllegalArgumentException("CA private key does not match the public key in the CA cert");
    new X500Name(caCert.getIssuerDN().getName()),
    now,
    new Date(now.getTime() + expirationMillis),
    certSubject,
    certPublicKey);
builder.addExtension(Extension.basicConstraints, true, new BasicConstraints(false)); // not a CA
builder.addExtension(
    Extension.keyUsage, true, new KeyUsage(KeyUsage.digitalSignature | KeyUsage.keyEncipherment));
builder.addExtension(
    Extension.extendedKeyUsage,
    true,
    false,
    getLocalhostSubjectAltNames());
return buildAndSignCertificate(caKeyPair.getPrivate(), builder);

代码示例来源:origin: apache/nifi

public static JcaPKCS10CertificationRequest generateCertificationRequest(String requestedDn, String domainAlternativeNames,
                                     KeyPair keyPair, String signingAlgorithm) throws OperatorCreationException {
  JcaPKCS10CertificationRequestBuilder jcaPKCS10CertificationRequestBuilder = new JcaPKCS10CertificationRequestBuilder(new X500Name(requestedDn), keyPair.getPublic());
  // add Subject Alternative Name(s)
  try {
    jcaPKCS10CertificationRequestBuilder.addAttribute(PKCSObjectIdentifiers.pkcs_9_at_extensionRequest, createDomainAlternativeNamesExtensions(domainAlternativeNames, requestedDn));
  } catch (IOException e) {
    throw new OperatorCreationException("Error while adding " + domainAlternativeNames + " as Subject Alternative Name.", e);
  }
  JcaContentSignerBuilder jcaContentSignerBuilder = new JcaContentSignerBuilder(signingAlgorithm);
  return new JcaPKCS10CertificationRequest(jcaPKCS10CertificationRequestBuilder.build(jcaContentSignerBuilder.build(keyPair.getPrivate())));
}

代码示例来源:origin: apache/cloudstack

public static X509Certificate generateV1Certificate(final KeyPair keyPair,
                          final String subject,
                          final String issuer,
                          final int validityYears,
                          final String signatureAlgorithm) throws CertificateException, NoSuchAlgorithmException, NoSuchProviderException, SignatureException, InvalidKeyException, OperatorCreationException {
  final DateTime now = DateTime.now(DateTimeZone.UTC);
  final X509v1CertificateBuilder certBuilder = new JcaX509v1CertificateBuilder(
      new X500Name(issuer),
      generateRandomBigInt(),
      now.minusDays(1).toDate(),
      now.plusYears(validityYears).toDate(),
      new X500Name(subject),
      keyPair.getPublic());
  final ContentSigner signer = new JcaContentSignerBuilder(signatureAlgorithm).setProvider("BC").build(keyPair.getPrivate());
  final X509CertificateHolder certHolder = certBuilder.build(signer);
  return new JcaX509CertificateConverter().setProvider("BC").getCertificate(certHolder);
}

代码示例来源:origin: apache/ace

private X509Certificate generateRootCertificate(String commonName, Date notBefore, Date notAfter) throws Exception {
    X500Name issuer = new X500Name(commonName);
    BigInteger serial = BigInteger.probablePrime(16, new Random());

    SubjectPublicKeyInfo pubKeyInfo = convertToSubjectPublicKeyInfo(m_caKey.getPublic());

    X509v3CertificateBuilder builder = new X509v3CertificateBuilder(issuer, serial, notBefore, notAfter, issuer, pubKeyInfo);
    builder.addExtension(new Extension(Extension.basicConstraints, true, new DEROctetString(new BasicConstraints(true))));

    X509CertificateHolder certHolder = builder.build(new JcaContentSignerBuilder(SIGNATURE_ALGORITHM).build(m_caKey.getPrivate()));
    return new JcaX509CertificateConverter().getCertificate(certHolder);
  }
}

代码示例来源:origin: xipki/xipki

int status = statusInfo.getStatus().intValue();
return caSubject.equals(revCert.getIssuer().getName())
  && serialNumber.equals(revCert.getSerialNumber().getValue());

代码示例来源:origin: org.nhind/direct-common

if (signerId.getIssuer().equals(searchCert.getIssuerX500Principal()) && 
    signerId.getSerialNumber().equals(searchCert.getSerialNumber()))

代码示例来源:origin: org.xipki/cmpclient

SignatureCmpRequestor(X509Certificate cert) {
 super(false,
   X500Name.getInstance(Args.notNull(cert, "cert").getSubjectX500Principal().getEncoded()));
 this.signer = null;
}

代码示例来源:origin: apache/pdfbox

for (X509CertificateHolder certHolder : certHolders)
  if (name.equals(certHolder.getSubject()))
      ocspResponderCertificate = certificateConverter.getCertificate(certHolder);
      return;
  X500Name certSubjectName = new X500Name(cert.getSubjectX500Principal().getName());
  if (certSubjectName.equals(name))

代码示例来源:origin: kaikramer/keystore-explorer

private String getCertificateSubjectDN(String alias, KeyStore keyStore) throws CryptoException, KeyStoreException {
  X509Certificate x509Cert = getCertificate(alias, keyStore);
  return X500NameUtils.x500PrincipalToX500Name(x509Cert.getSubjectX500Principal()).toString();
}

相关文章