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

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

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

GeneralName.<init>介绍

[英]Create a GeneralName for the given tag from the passed in String.

This constructor can handle:

  • rfc822Name
  • iPAddress
  • directoryName
  • dNSName
  • uniformResourceIdentifier
  • registeredID
    For x400Address, otherName and ediPartyName there is no common string format defined.

Note: A directory name can be encoded in different ways into a byte representation. Be aware of this if the byte representation is used for comparing results.
[中]从传入的字符串中为给定标记创建GeneralName。
此构造函数可以处理:
*RFC822名称
*IP地址
*目录名
*dNSName
*统一资源标识符
*登记者
对于x400Address、otherName和ePartyName,没有定义通用字符串格式。
注意:目录名可以以不同的方式编码到字节表示中。如果字节表示用于比较结果,请注意这一点。

代码示例

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

private static GeneralName dnsGeneralName(String name) {
 return new GeneralName(GeneralName.dNSName, name);
}

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

public void addIpAddress(String ipAddress) {
  sans.add(new GeneralName(GeneralName.iPAddress, ipAddress));
}

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

public void addDomainName(String subjectAlternativeName) {
  sans.add(new GeneralName(GeneralName.dNSName, subjectAlternativeName));
}

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

private ASN1Encodable parseGeneralName(List<?> nameEntry) {
    if (nameEntry == null || nameEntry.size() != 2) {
      throw new IllegalArgumentException(nameEntry != null ? String.valueOf(nameEntry) : "nameEntry is null");
    }
    String tag = String.valueOf(nameEntry.get(0));
    Matcher m = TAGS_PATTERN.matcher(tag);
    if (m.matches()) {
      return new GeneralName(Integer.valueOf(tag),
          String.valueOf(nameEntry.get(1)));
    }
    throw new IllegalArgumentException(String.valueOf(nameEntry));
  }
}

代码示例来源: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: apache/geode

private static GeneralName ipGeneralName(InetAddress hostAddress) {
 return new GeneralName(GeneralName.iPAddress,
   new DEROctetString(hostAddress.getAddress()));
}

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

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

代码示例来源: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: square/okhttp

? GeneralName.iPAddress
  : GeneralName.dNSName;
encodableAltNames[i] = new GeneralName(tag, altName);

代码示例来源: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: jamesdbloom/mockserver

subjectAlternativeNames.add(new GeneralName(GeneralName.dNSName, domain));
for (String subjectAlternativeNameDomain : subjectAlternativeNameDomains) {
  subjectAlternativeNames.add(new GeneralName(GeneralName.dNSName, subjectAlternativeNameDomain));
    || IPAddress.isValidIPv4WithNetmask(subjectAlternativeNameIp)
    || IPAddress.isValidIPv4(subjectAlternativeNameIp)) {
    subjectAlternativeNames.add(new GeneralName(GeneralName.iPAddress, subjectAlternativeNameIp));

代码示例来源: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: igniterealtime/Openfire

protected static GeneralNames getSubjectAlternativeNames( Set<String> sanDnsNames )
{
  final ASN1EncodableVector subjectAlternativeNames = new ASN1EncodableVector();
  if ( sanDnsNames != null )
  {
    for ( final String dnsNameValue : sanDnsNames )
    {
      subjectAlternativeNames.add(
        new GeneralName( GeneralName.dNSName, dnsNameValue )
      );
    }
  }
  return GeneralNames.getInstance(
    new DERSequence( subjectAlternativeNames )
  );
}

代码示例来源: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: igniterealtime/Openfire

case 2:
  subjectAlternativeNames.add( new GeneralName( GeneralName.dNSName, (String) value ) );
  break;
case 6:
  subjectAlternativeNames.add( new GeneralName( GeneralName.uniformResourceIdentifier, (String) value ) );
  break;
default:

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

generalNames.add(new GeneralName(GeneralName.dNSName, hostname));
generalNames.add(new GeneralName(GeneralName.iPAddress, ipAddress));
    new GeneralName(GeneralName.uniformResourceIdentifier,"file://" + crlPath)));
certificateBuilder.addExtension(Extension.authorityInfoAccess, false,
    new AuthorityInformationAccess(X509ObjectIdentifiers.ocspAccessMethod,
    new GeneralName(GeneralName.uniformResourceIdentifier, "http://" + hostname + ":" + ocspPort)));

代码示例来源:origin: hyperledger/fabric-sdk-java

private void addSAN(X509v3CertificateBuilder certBuilder, String san) throws CertIOException {
  ASN1Encodable[] subjectAlternativeNames = new ASN1Encodable[]{new GeneralName(GeneralName.dNSName, san)};
  certBuilder.addExtension(Extension.subjectAlternativeName, false, new DERSequence(subjectAlternativeNames));
}

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

continue;
subjectAlternativeNames.add(new GeneralName(GeneralName.iPAddress, publicIPAddress));
  continue;
subjectAlternativeNames.add(new GeneralName(GeneralName.dNSName, dnsName));

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

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

相关文章