+ PKCS10Attributes atts = parsed.getAttributes();
+ ObjectIdentifier extensionsRequest = ObjectIdentifier.newInternal(new int[] {
+ 1, 2, 840, 113549, 1, 9, 14
+ });
+
+ for (PKCS10Attribute b : atts.getAttributes()) {
+
+ if ( !b.getAttributeId().equals((Object) extensionsRequest)) {
+ // unknown attrib
+ continue;
+ }
+ Object attribs = b.getAttributeValue();
+ CertificateExtensions ce = (CertificateExtensions) attribs;
+ for (Extension c : ce.getAllExtensions()) {
+ if (c instanceof SubjectAlternativeNameExtension) {
+
+ SubjectAlternativeNameExtension san = (SubjectAlternativeNameExtension) c;
+ GeneralNames obj = san.get(SubjectAlternativeNameExtension.SUBJECT_NAME);
+ for (int i = 0; i < obj.size(); i++) {
+ GeneralName generalName = obj.get(i);
+ GeneralNameInterface peeled = generalName.getName();
+ if (peeled instanceof DNSName) {
+ System.out.println("is-dns: " + ((DNSName) peeled).getName());
+ } else if (peeled instanceof RFC822Name) {
+ System.out.println("is email: " + ((RFC822Name) peeled).getName());
+ }
+ }
+ } else if (c instanceof ExtendedKeyUsageExtension) {
+ ExtendedKeyUsageExtension ekue = (ExtendedKeyUsageExtension) c;
+ for (String s : ekue.getExtendedKeyUsage()) {
+ System.out.println("Usage: " + s);
+ if (s.equals("1.3.6.1.5.5.7.3.1")) {
+ // server
+ } else if (s.equals("1.3.6.1.5.5.7.3.2")) {
+ // client
+ } else if (s.equals("1.3.6.1.5.5.7.3.3")) {
+ // code sign
+ } else if (s.equals("1.3.6.1.5.5.7.3.4")) {
+ System.out.println("Us: emailProtection");
+ } else if (s.equals("1.3.6.1.5.5.7.3.8")) {
+ // timestamp
+ } else if (s.equals("1.3.6.1.5.5.7.3.9")) {
+ // OCSP
+ }
+ }
+ } else {
+ // Unknown requestet extension
+ }
+ }