Skip to content

Commit d5ce942

Browse files
authored
Merge pull request #559 from panva/bump-jose
bump jose
2 parents ae8105b + a87bc1f commit d5ce942

File tree

7 files changed

+26
-50
lines changed

7 files changed

+26
-50
lines changed

package-lock.json

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
"highlight.js": "^10.4.1",
5050
"inject-loader": "^3.0.1",
5151
"isotope-layout": "^3.0.6",
52-
"jose": "^3.19.0",
52+
"jose": "^4.0.2",
5353
"jquery": "^3.4.1",
5454
"lodash": "^4.17.13",
5555
"loglevel": "^1.6.2",

src/editor/jwt.js

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@ import b64u from 'base64url';
22
import any from 'promise.any';
33
import strings from '../strings';
44
import log from 'loglevel';
5-
import * as keyImport from 'jose/key/import'
6-
import CompactSign from 'jose/jws/compact/sign'
7-
import compactVerify from 'jose/jws/compact/verify'
5+
import * as jose from 'jose'
86
import { pki } from 'node-forge';
97

108
function symmetricSecret(key, alg, base64Secret) {
@@ -37,21 +35,21 @@ function getJoseKey(header, key, base64Secret, type) {
3735
key = pki.privateKeyInfoToPem(pki.wrapRsaPrivateKey(pki.privateKeyToAsn1(pki.privateKeyFromPem(key))))
3836
}
3937
return any([
40-
keyImport.importPKCS8(key, header.alg),
38+
jose.importPKCS8(key, header.alg),
4139
Promise.resolve().then(() => JSON.parse(key)).then(rawPrivate).then((jwk) => {
4240
if (!('d' in jwk)) throw new Error('not a private JWK')
43-
return keyImport.importJWK(jwk, header.alg)
41+
return jose.importJWK(jwk, header.alg)
4442
})
4543
])
4644
case types.PUBLIC:
4745
if (key.startsWith('-----BEGIN RSA PUBLIC KEY-----')) {
4846
key = pki.publicKeyToPem(pki.publicKeyFromPem(key))
4947
}
5048
return any([
51-
keyImport.importSPKI(key, header.alg),
52-
keyImport.importX509(key, header.alg),
49+
jose.importSPKI(key, header.alg),
50+
jose.importX509(key, header.alg),
5351
Promise.resolve().then(() => JSON.parse(key)).then(rawPublic).then((jwk) => {
54-
return keyImport.importJWK(jwk, header.alg)
52+
return jose.importJWK(jwk, header.alg)
5553
})
5654
])
5755
default:
@@ -73,7 +71,7 @@ export function sign(header,
7371
payload = JSON.stringify(payload);
7472
}
7573

76-
return new CompactSign(new TextEncoder().encode(payload))
74+
return new jose.CompactSign(new TextEncoder().encode(payload))
7775
.setProtectedHeader(header)
7876
.sign(key);
7977
}
@@ -93,7 +91,7 @@ export function verify(jwt, secretOrPublicKeyString, base64Secret = false) {
9391

9492
return getJoseKey(decoded.header, secretOrPublicKeyString, base64Secret, types.PUBLIC).then(
9593
key => {
96-
return compactVerify(jwt, key)
94+
return jose.compactVerify(jwt, key)
9795
.then(() => ({
9896
validSignature: true,
9997
validBase64: jwt.split('.').reduce((valid, s) => valid = valid && isValidBase64String(s), true)

src/editor/public-key-download.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { createRemoteJWKSet } from 'jose/jwks/remote'
2-
import * as keyExport from 'jose/key/export'
1+
import * as jose from 'jose'
32

43
import { httpGet } from '../utils.js';
54

@@ -25,7 +24,7 @@ function getKeyFromX5Claims(claims) {
2524
}
2625

2726
function getKeyFromJwkKeySetUrl(header, url) {
28-
return createRemoteJWKSet(new URL(url))(header, {}).then(keyExport.exportJWK).then((jwk) => JSON.stringify(jwk, null, 2))
27+
return jose.createRemoteJWKSet(new URL(url))(header, {}).then(jose.exportJWK).then((jwk) => JSON.stringify(jwk, null, 2))
2928
}
3029

3130
export function downloadPublicKeyIfPossible(decodedToken) {

test/functional/editor.js

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ const chaiAsPromised = require('chai-as-promised');
33
const chaiArrays = require('chai-arrays');
44

55
const express = require('express');
6-
const { importPKCS8 } = require('jose/key/import')
7-
const { CompactSign } = require('jose/jws/compact/sign')
6+
const jose = require('jose');
87

98
const _ = require('lodash');
109

@@ -558,8 +557,8 @@ describe('Editor', function() {
558557
});
559558

560559
it('iss URL + .well-known', async function() {
561-
const key = await importPKCS8(defaultTokens.rs256.privateKey, 'RS256');
562-
const token = await new CompactSign(Buffer.from(JSON.stringify({
560+
const key = await jose.importPKCS8(defaultTokens.rs256.privateKey, 'RS256');
561+
const token = await new jose.CompactSign(Buffer.from(JSON.stringify({
563562
sub: 'test',
564563
iss: 'http://localhost:3000/'
565564
}))).setProtectedHeader({
@@ -584,8 +583,8 @@ describe('Editor', function() {
584583
it('jku', async function() {
585584
//this.timeout(20000);
586585

587-
const key = await importPKCS8(defaultTokens.rs256.privateKey, 'RS256');
588-
const token = await new CompactSign(Buffer.from(JSON.stringify({
586+
const key = await jose.importPKCS8(defaultTokens.rs256.privateKey, 'RS256');
587+
const token = await new jose.CompactSign(Buffer.from(JSON.stringify({
589588
sub: 'test'
590589
}))).setProtectedHeader({
591590
alg: 'RS256',
@@ -610,8 +609,8 @@ describe('Editor', function() {
610609
it('x5c', async function() {
611610
//this.timeout(35000);
612611

613-
const key = await importPKCS8(defaultTokens.rs256.privateKey, 'RS256');
614-
const token = await new CompactSign(Buffer.from(JSON.stringify({
612+
const key = await jose.importPKCS8(defaultTokens.rs256.privateKey, 'RS256');
613+
const token = await new jose.CompactSign(Buffer.from(JSON.stringify({
615614
sub: 'test'
616615
}))).setProtectedHeader({
617616
alg: 'RS256',

webpack.common.js

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,5 @@ module.exports = {
3232
$: "jquery",
3333
jQuery: "jquery",
3434
}),
35-
],
36-
resolve: {
37-
alias: {
38-
'jose/key/import': 'jose/dist/browser/key/import',
39-
'jose/key/export': 'jose/dist/browser/key/export',
40-
'jose/jws/compact/sign': 'jose/dist/browser/jws/compact/sign',
41-
'jose/jws/compact/verify': 'jose/dist/browser/jws/compact/verify',
42-
'jose/jwks/remote': 'jose/dist/browser/jwks/remote',
43-
'jose/jwk/embedded': 'jose/dist/browser/jwk/embedded',
44-
}
45-
}
35+
]
4636
};

webpack.website-unit-tests.js

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,5 @@ module.exports = merge(common, {
4141
}
4242
}
4343
}]
44-
},
45-
resolve: {
46-
alias: {
47-
'jose/key/import': 'jose/dist/node/cjs/key/import',
48-
'jose/key/export': 'jose/dist/node/cjs/key/export',
49-
'jose/jws/compact/sign': 'jose/dist/node/cjs/jws/compact/sign',
50-
'jose/jws/compact/verify': 'jose/dist/node/cjs/jws/compact/verify',
51-
'jose/jwks/remote': 'jose/dist/node/cjs/jwks/remote',
52-
'jose/jwk/embedded': 'jose/dist/node/cjs/jwk/embedded',
53-
}
5444
}
5545
});

0 commit comments

Comments
 (0)