Skip to content

Commit

Permalink
fix: backport regex change from 8.0.1
Browse files Browse the repository at this point in the history
PR-URL: #19
Credit: @nlf
Close: #19
Reviewed-by: @wraithgar
  • Loading branch information
nlf committed Apr 7, 2021
1 parent a4337cd commit b30dfdb
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 1 deletion.
2 changes: 1 addition & 1 deletion index.js
Expand Up @@ -8,7 +8,7 @@ const SPEC_ALGORITHMS = ['sha256', 'sha384', 'sha512']

const BASE64_REGEX = /^[a-z0-9+/]+(?:=?=?)$/i
const SRI_REGEX = /^([^-]+)-([^?]+)([?\S*]*)$/
const STRICT_SRI_REGEX = /^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/
const STRICT_SRI_REGEX = /^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)?$/
const VCHAR_REGEX = /^[\x21-\x7E]+$/

const SsriOpts = figgyPudding({
Expand Down
28 changes: 28 additions & 0 deletions test/parse.js
Expand Up @@ -26,6 +26,34 @@ test('parses single-entry integrity string', t => {
t.done()
})

test('parses options from integrity string', t => {
const sha = hash(TEST_DATA, 'sha512')
const integrity = `sha512-${sha}?one?two?three`
t.deepEqual(ssri.parse(integrity), {
sha512: [{
source: integrity,
digest: sha,
algorithm: 'sha512',
options: ['one', 'two', 'three']
}]
}, 'single entry parsed into full Integrity instance')
t.done()
})

test('parses options from integrity string in strict mode', t => {
const sha = hash(TEST_DATA, 'sha512')
const integrity = `sha512-${sha}?one?two?three`
t.deepEqual(ssri.parse(integrity, { strict: true }), {
sha512: [{
source: integrity,
digest: sha,
algorithm: 'sha512',
options: ['one', 'two', 'three']
}]
}, 'single entry parsed into full Integrity instance')
t.done()
})

test('can parse single-entry string directly into Hash', t => {
const sha = hash(TEST_DATA, 'sha512')
const integrity = `sha512-${sha}`
Expand Down

0 comments on commit b30dfdb

Please sign in to comment.