jose/dist/node/esm/lib/iv.js
2021-10-14 18:25:37 +02:00

22 lines
624 B
JavaScript

import { JOSENotSupported } from '../util/errors.js';
import random from '../runtime/random.js';
const bitLengths = new Map([
['A128CBC-HS256', 128],
['A128GCM', 96],
['A128GCMKW', 96],
['A192CBC-HS384', 128],
['A192GCM', 96],
['A192GCMKW', 96],
['A256CBC-HS512', 128],
['A256GCM', 96],
['A256GCMKW', 96],
]);
const generateIv = (alg) => {
const bitLength = bitLengths.get(alg);
if (!bitLength) {
throw new JOSENotSupported(`Unsupported JWE Algorithm: ${alg}`);
}
return random(new Uint8Array(bitLength >> 3));
};
export default generateIv;
export { bitLengths };