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.
# | 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 |
Description | Between Files 1 and 2 |
|
---|---|---|
Text Blocks | Lines | |
Unchanged | 5 | 298 |
Changed | 4 | 8 |
Inserted | 0 | 0 |
Removed | 0 | 0 |
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 |
No regular expressions were active.
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 | } |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.