@@ -125,12 +125,13 @@ function checkData (data, sri, opts) {
125
125
fullSri [ sri . algorithm ] = [ sri ]
126
126
sri = fullSri
127
127
}
128
+ const pickAlgorithm = opts . pickAlgorithm || getPrioritizedHash
128
129
const algorithm = Object . keys ( sri ) . reduce ( ( acc , algo ) => {
129
- return getPrioritizedHashFunction ( acc , algo ) || acc
130
+ return pickAlgorithm ( acc , algo ) || acc
130
131
} )
131
132
const digests = sri [ algorithm ] . map ( m => m . digest )
132
133
const digest = crypto . createHash ( algorithm ) . update ( data ) . digest ( 'base64' )
133
- return digests . some ( d => d === digest )
134
+ return digests . some ( d => d === digest ) && algorithm
134
135
}
135
136
136
137
module . exports . checkStream = checkStream
@@ -158,8 +159,9 @@ function createCheckerStream (sri, opts) {
158
159
fullSri [ sri . algorithm ] = [ sri ]
159
160
sri = fullSri
160
161
}
162
+ const pickAlgorithm = opts . pickAlgorithm || getPrioritizedHash
161
163
const algorithm = Object . keys ( sri ) . reduce ( ( acc , algo ) => {
162
- return getPrioritizedHashFunction ( acc , algo ) || acc
164
+ return pickAlgorithm ( acc , algo ) || acc
163
165
} )
164
166
const digests = sri [ algorithm ] . map ( m => m . digest )
165
167
const hash = crypto . createHash ( algorithm )
@@ -186,6 +188,6 @@ function createCheckerStream (sri, opts) {
186
188
return stream
187
189
}
188
190
189
- function getPrioritizedHashFunction ( algo1 , algo2 ) {
190
- // Default implementaion is empty
191
+ function getPrioritizedHash ( algo1 , algo2 ) {
192
+ return algo1
191
193
}
0 commit comments