| 123456789101112131415161718192021222324 |
- import { checkEncCryptoKey } from './crypto_key.js';
- import { checkKeyLength } from './signing.js';
- import { JOSENotSupported } from '../util/errors.js';
- const subtleAlgorithm = (alg) => {
- switch (alg) {
- case 'RSA-OAEP':
- case 'RSA-OAEP-256':
- case 'RSA-OAEP-384':
- case 'RSA-OAEP-512':
- return 'RSA-OAEP';
- default:
- throw new JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);
- }
- };
- export async function encrypt(alg, key, cek) {
- checkEncCryptoKey(key, alg, 'encrypt');
- checkKeyLength(alg, key);
- return new Uint8Array(await crypto.subtle.encrypt(subtleAlgorithm(alg), key, cek));
- }
- export async function decrypt(alg, key, encryptedKey) {
- checkEncCryptoKey(key, alg, 'decrypt');
- checkKeyLength(alg, key);
- return new Uint8Array(await crypto.subtle.decrypt(subtleAlgorithm(alg), key, encryptedKey));
- }
|