Merge "Add getIssuerAlternativeNames() to JCE API"
diff --git a/bcprov/src/main/java/org/bouncycastle/jce/provider/X509CertificateObject.java b/bcprov/src/main/java/org/bouncycastle/jce/provider/X509CertificateObject.java
index ebd2343..21c305e 100644
--- a/bcprov/src/main/java/org/bouncycastle/jce/provider/X509CertificateObject.java
+++ b/bcprov/src/main/java/org/bouncycastle/jce/provider/X509CertificateObject.java
@@ -834,5 +834,9 @@
     {
         return X509ExtensionUtil.getSubjectAlternativeNames(this);
     }
+    public Collection<List<?>> getIssuerAlternativeNames() throws CertificateParsingException
+    {
+        return X509ExtensionUtil.getIssuerAlternativeNames(this);
+    }
     // END android-added
 }
diff --git a/bcprov/src/main/java/org/bouncycastle/x509/extension/X509ExtensionUtil.java b/bcprov/src/main/java/org/bouncycastle/x509/extension/X509ExtensionUtil.java
index 0a6a7c4..538bdfc 100644
--- a/bcprov/src/main/java/org/bouncycastle/x509/extension/X509ExtensionUtil.java
+++ b/bcprov/src/main/java/org/bouncycastle/x509/extension/X509ExtensionUtil.java
@@ -113,7 +113,9 @@
                     throw new IOException("Bad tag number: " + genName.getTagNo());
                 }
 
-                temp.add(list);
+                // BEGIN android-changed
+                temp.add(Collections.unmodifiableList(list));
+                // END android-changed
             }
             // BEGIN android-added
             if (temp.size() == 0) {
diff --git a/patches/bcprov.patch b/patches/bcprov.patch
index cde1b5e..a5940ac 100644
--- a/patches/bcprov.patch
+++ b/patches/bcprov.patch
@@ -9612,7 +9612,7 @@
                  subtreesMap.put(tagNo, new HashSet());
 diff -Naur bcprov-jdk15on-147.orig/org/bouncycastle/jce/provider/X509CertificateObject.java bcprov-jdk15on-147/org/bouncycastle/jce/provider/X509CertificateObject.java
 --- bcprov-jdk15on-147.orig/org/bouncycastle/jce/provider/X509CertificateObject.java	2012-03-22 15:11:48.000000000 +0000
-+++ bcprov-jdk15on-147/org/bouncycastle/jce/provider/X509CertificateObject.java	2013-01-07 18:41:42.000000000 +0000
++++ bcprov-jdk15on-147/org/bouncycastle/jce/provider/X509CertificateObject.java	2013-01-16 18:17:43.000000000 +0000
 @@ -20,6 +20,9 @@
  import java.security.cert.CertificateParsingException;
  import java.security.cert.X509Certificate;
@@ -9655,7 +9655,7 @@
          }
          catch (IOException e)
          {
-@@ -815,4 +829,10 @@
+@@ -815,4 +829,14 @@
          
          return id1.getParameters().equals(id2.getParameters());
      }
@@ -9664,6 +9664,10 @@
 +    {
 +        return X509ExtensionUtil.getSubjectAlternativeNames(this);
 +    }
++    public Collection<List<?>> getIssuerAlternativeNames() throws CertificateParsingException
++    {
++        return X509ExtensionUtil.getIssuerAlternativeNames(this);
++    }
 +    // END android-added
  }
 diff -Naur bcprov-jdk15on-147.orig/org/bouncycastle/jce/provider/X509SignatureUtil.java bcprov-jdk15on-147/org/bouncycastle/jce/provider/X509SignatureUtil.java
@@ -9953,7 +9957,7 @@
      
 diff -Naur bcprov-jdk15on-147.orig/org/bouncycastle/x509/extension/X509ExtensionUtil.java bcprov-jdk15on-147/org/bouncycastle/x509/extension/X509ExtensionUtil.java
 --- bcprov-jdk15on-147.orig/org/bouncycastle/x509/extension/X509ExtensionUtil.java	2012-03-22 15:11:48.000000000 +0000
-+++ bcprov-jdk15on-147/org/bouncycastle/x509/extension/X509ExtensionUtil.java	2013-01-07 18:41:42.000000000 +0000
++++ bcprov-jdk15on-147/org/bouncycastle/x509/extension/X509ExtensionUtil.java	2013-01-16 18:17:43.000000000 +0000
 @@ -1,6 +1,10 @@
  package org.bouncycastle.x509.extension;
  
@@ -10013,7 +10017,7 @@
                      break;
                  case GeneralName.dNSName:
                  case GeneralName.rfc822Name:
-@@ -82,7 +98,16 @@
+@@ -82,14 +98,30 @@
                      list.add(ASN1ObjectIdentifier.getInstance(genName.getName()).getId());
                      break;
                  case GeneralName.iPAddress:
@@ -10031,9 +10035,12 @@
                      break;
                  default:
                      throw new IOException("Bad tag number: " + genName.getTagNo());
-@@ -90,6 +115,11 @@
+                 }
  
-                 temp.add(list);
+-                temp.add(list);
++                // BEGIN android-changed
++                temp.add(Collections.unmodifiableList(list));
++                // END android-changed
              }
 +            // BEGIN android-added
 +            if (temp.size() == 0) {