jose-node-cjs-runtime
Advanced tools
Comparing version 4.11.0 to 4.11.1
@@ -102,3 +102,3 @@ "use strict"; | ||
if (typeof pkcs8 !== 'string' || pkcs8.indexOf('-----BEGIN PRIVATE KEY-----') !== 0) { | ||
throw new TypeError('"pkcs8" must be PKCS8 formatted string'); | ||
throw new TypeError('"pkcs8" must be PKCS#8 formatted string'); | ||
} | ||
@@ -105,0 +105,0 @@ return (0, asn1_js_2.fromPKCS8)(pkcs8, alg, options); |
@@ -18,6 +18,7 @@ import type { KeyLike, DecryptOptions, JWTClaimVerificationOptions, GetKeyFunction, CompactJWEHeaderParameters, FlattenedJWE, JWTDecryptResult, ResolvedKey } from '../types'; | ||
* ```js | ||
* const secret = jose.base64url.decode('zH4NRP1HMALxxCFnRZABFA7GOJtzU_gIj02alfL1lvI') | ||
* const jwt = | ||
* 'eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..KVcNLqK-3-8ZkYIC.xSwF4VxO0kUMUD2W-cifsNUxnr-swyBq-nADBptyt6y9n79-iNc5b0AALJpRwc0wwDkJw8hNOMjApNUTMsK9b-asToZ3DXFMvwfJ6n1aWefvd7RsoZ2LInWFfVAuttJDzoGB.uuexQoWHwrLMEYRElT8pBQ' | ||
* 'eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0..MB66qstZBPxAXKdsjet_lA.WHbtJTl4taHp7otOHLq3hBvv0yNPsPEKHYInmCPdDDeyV1kU-f-tGEiU4FxlSqkqAT2hVs8_wMNiQFAzPU1PUgIqWCPsBrPP3TtxYsrtwagpn4SvCsUsx0Mhw9ZhliAO8CLmCBQkqr_T9AcYsz5uZw.7nX9m7BGUu_u1p1qFHzyIg' | ||
* | ||
* const { payload, protectedHeader } = await jose.jwtDecrypt(jwt, secretKey, { | ||
* const { payload, protectedHeader } = await jose.jwtDecrypt(jwt, secret, { | ||
* issuer: 'urn:example:issuer', | ||
@@ -24,0 +25,0 @@ * audience: 'urn:example:audience', |
@@ -9,4 +9,5 @@ import type { EncryptOptions, CompactJWEHeaderParameters, JWEKeyManagementHeaderParameters, KeyLike } from '../types'; | ||
* ```js | ||
* const secret = jose.base64url.decode('zH4NRP1HMALxxCFnRZABFA7GOJtzU_gIj02alfL1lvI') | ||
* const jwt = await new jose.EncryptJWT({ 'urn:example:claim': true }) | ||
* .setProtectedHeader({ alg: 'dir', enc: 'A256GCM' }) | ||
* .setProtectedHeader({ alg: 'dir', enc: 'A128CBC-HS256' }) | ||
* .setIssuedAt() | ||
@@ -16,3 +17,3 @@ * .setIssuer('urn:example:issuer') | ||
* .setExpirationTime('2h') | ||
* .encrypt(secretKey) | ||
* .encrypt(secret) | ||
* | ||
@@ -19,0 +20,0 @@ * console.log(jwt) |
@@ -6,7 +6,12 @@ import type { JWTHeaderParameters, KeyLike, SignOptions } from '../types'; | ||
* | ||
* @example Usage | ||
* @example Usage with a symmetric secret | ||
* | ||
* ```js | ||
* const secret = new TextEncoder().encode( | ||
* 'cc7e0d44fd473002f1c42167459001140ec6389b7353f8088f4d9a95f2f596f2', | ||
* ) | ||
* const alg = 'HS256' | ||
* | ||
* const jwt = await new jose.SignJWT({ 'urn:example:claim': true }) | ||
* .setProtectedHeader({ alg: 'ES256' }) | ||
* .setProtectedHeader({ alg }) | ||
* .setIssuedAt() | ||
@@ -16,2 +21,47 @@ * .setIssuer('urn:example:issuer') | ||
* .setExpirationTime('2h') | ||
* .sign(secret) | ||
* | ||
* console.log(jwt) | ||
* ``` | ||
* | ||
* @example Usage with a private PKCS#8 encoded RSA key | ||
* | ||
* ```js | ||
* const alg = 'RS256' | ||
* const pkcs8 = `-----BEGIN PRIVATE KEY----- | ||
* MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDCFg4UrY5xtulv | ||
* /NXKmL1J4qI1SopAfTNMo3X7p+kJO7plqUYjzaztcre1qfh0m33Sm1Q8oPbO/GpP | ||
* MU1/HgcceytgJ/b4UwufVVMl9BrMDYG8moDBylbVupFQS3Ly1L9i/iFG9Z9A9xzY | ||
* Zzf799A45bnvNXL6s2glzvjiRvfQ2NDF0anTcnZLcYtC7ugq1IMM+ihAcPfw8Qw2 | ||
* chN/SmP4qAM+PKaQwagmU7doqmmyN9u38AfoYZ1GCFhEs5TBBT6H6h9YdHeVtiIq | ||
* 1c+fl03biSIfLrV7dUBD39gBmXBcL/30Ya3D82mCEUC4zg/UkOfQOmkmV3Lc8YUL | ||
* QZ8EJkBLAgMBAAECggEAVuVE/KEP6323WjpbBdAIv7HGahGrgGANvbxZsIhm34ls | ||
* VOPK0XDegZkhAybMZHjRhp+gwVxX5ChC+J3cUpOBH5FNxElgW6HizD2Jcq6t6LoL | ||
* YgPSrfEHm71iHg8JsgrqfUnGYFzMJmv88C6WdCtpgG/qJV1K00/Ly1G1QKoBffEs | ||
* +v4fAMJrCbUdCz1qWto+PU+HLMEo+krfEpGgcmtZeRlDADh8cETMQlgQfQX2VWq/ | ||
* aAP4a1SXmo+j0cvRU4W5Fj0RVwNesIpetX2ZFz4p/JmB5sWFEj/fC7h5z2lq+6Bm | ||
* e2T3BHtXkIxoBW0/pYVnASC8P2puO5FnVxDmWuHDYQKBgQDTuuBd3+0tSFVEX+DU | ||
* 5qpFmHm5nyGItZRJTS+71yg5pBxq1KqNCUjAtbxR0q//fwauakh+BwRVCPOrqsUG | ||
* jBSb3NYE70Srp6elqxgkE54PwQx4Mr6exJPnseM9U4K+hULllf5yjM9edreJE1nV | ||
* NVgFjeyafQhrHKwgr7PERJ/ikwKBgQDqqsT1M+EJLmI1HtCspOG6cu7q3gf/wKRh | ||
* E8tu84i3YyBnI8uJkKy92RNVI5fvpBARe3tjSdM25rr2rcrcmF/5g6Q9ImxZPGCt | ||
* 86eOgO9ErNtbc4TEgybsP319UE4O41aKeNiBTAZKoYCxv/dMqG0j4avmWzd+foHq | ||
* gSNUvR2maQKBgQCYeqOsV2B6VPY7KIVFLd0AA9/dwvEmgAYLiA/RShDI+hwQ/5jX | ||
* uxDu37KAhqeC65sHLrmIMUt4Zdr+DRyZK3aIDNEAesPMjw/X6lCXYp1ZISD2yyym | ||
* MFGH8X8CIkstI9Faf9vf6PJKSFrC1/HA7wq17VCwrUzLvrljTMW8meM/CwKBgCpo | ||
* 2leGHLFQFKeM/iF1WuYbR1pi7gcmhY6VyTowARFDdOOu8GXYI5/bz0afvCGvAMho | ||
* DJCREv7lC/zww6zCTPYG+HOj+PjXlJFba3ixjIxYwPvyEJiDK1Ge18sB7Fl8dHNq | ||
* C5ayaqCqN1voWYUdGzxU2IA1E/5kVo5O8FesJeOhAoGBAImJbZFf+D5kA32Xxhac | ||
* 59lLWBCsocvvbd1cvDMNlRywAAyhsCb1SuX4nEAK9mrSBdfmoF2Nm3eilfsOds0f | ||
* K5mX069IKG82CMqh3Mzptd7e7lyb9lsoGO0BAtjho3cWtha/UZ70vfaMzGuZ6JmQ | ||
* ak6k+8+UFd93M4z0Qo74OhXB | ||
* -----END PRIVATE KEY----` | ||
* const privateKey = await jose.importPKCS8(pkcs8, alg) | ||
* | ||
* const jwt = await new jose.SignJWT({ 'urn:example:claim': true }) | ||
* .setProtectedHeader({ alg }) | ||
* .setIssuedAt() | ||
* .setIssuer('urn:example:issuer') | ||
* .setAudience('urn:example:audience') | ||
* .setExpirationTime('2h') | ||
* .sign(privateKey) | ||
@@ -21,2 +71,30 @@ * | ||
* ``` | ||
* | ||
* @example Usage with a private JWK encoded RSA key | ||
* | ||
* ```js | ||
* const alg = 'RS256' | ||
* const jwk = { | ||
* kty: 'RSA', | ||
* n: 'whYOFK2Ocbbpb_zVypi9SeKiNUqKQH0zTKN1-6fpCTu6ZalGI82s7XK3tan4dJt90ptUPKD2zvxqTzFNfx4HHHsrYCf2-FMLn1VTJfQazA2BvJqAwcpW1bqRUEty8tS_Yv4hRvWfQPcc2Gc3-_fQOOW57zVy-rNoJc744kb30NjQxdGp03J2S3GLQu7oKtSDDPooQHD38PEMNnITf0pj-KgDPjymkMGoJlO3aKppsjfbt_AH6GGdRghYRLOUwQU-h-ofWHR3lbYiKtXPn5dN24kiHy61e3VAQ9_YAZlwXC_99GGtw_NpghFAuM4P1JDn0DppJldy3PGFC0GfBCZASw', | ||
* e: 'AQAB', | ||
* d: 'VuVE_KEP6323WjpbBdAIv7HGahGrgGANvbxZsIhm34lsVOPK0XDegZkhAybMZHjRhp-gwVxX5ChC-J3cUpOBH5FNxElgW6HizD2Jcq6t6LoLYgPSrfEHm71iHg8JsgrqfUnGYFzMJmv88C6WdCtpgG_qJV1K00_Ly1G1QKoBffEs-v4fAMJrCbUdCz1qWto-PU-HLMEo-krfEpGgcmtZeRlDADh8cETMQlgQfQX2VWq_aAP4a1SXmo-j0cvRU4W5Fj0RVwNesIpetX2ZFz4p_JmB5sWFEj_fC7h5z2lq-6Bme2T3BHtXkIxoBW0_pYVnASC8P2puO5FnVxDmWuHDYQ', | ||
* p: '07rgXd_tLUhVRF_g1OaqRZh5uZ8hiLWUSU0vu9coOaQcatSqjQlIwLW8UdKv_38GrmpIfgcEVQjzq6rFBowUm9zWBO9Eq6enpasYJBOeD8EMeDK-nsST57HjPVOCvoVC5ZX-cozPXna3iRNZ1TVYBY3smn0IaxysIK-zxESf4pM', | ||
* q: '6qrE9TPhCS5iNR7QrKThunLu6t4H_8CkYRPLbvOIt2MgZyPLiZCsvdkTVSOX76QQEXt7Y0nTNua69q3K3Jhf-YOkPSJsWTxgrfOnjoDvRKzbW3OExIMm7D99fVBODuNWinjYgUwGSqGAsb_3TKhtI-Gr5ls3fn6B6oEjVL0dpmk', | ||
* dp: 'mHqjrFdgelT2OyiFRS3dAAPf3cLxJoAGC4gP0UoQyPocEP-Y17sQ7t-ygIanguubBy65iDFLeGXa_g0cmSt2iAzRAHrDzI8P1-pQl2KdWSEg9ssspjBRh_F_AiJLLSPRWn_b3-jySkhawtfxwO8Kte1QsK1My765Y0zFvJnjPws', | ||
* dq: 'KmjaV4YcsVAUp4z-IXVa5htHWmLuByaFjpXJOjABEUN0467wZdgjn9vPRp-8Ia8AyGgMkJES_uUL_PDDrMJM9gb4c6P4-NeUkVtreLGMjFjA-_IQmIMrUZ7XywHsWXx0c2oLlrJqoKo3W-hZhR0bPFTYgDUT_mRWjk7wV6wl46E', | ||
* qi: 'iYltkV_4PmQDfZfGFpzn2UtYEKyhy-9t3Vy8Mw2VHLAADKGwJvVK5ficQAr2atIF1-agXY2bd6KV-w52zR8rmZfTr0gobzYIyqHczOm13t7uXJv2WygY7QEC2OGjdxa2Fr9RnvS99ozMa5nomZBqTqT7z5QV33czjPRCjvg6FcE', | ||
* } | ||
* const privateKey = await jose.importJWK(jwk, alg) | ||
* | ||
* const jwt = await new jose.SignJWT({ 'urn:example:claim': true }) | ||
* .setProtectedHeader({ alg }) | ||
* .setIssuedAt() | ||
* .setIssuer('urn:example:issuer') | ||
* .setAudience('urn:example:audience') | ||
* .setExpirationTime('2h') | ||
* .sign(privateKey) | ||
* | ||
* console.log(jwt) | ||
* ``` | ||
*/ | ||
@@ -23,0 +101,0 @@ export declare class SignJWT extends ProduceJWT { |
@@ -19,8 +19,37 @@ import type { KeyLike, VerifyOptions, JWTClaimVerificationOptions, JWTHeaderParameters, GetKeyFunction, FlattenedJWSInput, JWTVerifyResult, ResolvedKey } from '../types'; | ||
* | ||
* @example Usage | ||
* @example Usage with a symmetric secret | ||
* | ||
* ```js | ||
* const secret = new TextEncoder().encode( | ||
* 'cc7e0d44fd473002f1c42167459001140ec6389b7353f8088f4d9a95f2f596f2', | ||
* ) | ||
* const jwt = | ||
* 'eyJhbGciOiJFUzI1NiJ9.eyJ1cm46ZXhhbXBsZTpjbGFpbSI6dHJ1ZSwiaWF0IjoxNjA0MzE1MDc0LCJpc3MiOiJ1cm46ZXhhbXBsZTppc3N1ZXIiLCJhdWQiOiJ1cm46ZXhhbXBsZTphdWRpZW5jZSJ9.hx1nOfAT5LlXuzu8O-bhjXBGpklWDt2EsHw7-MDn49NrnwvVsstNhEnkW2ddauB7eSikFtUNeumLpFI9CWDBsg' | ||
* 'eyJhbGciOiJIUzI1NiJ9.eyJ1cm46ZXhhbXBsZTpjbGFpbSI6dHJ1ZSwiaWF0IjoxNjY5MDU2MjMxLCJpc3MiOiJ1cm46ZXhhbXBsZTppc3N1ZXIiLCJhdWQiOiJ1cm46ZXhhbXBsZTphdWRpZW5jZSJ9.C4iSlLfAUMBq--wnC6VqD9gEOhwpRZpoRarE0m7KEnI' | ||
* | ||
* const { payload, protectedHeader } = await jose.jwtVerify(jwt, secret, { | ||
* issuer: 'urn:example:issuer', | ||
* audience: 'urn:example:audience', | ||
* }) | ||
* | ||
* console.log(protectedHeader) | ||
* console.log(payload) | ||
* ``` | ||
* | ||
* @example Usage with a public SPKI encoded RSA key | ||
* | ||
* ```js | ||
* const alg = 'RS256' | ||
* const spki = `-----BEGIN PUBLIC KEY----- | ||
* MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwhYOFK2Ocbbpb/zVypi9 | ||
* SeKiNUqKQH0zTKN1+6fpCTu6ZalGI82s7XK3tan4dJt90ptUPKD2zvxqTzFNfx4H | ||
* HHsrYCf2+FMLn1VTJfQazA2BvJqAwcpW1bqRUEty8tS/Yv4hRvWfQPcc2Gc3+/fQ | ||
* OOW57zVy+rNoJc744kb30NjQxdGp03J2S3GLQu7oKtSDDPooQHD38PEMNnITf0pj | ||
* +KgDPjymkMGoJlO3aKppsjfbt/AH6GGdRghYRLOUwQU+h+ofWHR3lbYiKtXPn5dN | ||
* 24kiHy61e3VAQ9/YAZlwXC/99GGtw/NpghFAuM4P1JDn0DppJldy3PGFC0GfBCZA | ||
* SwIDAQAB | ||
* -----END PUBLIC KEY-----` | ||
* const publicKey = await jose.importSPKI(spki, alg) | ||
* const jwt = | ||
* 'eyJhbGciOiJSUzI1NiJ9.eyJ1cm46ZXhhbXBsZTpjbGFpbSI6dHJ1ZSwiaWF0IjoxNjY5MDU2NDg4LCJpc3MiOiJ1cm46ZXhhbXBsZTppc3N1ZXIiLCJhdWQiOiJ1cm46ZXhhbXBsZTphdWRpZW5jZSJ9.gXrPZ3yM_60dMXGE69dusbpzYASNA-XIOwsb5D5xYnSxyj6_D6OR_uR_1vqhUm4AxZxcrH1_-XJAve9HCw8az_QzHcN-nETt-v6stCsYrn6Bv1YOc-mSJRZ8ll57KVqLbCIbjKwerNX5r2_Qg2TwmJzQdRs-AQDhy-s_DlJd8ql6wR4n-kDZpar-pwIvz4fFIN0Fj57SXpAbLrV6Eo4Byzl0xFD8qEYEpBwjrMMfxCZXTlAVhAq6KCoGlDTwWuExps342-0UErEtyIqDnDGcrfNWiUsoo8j-29IpKd-w9-C388u-ChCxoHz--H8WmMSZzx3zTXsZ5lXLZ9IKfanDKg' | ||
* | ||
* const { payload, protectedHeader } = await jose.jwtVerify(jwt, publicKey, { | ||
@@ -35,2 +64,24 @@ * issuer: 'urn:example:issuer', | ||
* | ||
* @example Usage with a public JWK encoded RSA key | ||
* | ||
* ```js | ||
* const alg = 'RS256' | ||
* const jwk = { | ||
* kty: 'RSA', | ||
* n: 'whYOFK2Ocbbpb_zVypi9SeKiNUqKQH0zTKN1-6fpCTu6ZalGI82s7XK3tan4dJt90ptUPKD2zvxqTzFNfx4HHHsrYCf2-FMLn1VTJfQazA2BvJqAwcpW1bqRUEty8tS_Yv4hRvWfQPcc2Gc3-_fQOOW57zVy-rNoJc744kb30NjQxdGp03J2S3GLQu7oKtSDDPooQHD38PEMNnITf0pj-KgDPjymkMGoJlO3aKppsjfbt_AH6GGdRghYRLOUwQU-h-ofWHR3lbYiKtXPn5dN24kiHy61e3VAQ9_YAZlwXC_99GGtw_NpghFAuM4P1JDn0DppJldy3PGFC0GfBCZASw', | ||
* e: 'AQAB', | ||
* } | ||
* const publicKey = await jose.importJWK(jwk, alg) | ||
* const jwt = | ||
* 'eyJhbGciOiJSUzI1NiJ9.eyJ1cm46ZXhhbXBsZTpjbGFpbSI6dHJ1ZSwiaWF0IjoxNjY5MDU2NDg4LCJpc3MiOiJ1cm46ZXhhbXBsZTppc3N1ZXIiLCJhdWQiOiJ1cm46ZXhhbXBsZTphdWRpZW5jZSJ9.gXrPZ3yM_60dMXGE69dusbpzYASNA-XIOwsb5D5xYnSxyj6_D6OR_uR_1vqhUm4AxZxcrH1_-XJAve9HCw8az_QzHcN-nETt-v6stCsYrn6Bv1YOc-mSJRZ8ll57KVqLbCIbjKwerNX5r2_Qg2TwmJzQdRs-AQDhy-s_DlJd8ql6wR4n-kDZpar-pwIvz4fFIN0Fj57SXpAbLrV6Eo4Byzl0xFD8qEYEpBwjrMMfxCZXTlAVhAq6KCoGlDTwWuExps342-0UErEtyIqDnDGcrfNWiUsoo8j-29IpKd-w9-C388u-ChCxoHz--H8WmMSZzx3zTXsZ5lXLZ9IKfanDKg' | ||
* | ||
* const { payload, protectedHeader } = await jose.jwtVerify(jwt, publicKey, { | ||
* issuer: 'urn:example:issuer', | ||
* audience: 'urn:example:audience', | ||
* }) | ||
* | ||
* console.log(protectedHeader) | ||
* console.log(payload) | ||
* ``` | ||
* | ||
* @param jwt JSON Web Token value (encoded as JWS). | ||
@@ -42,2 +93,15 @@ * @param key Key to verify the JWT with. | ||
/** | ||
* @example Usage with a public JSON Web Key Set hosted on a remote URL | ||
* | ||
* ```js | ||
* const JWKS = jose.createRemoteJWKSet(new URL('https://www.googleapis.com/oauth2/v3/certs')) | ||
* | ||
* const { payload, protectedHeader } = await jose.jwtVerify(jwt, JWKS, { | ||
* issuer: 'urn:example:issuer', | ||
* audience: 'urn:example:audience', | ||
* }) | ||
* console.log(protectedHeader) | ||
* console.log(payload) | ||
* ``` | ||
* | ||
* @param jwt JSON Web Token value (encoded as JWS). | ||
@@ -44,0 +108,0 @@ * @param getKey Function resolving a key to verify the JWT with. |
@@ -58,5 +58,5 @@ import type { JWK, KeyLike } from '../types'; | ||
/** | ||
* Imports a PEM-encoded PKCS8 string as a runtime-specific private key representation (KeyObject or | ||
* CryptoKey). See [Algorithm Key Requirements](https://github.com/panva/jose/issues/210) to learn | ||
* about key to algorithm requirements and mapping. Encrypted keys are not supported. | ||
* Imports a PEM-encoded PKCS#8 string as a runtime-specific private key representation (KeyObject | ||
* or CryptoKey). See [Algorithm Key Requirements](https://github.com/panva/jose/issues/210) to | ||
* learn about key to algorithm requirements and mapping. Encrypted keys are not supported. | ||
* | ||
@@ -75,3 +75,3 @@ * @example Usage | ||
* | ||
* @param pem PEM-encoded PKCS8 string | ||
* @param pem PEM-encoded PKCS#8 string | ||
* @param alg JSON Web Algorithm identifier to be used with the imported key. | ||
@@ -78,0 +78,0 @@ */ |
{ | ||
"name": "jose-node-cjs-runtime", | ||
"version": "4.11.0", | ||
"version": "4.11.1", | ||
"homepage": "https://github.com/panva/jose", | ||
@@ -5,0 +5,0 @@ "repository": "panva/jose", |
268222
6486