Improve patches to sun.security.util on top of upstream OpenJDK8u121-b13.

adding missing Android change documentation.

Test: make
Bug: 36461944
Change-Id: I0f29abb3063ce42b998bf92ebb1cc021db8f2dad
diff --git a/ojluni/src/main/java/sun/security/util/DerInputStream.java b/ojluni/src/main/java/sun/security/util/DerInputStream.java
index b182d4e..6608676 100644
--- a/ojluni/src/main/java/sun/security/util/DerInputStream.java
+++ b/ojluni/src/main/java/sun/security/util/DerInputStream.java
@@ -325,6 +325,7 @@
      *          (used to initialize an auto-growing data structure)
      * @return array of the values in the sequence
      */
+    // BEGIN Android-changed: Original encoded form needed for APKs parsing/validation
     public DerValue[] getSequence(int startLen,
             boolean originalEncodedFormRetained) throws IOException {
         tag = (byte)buffer.read();
@@ -347,6 +348,7 @@
         return getSequence(
                 startLen,
                 false); // no need to retain original encoded form
+        // END Android-changed: Original encoded form needed for APKs parsing/validation
     }
 
     /**
@@ -379,6 +381,7 @@
      */
     public DerValue[] getSet(int startLen, boolean implicit)
         throws IOException {
+        // BEGIN Android-changed: Original encoded form needed for APKs parsing/validation
         return getSet(
             startLen,
             implicit,
@@ -395,6 +398,7 @@
             }
         }
         return (readVector(startLen, originalEncodedFormRetained));
+        // END Android-changed: Original encoded form needed for APKs parsing/validation
     }
 
     /*
@@ -403,6 +407,7 @@
      * this same helper routine.
      */
     protected DerValue[] readVector(int startLen) throws IOException {
+        // BEGIN Android-changed: Original encoded form needed for APKs parsing/validation
         return readVector(
             startLen,
             false); // no need to retain original encoded form
@@ -415,6 +420,7 @@
      */
     protected DerValue[] readVector(int startLen,
             boolean originalEncodedFormRetained) throws IOException {
+        // END Android-changed: Original encoded form needed for APKs parsing/validation
         DerInputStream  newstr;
 
         byte lenByte = (byte)buffer.read();
@@ -459,6 +465,7 @@
         DerValue value;
 
         do {
+            // Android-changed: Original encoded form needed for APKs parsing/validation
             value = new DerValue(newstr.buffer, originalEncodedFormRetained);
             vec.addElement(value);
         } while (newstr.available() > 0);
diff --git a/ojluni/src/main/java/sun/security/util/DerValue.java b/ojluni/src/main/java/sun/security/util/DerValue.java
index 21116dc..3045995 100644
--- a/ojluni/src/main/java/sun/security/util/DerValue.java
+++ b/ojluni/src/main/java/sun/security/util/DerValue.java
@@ -72,11 +72,13 @@
 
     private int                 length;
 
+    // BEGIN Android-added: Original encoded form needed for APKs parsing/validation
     /**
      * The original encoded form of the whole value (tag, length, and value)
      * or null if the form was not provided or was not retained during parsing.
      */
     private byte[]              originalEncodedForm;
+    // END Android-added: Original encoded form needed for APKs parsing/validation
 
     /*
      * The type starts at the first byte of the encoding, and
@@ -249,6 +251,7 @@
     /*
      * package private
      */
+    // BEGIN Android-changed: Original encoded form needed for APKs parsing/validation
     DerValue(DerInputBuffer in, boolean originalEncodedFormRetained)
             throws IOException {
         // XXX must also parse BER-encoded constructed
@@ -294,6 +297,7 @@
             int consumed = in.getPos() - startPosInInput;
             originalEncodedForm = in.getSlice(startPosInInput, consumed);
         }
+    // END Android-changed: Original encoded form needed for APKs parsing/validation
     }
 
     /**
@@ -834,6 +838,7 @@
         }
     }
 
+    // BEGIN Android-added: Original encoded form needed for APKs parsing/validation
     /**
      * Returns the original encoded form or {@code null} if the form was not
      * retained or is not available.
@@ -842,6 +847,7 @@
         return (originalEncodedForm != null)
                 ? originalEncodedForm.clone() : null;
     }
+    // END Android-added: Original encoded form needed for APKs parsing/validation
 
     /**
      * Returns a DER-encoded value, such that if it's passed to the