mirror of
https://github.com/danbulant/jose
synced 2026-05-19 04:18:52 +00:00
test: refactor browser tests, enable P-521 in current webkit
This commit is contained in:
parent
3ffb52b19e
commit
a0c89eafba
7 changed files with 32 additions and 75 deletions
|
|
@ -9,59 +9,46 @@ const browsers = {
|
|||
base: "BrowserStack",
|
||||
browser: "chrome",
|
||||
os: "Windows",
|
||||
os_version: "10",
|
||||
os_version: "11",
|
||||
},
|
||||
chrome_lowest: {
|
||||
base: "BrowserStack",
|
||||
browser: "chrome",
|
||||
os: "Windows",
|
||||
browser_version: "63.0",
|
||||
os_version: "10",
|
||||
os_version: "11",
|
||||
},
|
||||
firefox_latest: {
|
||||
base: "BrowserStack",
|
||||
browser: "firefox",
|
||||
os: "Windows",
|
||||
os_version: "10",
|
||||
os_version: "11",
|
||||
},
|
||||
firefox_lowest: {
|
||||
base: "BrowserStack",
|
||||
browser: "firefox",
|
||||
os: "Windows",
|
||||
browser_version: "57.0",
|
||||
os_version: "10",
|
||||
os_version: "11",
|
||||
},
|
||||
edge_latest: {
|
||||
base: "BrowserStack",
|
||||
browser: "edge",
|
||||
os: "Windows",
|
||||
os_version: "10",
|
||||
os_version: "11",
|
||||
},
|
||||
edge_lowest: {
|
||||
base: "BrowserStack",
|
||||
browser: "edge",
|
||||
os: "Windows",
|
||||
browser_version: "80.0",
|
||||
os_version: "10",
|
||||
},
|
||||
opera_latest: {
|
||||
base: "BrowserStack",
|
||||
browser: "opera",
|
||||
os: "Windows",
|
||||
os_version: "10",
|
||||
},
|
||||
opera_lowest: {
|
||||
base: "BrowserStack",
|
||||
browser: "opera",
|
||||
os: "Windows",
|
||||
browser_version: "50.0",
|
||||
os_version: "10",
|
||||
os_version: "11",
|
||||
},
|
||||
safari_latest: {
|
||||
base: "BrowserStack",
|
||||
browser: "safari",
|
||||
os: "OS X",
|
||||
os_version: "Catalina",
|
||||
os_version: "Monterey",
|
||||
},
|
||||
safari_lowest: {
|
||||
base: "BrowserStack",
|
||||
|
|
@ -69,29 +56,18 @@ const browsers = {
|
|||
os: "OS X",
|
||||
os_version: "High Sierra",
|
||||
},
|
||||
ios_latest: {
|
||||
base: "BrowserStack",
|
||||
device: "iPhone 12 Pro",
|
||||
os: "ios",
|
||||
real_mobile: true,
|
||||
os_version: "14",
|
||||
},
|
||||
ios_lowest: {
|
||||
base: "BrowserStack",
|
||||
device: "iPhone XS Max",
|
||||
os: "ios",
|
||||
real_mobile: true,
|
||||
os_version: "12",
|
||||
},
|
||||
android_latest: {
|
||||
base: "BrowserStack",
|
||||
device: "Google Pixel 4",
|
||||
os: "android",
|
||||
real_mobile: true,
|
||||
os_version: "11.0",
|
||||
},
|
||||
};
|
||||
|
||||
// TODO: 15, but it doesn't get secureContext anymore >,<
|
||||
for (const ios of [12, 13, 14]) {
|
||||
browsers[`ios_${ios}`] = {
|
||||
base: "BrowserStack",
|
||||
device: "iPhone XS",
|
||||
os: "ios",
|
||||
os_version: `${ios}`,
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = function (config) {
|
||||
config.set({
|
||||
basePath: "",
|
||||
|
|
|
|||
7
test-browser/helpers.js
Normal file
7
test-browser/helpers.js
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
import * as Bowser from 'bowser'
|
||||
|
||||
const browser = Bowser.parse(window.navigator.userAgent)
|
||||
|
||||
export const p521 = browser.engine.name !== 'WebKit' || (browser.browser.name === 'Safari' && parseInt(browser.browser.version, 10) >= 15) || (browser.os.name === 'iOS' && parseInt(browser.os.version, 10) >= 15)
|
||||
export const ecPkcs8 = browser.browser.name !== 'Firefox' || parseInt(browser.browser.version, 10) >= 93
|
||||
export const aes192 = browser.engine.name !== 'Blink'
|
||||
|
|
@ -1,12 +1,6 @@
|
|||
import * as Bowser from 'bowser'
|
||||
|
||||
import { p521, ecPkcs8 } from './helpers.js'
|
||||
import * as jose from '../dist/browser/index.js'
|
||||
|
||||
const browser = Bowser.parse(window.navigator.userAgent)
|
||||
|
||||
const p521 = browser.engine.name !== 'WebKit'
|
||||
const noPKCS8 = browser.browser.name === 'Firefox' && parseInt(browser.browser.version, 10) < 93
|
||||
|
||||
const keys = {
|
||||
rsa: {
|
||||
privateKey:
|
||||
|
|
@ -131,7 +125,7 @@ for (const alg of ['ES256', 'ECDH-ES', 'ECDH-ES+A128KW', 'ECDH-ES+A192KW', 'ECDH
|
|||
)
|
||||
QUnit.test(
|
||||
`import PKCS8 P-256 for ${alg}`,
|
||||
(noPKCS8 ? failing : (a, ...args) => a(...args)).bind(
|
||||
(ecPkcs8 ? (a, ...args) => a(...args) : failing).bind(
|
||||
undefined,
|
||||
testPKCS8.bind(undefined, keys['P-256'].privateKey, alg),
|
||||
),
|
||||
|
|
@ -146,7 +140,7 @@ for (const alg of ['ES384', 'ECDH-ES', 'ECDH-ES+A128KW', 'ECDH-ES+A192KW', 'ECDH
|
|||
)
|
||||
QUnit.test(
|
||||
`import PKCS8 P-384 for ${alg}`,
|
||||
(noPKCS8 ? failing : (a, ...args) => a(...args)).bind(
|
||||
(ecPkcs8 ? (a, ...args) => a(...args) : failing).bind(
|
||||
undefined,
|
||||
testPKCS8.bind(undefined, keys['P-384'].privateKey, alg),
|
||||
),
|
||||
|
|
@ -165,7 +159,7 @@ for (const alg of ['ES512', 'ECDH-ES', 'ECDH-ES+A128KW', 'ECDH-ES+A192KW', 'ECDH
|
|||
)
|
||||
QUnit.test(
|
||||
`import PKCS8 P-521 for ${alg}`,
|
||||
(noPKCS8 ? failing : (a, ...args) => a(...args)).bind(
|
||||
(ecPkcs8 ? (a, ...args) => a(...args) : failing).bind(
|
||||
undefined,
|
||||
testPKCS8.bind(undefined, keys['P-521'].privateKey, alg),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
import * as Bowser from 'bowser'
|
||||
|
||||
import { p521 } from './helpers.js'
|
||||
import {
|
||||
generateKeyPair,
|
||||
FlattenedEncrypt,
|
||||
|
|
@ -7,10 +6,6 @@ import {
|
|||
decodeProtectedHeader,
|
||||
} from '../dist/browser/index.js'
|
||||
|
||||
const browser = Bowser.parse(window.navigator.userAgent)
|
||||
|
||||
const p521 = browser.engine.name !== 'WebKit'
|
||||
|
||||
async function test(generate, alg, assert) {
|
||||
const { publicKey, privateKey } = await generate()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
import * as Bowser from 'bowser'
|
||||
|
||||
import { aes192 } from './helpers.js'
|
||||
import {
|
||||
generateSecret,
|
||||
FlattenedEncrypt,
|
||||
|
|
@ -7,10 +6,6 @@ import {
|
|||
decodeProtectedHeader,
|
||||
} from '../dist/browser/index.js'
|
||||
|
||||
const browser = Bowser.parse(window.navigator.userAgent)
|
||||
|
||||
const aes192 = browser.engine.name !== 'Blink'
|
||||
|
||||
async function test(generate, { alg, enc }, assert) {
|
||||
const secretKey = await generate()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
import * as Bowser from 'bowser'
|
||||
|
||||
import { p521 } from './helpers.js'
|
||||
import {
|
||||
generateKeyPair,
|
||||
generateSecret,
|
||||
|
|
@ -8,10 +7,6 @@ import {
|
|||
decodeProtectedHeader,
|
||||
} from '../dist/browser/index.js'
|
||||
|
||||
const browser = Bowser.parse(window.navigator.userAgent)
|
||||
|
||||
const p521 = browser.engine.name !== 'WebKit'
|
||||
|
||||
async function test(generate, alg, assert) {
|
||||
const generated = await generate()
|
||||
let privateKey
|
||||
|
|
|
|||
|
|
@ -1,11 +1,6 @@
|
|||
import * as Bowser from 'bowser'
|
||||
|
||||
import { p521 } from './helpers.js'
|
||||
import { importJWK, exportJWK, calculateJwkThumbprint } from '../dist/browser/index.js'
|
||||
|
||||
const browser = Bowser.parse(window.navigator.userAgent)
|
||||
|
||||
const p521 = browser.engine.name !== 'WebKit'
|
||||
|
||||
async function test(jwk, alg, assert) {
|
||||
await calculateJwkThumbprint(jwk)
|
||||
const keyLike = await importJWK({ ...jwk, ext: true }, alg)
|
||||
|
|
|
|||
Loading…
Reference in a new issue