org.bouncycastle.asn1.x509.GeneralNames.<init>()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(9.8k)|赞(0)|评价(0)|浏览(101)

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

GeneralNames.<init>介绍

[英]Construct a GeneralNames object containing one GeneralName.
[中]构造一个包含一个GeneralName的GeneralNames对象。

代码示例

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

private byte[] san() throws IOException {
 List<GeneralName> names = dnsNames.stream()
   .map(CertificateBuilder::dnsGeneralName)
   .collect(toList());
 names.addAll(ipAddresses.stream()
   .map(CertificateBuilder::ipGeneralName)
   .collect(toList()));
 return names.isEmpty() ? null
   : new GeneralNames(names.toArray(new GeneralName[] {})).getEncoded();
}

代码示例来源:origin: JZ-Darkal/AndroidHttpCapture

/**
 * Converts a list of domain name Subject Alternative Names into ASN1Encodable GeneralNames objects, for use with
 * the Bouncy Castle certificate builder.
 *
 * @param subjectAlternativeNames domain name SANs to convert
 * @return a GeneralNames instance that includes the specifie dsubjectAlternativeNames as DNS name fields
 */
private static GeneralNames getDomainNameSANsAsASN1Encodable(List<String> subjectAlternativeNames) {
  List<GeneralName> encodedSANs = new ArrayList<>(subjectAlternativeNames.size());
  for (String subjectAlternativeName : subjectAlternativeNames) {
    // IP addresses use the IP Address tag instead of the DNS Name tag in the SAN list
    boolean isIpAddress = InetAddresses.isInetAddress(subjectAlternativeName);
    GeneralName generalName = new GeneralName(isIpAddress ? GeneralName.iPAddress : GeneralName.dNSName, subjectAlternativeName);
    encodedSANs.add(generalName);
  }
  return new GeneralNames(encodedSANs.toArray(new GeneralName[encodedSANs.size()]));
}

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

public void createSelfSignedCertificate( File certificatePath, File privateKeyPath, String hostName )
    throws GeneralSecurityException, IOException, OperatorCreationException
{
  installCleanupHook( certificatePath, privateKeyPath );
  KeyPairGenerator keyGen = KeyPairGenerator.getInstance( DEFAULT_ENCRYPTION );
  keyGen.initialize( 2048, random );
  KeyPair keypair = keyGen.generateKeyPair();
  // Prepare the information required for generating an X.509 certificate.
  X500Name owner = new X500Name( "CN=" + hostName );
  X509v3CertificateBuilder builder = new JcaX509v3CertificateBuilder(
      owner, new BigInteger( 64, random ), NOT_BEFORE, NOT_AFTER, owner, keypair.getPublic() );
  // Subject alternative name (part of SNI extension, used for hostname verification)
  GeneralNames subjectAlternativeName = new GeneralNames( new GeneralName( GeneralName.dNSName, hostName ) );
  builder.addExtension( Extension.subjectAlternativeName, false, subjectAlternativeName );
  PrivateKey privateKey = keypair.getPrivate();
  ContentSigner signer = new JcaContentSignerBuilder( "SHA512WithRSAEncryption" ).build( privateKey );
  X509CertificateHolder certHolder = builder.build( signer );
  X509Certificate cert = new JcaX509CertificateConverter().setProvider( PROVIDER ).getCertificate( certHolder );
  //check so that cert is valid
  cert.verify( keypair.getPublic() );
  //write to disk
  writePem( "CERTIFICATE", cert.getEncoded(), certificatePath );
  writePem( "PRIVATE KEY", privateKey.getEncoded(), privateKeyPath );
  // Mark as done so we don't clean up certificates
  cleanupRequired = false;
}

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

public static Extensions createDomainAlternativeNamesExtensions(String domainAlternativeNames, String requestedDn) throws IOException {
  List<GeneralName> namesList = new ArrayList<>();
  try {
    final String cn = IETFUtils.valueToString(new X500Name(requestedDn).getRDNs(BCStyle.CN)[0].getFirst().getValue());
    namesList.add(new GeneralName(GeneralName.dNSName, cn));
  } catch (Exception e) {
    throw new IOException("Failed to extract CN from request DN: " + requestedDn, e);
  }
  if (StringUtils.isNotBlank(domainAlternativeNames)) {
    for (String alternativeName : domainAlternativeNames.split(",")) {
      namesList.add(new GeneralName(GeneralName.dNSName, alternativeName));
    }
  }
  GeneralNames subjectAltNames = new GeneralNames(namesList.toArray(new GeneralName[]{}));
  ExtensionsGenerator extGen = new ExtensionsGenerator();
  extGen.addExtension(Extension.subjectAlternativeName, false, subjectAltNames);
  return extGen.generate();
}

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

public CertificateBuilder sanDnsName(String hostName) throws IOException {
  subjectAltName = new GeneralNames(new GeneralName(GeneralName.dNSName, hostName)).getEncoded();
  return this;
}

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

/**
 * Returns subject alternative names for "localhost".
 * @return the subject alternative names for "localhost".
 */
private static GeneralNames getLocalhostSubjectAltNames() throws UnknownHostException {
  InetAddress[] localAddresses = InetAddress.getAllByName("localhost");
  GeneralName[] generalNames = new GeneralName[localAddresses.length + 1];
  for (int i = 0; i < localAddresses.length; i++) {
    generalNames[i] = new GeneralName(GeneralName.iPAddress, new DEROctetString(localAddresses[i].getAddress()));
  }
  generalNames[generalNames.length - 1] = new GeneralName(GeneralName.dNSName, new DERIA5String("localhost"));
  return new GeneralNames(generalNames);
}

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

public CertificateBuilder sanIpAddress(InetAddress hostAddress) throws IOException {
  subjectAltName = new GeneralNames(new GeneralName(GeneralName.iPAddress, new DEROctetString(hostAddress.getAddress()))).getEncoded();
  return this;
}

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

private X509Certificate[] createSelfSignedCertifcateChain(String ipAddress, String hostname) throws Exception {
  X500NameBuilder nameBuilder = new X500NameBuilder(BCStyle.INSTANCE);
  nameBuilder.addRDN(BCStyle.CN, "NOT_LOCALHOST");
  Date notBefore = new Date();
  Calendar cal = Calendar.getInstance();
  cal.setTime(notBefore);
  cal.add(Calendar.YEAR, 1);
  Date notAfter = cal.getTime();
  BigInteger serialNumber = new BigInteger(128, new Random());
  X509v3CertificateBuilder certificateBuilder =
      new JcaX509v3CertificateBuilder(nameBuilder.build(), serialNumber, notBefore, notAfter, nameBuilder.build(), keyPair.getPublic())
          .addExtension(Extension.basicConstraints, true, new BasicConstraints(0))
          .addExtension(Extension.keyUsage, true, new KeyUsage(KeyUsage.digitalSignature | KeyUsage.keyCertSign | KeyUsage.cRLSign));
  List<GeneralName> generalNames = new ArrayList<>();
  if (ipAddress != null) {
    generalNames.add(new GeneralName(GeneralName.iPAddress, ipAddress));
  }
  if (hostname != null) {
    generalNames.add(new GeneralName(GeneralName.dNSName, hostname));
  }
  if (!generalNames.isEmpty()) {
    certificateBuilder.addExtension(Extension.subjectAlternativeName,  true,  new GeneralNames(generalNames.toArray(new GeneralName[] {})));
  }
  ContentSigner contentSigner = new JcaContentSignerBuilder("SHA256WithRSAEncryption").build(keyPair.getPrivate());
  return new X509Certificate[] { new JcaX509CertificateConverter().getCertificate(certificateBuilder.build(contentSigner)) };
}

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

new GeneralNames(generalNames.toArray(new GeneralName[] {})));
DistributionPointName distPointOne = new DistributionPointName(new GeneralNames(
    new GeneralName(GeneralName.uniformResourceIdentifier,"file://" + crlPath)));

代码示例来源:origin: org.bouncycastle/bcprov-debug-jdk15on

public GeneralNames build()
  {
    GeneralName[] tmp = new GeneralName[names.size()];

    for (int i = 0; i != tmp.length; i++)
    {
      tmp[i] = (GeneralName)names.elementAt(i);
    }

    return new GeneralNames(tmp);
  }
}

代码示例来源:origin: org.bouncycastle/bcprov-debug-jdk15on

public void setDVCS(GeneralNames dvcs)
{
  // RFC 3029, 9.1: The DVCS MAY modify the fields
  // 'dvcs', 'requester', 'dataLocations', and 'nonce' of the ReqInfo structure
  this.dvcs = dvcs;
}

代码示例来源:origin: eu.eu-emi.security/canl

/**
 * Generates a new proxy tracing item from the URL.
 * 
 * @param url
 *                The URL to identify the issuer or the subject.
 */
public ProxyTracingExtension(String url)
{
  name = new GeneralName(GeneralName.uniformResourceIdentifier, url);
  names = new GeneralNames(name);
}

代码示例来源:origin: org.bouncycastle/bcprov-debug-jdk15on

public void setRequester(GeneralNames requester)
{
  // RFC 3029, 9.1: The DVCS MAY modify the fields
  // 'dvcs', 'requester', 'dataLocations', and 'nonce' of the ReqInfo structure
  this.requester = requester;
}

代码示例来源:origin: org.bouncycastle/bcprov-debug-jdk15on

public void setDataLocations(GeneralNames dataLocations)
{
  // RFC 3029, 9.1: The DVCS MAY modify the fields
  // 'dvcs', 'requester', 'dataLocations', and 'nonce' of the ReqInfo structure
  this.dataLocations = dataLocations;
}

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

ASN1EncodableVector alternativeNames = new ASN1EncodableVector();
for( String domainName : domainNames )
{
 alternativeNames.add( new GeneralName( GeneralName.dNSName, domainName ) );
}
certGenerator.addExtension( X509Extensions.SubjectAlternativeName, false, new GeneralNames( new DERSequence( alternativeNames ) ) );

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

public static GeneralNames createGeneralNames(List<String> taggedValues)
  throws BadInputException {
 if (CollectionUtil.isEmpty(taggedValues)) {
  return null;
 }
 int len = taggedValues.size();
 GeneralName[] names = new GeneralName[len];
 for (int i = 0; i < len; i++) {
  names[i] = createGeneralName(taggedValues.get(i));
 }
 return new GeneralNames(names);
}

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

public static GeneralNames createGeneralNames(final List<String> taggedValues)
    throws BadInputException {
  if (CollectionUtil.isEmpty(taggedValues)) {
    return null;
  }
  int len = taggedValues.size();
  GeneralName[] names = new GeneralName[len];
  for (int i = 0; i < len; i++) {
    names[i] = createGeneralName(taggedValues.get(i));
  }
  return new GeneralNames(names);
}

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

/**
 * Get general names.
 *
 * @return General names
 */
public GeneralNames getGeneralNames() {
  return new GeneralNames(getGeneralNamesTableModel().getData().toArray(new GeneralName[0]));
}

代码示例来源:origin: org.xipki/ca-server

private static Extension createCertificateIssuerExtension(X500Name certificateIssuer) {
 try {
  GeneralNames generalNames = new GeneralNames(new GeneralName(certificateIssuer));
  return new Extension(Extension.certificateIssuer, true, generalNames.getEncoded());
 } catch (IOException ex) {
  throw new IllegalArgumentException("error encoding reason: " + ex.getMessage(), ex);
 }
}

代码示例来源:origin: org.bouncycastle/bcprov-debug-jdk15on

public IssuerSerial(
  GeneralNames    issuer,
  BigInteger serial)
{
  this(issuer, new ASN1Integer(serial));
}

相关文章