Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
17 lines
516 B
Plaintext
17 lines
516 B
Plaintext
import { KeyObject } from 'node:crypto';
|
|
export default (key, alg) => {
|
|
let modulusLength;
|
|
try {
|
|
if (key instanceof KeyObject) {
|
|
modulusLength = key.asymmetricKeyDetails?.modulusLength;
|
|
}
|
|
else {
|
|
modulusLength = Buffer.from(key.n, 'base64url').byteLength << 3;
|
|
}
|
|
}
|
|
catch { }
|
|
if (typeof modulusLength !== 'number' || modulusLength < 2048) {
|
|
throw new TypeError(`${alg} requires key modulusLength to be 2048 bits or larger`);
|
|
}
|
|
};
|