jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/Base64.java
changeset 41480 44588c4e91af
parent 25859 3317bb8137f4
equal deleted inserted replaced
41479:bf50b06f27b5 41480:44588c4e91af
   374 
   374 
   375         if (binaryData == null) {
   375         if (binaryData == null) {
   376             return null;
   376             return null;
   377         }
   377         }
   378 
   378 
   379         int lengthDataBits = binaryData.length * EIGHTBIT;
   379         long lengthDataBits = ((long) binaryData.length) * ((long) EIGHTBIT);
   380         if (lengthDataBits == 0) {
   380         if (lengthDataBits == 0L) {
   381             return "";
   381             return "";
   382         }
   382         }
   383 
   383 
   384         int fewerThan24bits = lengthDataBits % TWENTYFOURBITGROUP;
   384         long fewerThan24bits = lengthDataBits % TWENTYFOURBITGROUP;
   385         int numberTriplets = lengthDataBits / TWENTYFOURBITGROUP;
   385         int numberTriplets = (int) (lengthDataBits / TWENTYFOURBITGROUP);
   386         int numberQuartet = fewerThan24bits != 0 ? numberTriplets + 1 : numberTriplets;
   386         int numberQuartet = fewerThan24bits != 0L ? numberTriplets + 1 : numberTriplets;
   387         int quartesPerLine = length / 4;
   387         int quartesPerLine = length / 4;
   388         int numberLines = (numberQuartet - 1) / quartesPerLine;
   388         int numberLines = (numberQuartet - 1) / quartesPerLine;
   389         char encodedData[] = null;
   389         char encodedData[] = null;
   390 
   390 
   391         encodedData = new char[numberQuartet * 4 + numberLines];
   391         encodedData = new char[numberQuartet * 4 + numberLines];