final Extensions extensions = Extensions.getInstance(attribute.getAttrValues().getObjectAt(0)); final GeneralNames gns = GeneralNames.fromExtensions(extensions, Extension.subjectAlternativeName); if (gns != null && gns.getNames() != null && gns.getNames().length > 0) { for (final GeneralName name : gns.getNames()) { if (name.getTagNo() == GeneralName.dNSName) { dnsNames.add(name.getName().toString());
for (GeneralName genName : GeneralNames.getInstance(dpn.getName()).getNames())
public GeneralNamesBuilder addNames(GeneralNames names) { GeneralName[] n = names.getNames(); for (int i = 0; i != n.length; i++) { this.names.addElement(n[i]); } return this; }
public GeneralNamesBuilder addNames(GeneralNames names) { GeneralName[] n = names.getNames(); for (int i = 0; i != n.length; i++) { this.names.addElement(n[i]); } return this; }
static List<SubjectAlternativeName> fromGeneralNames(GeneralNames generalNames) { return Arrays.stream(generalNames.getNames()).map(SubjectAlternativeName::new).collect(toList()); }
private Principal[] getPrincipals(GeneralNames names) { Object[] p = this.getNames(names.getNames()); List l = new ArrayList(); for (int i = 0; i != p.length; i++) { if (p[i] instanceof Principal) { l.add(p[i]); } } return (Principal[])l.toArray(new Principal[l.size()]); }
@Override @SuppressWarnings( "MapReplaceableByEnumMap" ) public Map<X509GeneralName, String> asMap( GeneralNames generalNames ) { if ( generalNames == null ) { return Collections.emptyMap(); } Map<X509GeneralName, String> map = new LinkedHashMap<X509GeneralName, String>(); for ( GeneralName eachGeneralName : generalNames.getNames() ) { Map.Entry<X509GeneralName, String> entry = asImmutableMapEntry( eachGeneralName ); map.put( entry.getKey(), entry.getValue() ); } return map; }
/** * Load the GeneralNamesTableModel with general names. * * @param generalNames * The general names */ public void load(GeneralNames generalNames) { GeneralName[] generalNamesArray = generalNames.getNames(); data = new ArrayList<>(Arrays.asList(generalNamesArray)); Collections.sort(data, new GeneralNameComparator()); fireTableDataChanged(); }
/** * Creates SHA1 string representation of {@link #getSANs()}. */ public String getSANsHash() { String allSans = Arrays.stream(getSANs().getNames()) .map(name -> name.getName().toString()) .collect(Collectors.joining(";")); byte[] digest = SHA1_HASHER.digest(allSans.getBytes(StandardCharsets.UTF_8)); return new String(Hex.encode(digest), StandardCharsets.UTF_8); } }
private String getCertificateIssuerStringValue(byte[] value) throws IOException { // @formatter:off /* * certificateIssuer ::= GeneralNames * * GeneralNames ::= ASN1Sequence SIZE (1..MAX) OF GeneralName */ // @formatter:on StringBuilder sb = new StringBuilder(); GeneralNames certificateIssuer = GeneralNames.getInstance(value); for (GeneralName generalName : certificateIssuer.getNames()) { sb.append(GeneralNameUtil.toString(generalName)); sb.append(NEWLINE); } return sb.toString(); }
private String getSubjectAlternativeNameStringValue(byte[] value) throws IOException { // @formatter:off /* * SubjectAltName ::= GeneralNames * * GeneralNames ::= ASN1Sequence SIZE (1..MAX) OF GeneralName */ // @formatter:on StringBuilder sb = new StringBuilder(); GeneralNames subjectAltName = GeneralNames.getInstance(value); for (GeneralName generalName : subjectAltName.getNames()) { sb.append(GeneralNameUtil.toString(generalName)); sb.append(NEWLINE); } return sb.toString(); }
private String getIssuerAlternativeNameStringValue(byte[] value) throws IOException { // @formatter:off /* * IssuerAltName ::= GeneralNames * * GeneralNames ::= ASN1Sequence SIZE (1..MAX) OF GeneralName */ // @formatter:on StringBuilder sb = new StringBuilder(); GeneralNames issuerAltName = GeneralNames.getInstance(value); for (GeneralName generalName : issuerAltName.getNames()) { sb.append(GeneralNameUtil.toString(generalName)); sb.append(NEWLINE); } return sb.toString(); }
private String getUrl(DistributionPointName distributionPoint) { if ((distributionPoint != null) && (DistributionPointName.FULL_NAME == distributionPoint.getType())) { final GeneralNames generalNames = (GeneralNames) distributionPoint.getName(); if ((generalNames != null) && (generalNames.getNames() != null && generalNames.getNames().length > 0)) { for (GeneralName generalName : generalNames.getNames()) { if (GeneralName.uniformResourceIdentifier == generalName.getTagNo()) { ASN1String str = (ASN1String) ((DERTaggedObject) generalName.toASN1Primitive()).getObject(); return str.getString(); } } } } return null; }
/** * Parses the information in the byte array (GeneralNames ASN1 sequence * of GeneralName) into a proxy tracing extension object. * * @param bytes * The bytes of ASN1 encoded proxy tracing extension. * @throws IOException * In case the byte array does not contain a valid ASN1 * encoded proxy tracing extension. */ public ProxyTracingExtension(byte[] bytes) throws IOException { names = GeneralNames.getInstance(ASN1Primitive.fromByteArray(bytes)); name = names.getNames()[0]; }
/** * Creates a {@link GeneralNameList} object from DER data. * * @param enc DER encoded general names data. * * @return Collection of general names. */ public static GeneralNameList createGeneralNameList(final DEREncodable enc) { final List<GeneralName> nameList = new ArrayList<GeneralName>(); for ( org.bouncycastle.asn1.x509.GeneralName name : org.bouncycastle.asn1.x509.GeneralNames.getInstance(enc).getNames()) { nameList.add(createGeneralName(name)); } return new GeneralNameList(nameList); }
private void okPressed() { GeneralNames issuerAlternativeName = jgnAlternativeName.getGeneralNames(); if (issuerAlternativeName.getNames().length == 0) { JOptionPane.showMessageDialog(this, res.getString("DIssuerAlternativeName.ValueReq.message"), getTitle(), JOptionPane.WARNING_MESSAGE); return; } try { value = issuerAlternativeName.getEncoded(ASN1Encoding.DER); } catch (IOException e) { DError.displayError(this, e); return; } closeDialog(); }
private void okPressed() { GeneralNames alternativeName = jgnAlternativeName.getGeneralNames(); if (alternativeName.getNames().length == 0) { JOptionPane.showMessageDialog(this, res.getString("DSubjectAlternativeName.ValueReq.message"), getTitle(), JOptionPane.WARNING_MESSAGE); return; } try { value = alternativeName.getEncoded(ASN1Encoding.DER); } catch (IOException e) { DError.displayError(this, e); return; } closeDialog(); }
@Test public void testDiscoveryNameAddedAsSan() { Mockito.when(mockTaskSpec.getDiscovery()).thenReturn(Optional.of(mockDiscoverySpec)); Mockito.when(mockDiscoverySpec.getPrefix()).thenReturn(Optional.of("custom-name")); CertificateNamesGenerator certificateNamesGenerator = new CertificateNamesGenerator(TestConstants.SERVICE_NAME, mockTaskSpec, mockPodInstance, SCHEDULER_CONFIG); GeneralNames sans = certificateNamesGenerator.getSANs(); Assert.assertEquals(1, sans.getNames().length); List<String> names = Arrays.stream(sans.getNames()) .map(name -> name.getName().toString()) .collect(Collectors.toList()); Assert.assertEquals(1, names.size()); Assert.assertTrue(names.toString(), names.contains(taskDnsName("custom", "name-0", TestConstants.SERVICE_NAME))); Assert.assertEquals(toSansHash("custom-name-0.service-name." + SCHEDULER_CONFIG.getAutoipTLD()), certificateNamesGenerator.getSANsHash()); }
@Test public void testGetSANs() throws Exception { CertificateNamesGenerator certificateNamesGenerator = new CertificateNamesGenerator(TestConstants.SERVICE_NAME, mockTaskSpec, mockPodInstance, SCHEDULER_CONFIG); GeneralNames sans = certificateNamesGenerator.getSANs(); Assert.assertEquals(1, sans.getNames().length); List<String> names = Arrays.stream(sans.getNames()) .map(name -> name.getName().toString()) .collect(Collectors.toList()); Assert.assertEquals(1, names.size()); Assert.assertTrue(names.toString(), names.contains(taskDnsName(TestConstants.TASK_NAME, TestConstants.SERVICE_NAME))); Assert.assertFalse(names.contains(taskDnsName("*", TestConstants.SERVICE_NAME))); Assert.assertFalse(names.contains(taskVipName("*", TestConstants.SERVICE_NAME))); Assert.assertEquals( toSansHash("some-pod-test-task-name.service-name." + SCHEDULER_CONFIG.getAutoipTLD()), certificateNamesGenerator.getSANsHash()); }
@Test public void testSlashesInServiceName() throws Exception { String serviceNameWithSlashes = "service/name/with/slashes"; String serviceNameWithoutSlashes = "servicenamewithslashes"; CertificateNamesGenerator certificateNamesGenerator = new CertificateNamesGenerator(serviceNameWithSlashes, mockTaskSpec, mockPodInstance, SCHEDULER_CONFIG); Assert.assertEquals(String.format("%s-%s.%s", POD_NAME, TestConstants.TASK_NAME, serviceNameWithoutSlashes), certificateNamesGenerator.getSubject().getRDNs(BCStyle.CN)[0].getFirst().getValue().toString()); List<String> names = Arrays.stream(certificateNamesGenerator.getSANs().getNames()) .map(name -> name.getName().toString()) .collect(Collectors.toList()); Assert.assertEquals(1, names.size()); Assert.assertTrue(names.toString(), names.contains(taskDnsName(TestConstants.TASK_NAME, serviceNameWithoutSlashes))); Assert.assertFalse(names.contains(taskDnsName("*", serviceNameWithoutSlashes))); Assert.assertFalse(names.contains(taskVipName("*", serviceNameWithoutSlashes))); Assert.assertEquals( toSansHash("some-pod-test-task-name.servicenamewithslashes." + SCHEDULER_CONFIG.getAutoipTLD()), certificateNamesGenerator.getSANsHash()); }