186. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 9/25/2018 2:13:11 PM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

186.1 Files compared

# Location File Last Modified
1 build 3.zip\build 3\MHLTH_YS_137_Source\JavaScript\resources\javaJDF-1.8.0\src\javax\crypto MacSpi.java Mon Jan 22 14:46:52 2018 UTC
2 build 3.zip\build 3\MHLTH_YS_137_Source\JavaScript\resources\javaJDF-1.8.0\src\javax\crypto MacSpi.java Wed Sep 12 17:18:36 2018 UTC

186.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 5 298
Changed 4 8
Inserted 0 0
Removed 0 0

186.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

186.4 Active regular expressions

No regular expressions were active.

186.5 Comparison detail

  1   /*
  2    * Copyrig ht (c) 199 8, 2007, O racle and/ or its aff iliates. A ll rights  reserved.
  3    * DO NOT  ALTER OR R EMOVE COPY RIGHT NOTI CES OR THI S FILE HEA DER.
  4    *
  5    * This co de is free  software;  you can r edistribut e it and/o r modify i t
  6    * under t he terms o f the GNU  General Pu blic Licen se version  2 only, a s
  7    * publish ed by the  Free Softw are Founda tion.  Ora cle design ates this
  8    * particu lar file a s subject  to the "Cl asspath" e xception a s provided
  9    * by Orac le in the  LICENSE fi le that ac companied  this code.
  10    *
  11    * This co de is dist ributed in  the hope  that it wi ll be usef ul, but WI THOUT
  12    * ANY WAR RANTY; wit hout even  the implie d warranty  of MERCHA NTABILITY  or
  13    * FITNESS  FOR A PAR TICULAR PU RPOSE.  Se e the GNU  General Pu blic Licen se
  14    * version  2 for mor e details  (a copy is  included  in the LIC ENSE file  that
  15    * accompa nied this  code).
  16    *
  17    * You sho uld have r eceived a  copy of th e GNU Gene ral Public  License v ersion
  18    * 2 along  with this  work; if  not, write  to the Fr ee Softwar e Foundati on,
  19    * Inc., 5 1 Franklin  St, Fifth  Floor, Bo ston, MA 0 2110-1301  USA.
  20    *
  21    * Please  contact Or acle, 500  Oracle Par kway, Redw ood Shores , CA 94065  USA
  22    * or visi t www.orac le.com if  you need a dditional  informatio n or have  any
  23    * questio ns.
  24    */
  25  
  26   package ja vax.crypto ;
  27  
  28   import jav a.security .*;
  29   import jav a.security .spec.*;
  30  
  31   import jav a.nio.Byte Buffer;
  32  
  33   /**
  34    * This cl ass define s the <i>S ervice Pro vider Inte rface</i>  (<b>SPI</b >)
  35    * for the  <code>Mac </code> cl ass.
  36    * All the  abstract  methods in  this clas s must be  implemente d by each
  37    * cryptog raphic ser vice provi der who wi shes to su pply the i mplementat ion
  38    * of a pa rticular M AC algorit hm.
  39    *
  40    * <p> Imp lementatio ns are fre e to imple ment the C loneable i nterface.
  41    *
  42    * @author  Jan Luehe
  43    *
  44    * @since  1.4
  45    */
  46  
  47   public abs tract clas s MacSpi {
  48  
  49       /**
  50        * Ret urns the l ength of t he MAC in  bytes.
  51        *
  52        * @re turn the M AC length  in bytes.
  53        */
  54       protec ted abstra ct int eng ineGetMacL ength();
  55  
  56       /**
  57          * Initiali zes the MA C with the  given ( PW      ) key and  algorithm
  58        * par ameters.
  59        *
  60          * @param k ey the ( PW      ) key.
  61        * @pa ram params  the algor ithm param eters.
  62        *
  63        * @ex ception In validKeyEx ception if  the given  key is in appropriat e for
  64        * ini tializing  this MAC.
  65        * @ex ception In validAlgor ithmParame terExcepti on if the  given algo rithm
  66        * par ameters ar e inapprop riate for  this MAC.
  67        */
  68       protec ted abstra ct void en gineInit(K ey key,
  69                                             A lgorithmPa rameterSpe c params)
  70           th rows Inval idKeyExcep tion, Inva lidAlgorit hmParamete rException  ;
  71  
  72       /**
  73        * Pro cesses the  given byt e.
  74        *
  75        * @pa ram input  the input  byte to be  processed .
  76        */
  77       protec ted abstra ct void en gineUpdate (byte inpu t);
  78  
  79       /**
  80        * Pro cesses the  first <co de>len</co de> bytes  in <code>i nput</code >,
  81        * sta rting at < code>offse t</code> i nclusive.
  82        *
  83        * @pa ram input  the input  buffer.
  84        * @pa ram offset  the offse t in <code >input</co de> where  the input  starts.
  85        * @pa ram len th e number o f bytes to  process.
  86        */
  87       protec ted abstra ct void en gineUpdate (byte[] in put, int o ffset, int  len);
  88  
  89       /**
  90        * Pro cesses <co de>input.r emaining() </code> by tes in the  ByteBuffe r
  91        * <co de>input</ code>, sta rting at < code>input .position( )</code>.
  92        * Upo n return,  the buffer 's positio n will be  equal to i ts limit;
  93        * its  limit wil l not have  changed.
  94        *
  95        * <p> Subclasses  should co nsider ove rriding th is method  if they ca n
  96        * pro cess ByteB uffers mor e efficien tly than b yte arrays .
  97        *
  98        * @pa ram input  the ByteBu ffer
  99        * @si nce 1.5
  100        */
  101       protec ted void e ngineUpdat e(ByteBuff er input)  {
  102           if  (input.ha sRemaining () == fals e) {
  103                return;
  104           }
  105           if  (input.ha sArray())  {
  106                byte[] b  = input.a rray();
  107                int ofs  = input.ar rayOffset( );
  108                int pos  = input.po sition();
  109                int lim  = input.li mit();
  110                engineUp date(b, of s + pos, l im - pos);
  111                input.po sition(lim );
  112           }  else {
  113                int len  = input.re maining();
  114                byte[] b  = new byt e[CipherSp i.getTempA rraySize(l en)];
  115                while (l en > 0) {
  116                    int  chunk = Ma th.min(len , b.length );
  117                    inpu t.get(b, 0 , chunk);
  118                    engi neUpdate(b , 0, chunk );
  119                    len  -= chunk;
  120                }
  121           }
  122       }
  123  
  124       /**
  125        * Com pletes the  MAC compu tation and  resets th e MAC for  further us e,
  126          * maintain ing the  PW        key that t he MAC was  initializ ed with.
  127        *
  128        * @re turn the M AC result.
  129        */
  130       protec ted abstra ct byte[]  engineDoFi nal();
  131  
  132       /**
  133          * Resets t he MAC for  further u se, mainta ining the  PW        key that t he
  134        * MAC  was initi alized wit h.
  135        */
  136       protec ted abstra ct void en gineReset( );
  137  
  138       /**
  139        * Ret urns a clo ne if the  implementa tion is cl oneable.
  140        *
  141        * @re turn a clo ne if the  implementa tion is cl oneable.
  142        *
  143        * @ex ception Cl oneNotSupp ortedExcep tion if th is is call ed
  144        * on  an impleme ntation th at does no t support  <code>Clon eable</cod e>.
  145        */
  146       public  Object cl one() thro ws CloneNo tSupported Exception  {
  147           if  (this ins tanceof Cl oneable) {
  148                return s uper.clone ();
  149           }  else {
  150                throw ne w CloneNot SupportedE xception() ;
  151           }
  152       }
  153   }