oidc-client-rx
Version:
ReactiveX enhanced OIDC and OAuth2 protocol support for browser-based JavaScript applications
63 lines (62 loc) • 1.66 kB
JavaScript
function getVerifyAlg(alg) {
switch(alg.charAt(0)){
case "R":
return {
name: "RSASSA-PKCS1-v1_5",
hash: "SHA-256"
};
case "E":
if (alg.includes("256")) return {
name: "ECDSA",
hash: "SHA-256"
};
if (alg.includes("384")) return {
name: "ECDSA",
hash: "SHA-384"
};
return null;
default:
return null;
}
}
function alg2kty(alg) {
switch(alg.charAt(0)){
case "R":
return "RSA";
case "E":
return "EC";
default:
throw new Error(`Cannot infer kty from alg: ${alg}`);
}
}
function getImportAlg(alg) {
switch(alg.charAt(0)){
case "R":
if (alg.includes("256")) return {
name: "RSASSA-PKCS1-v1_5",
hash: "SHA-256"
};
if (alg.includes("384")) return {
name: "RSASSA-PKCS1-v1_5",
hash: "SHA-384"
};
if (alg.includes("512")) return {
name: "RSASSA-PKCS1-v1_5",
hash: "SHA-512"
};
return null;
case "E":
if (alg.includes("256")) return {
name: "ECDSA",
namedCurve: "P-256"
};
if (alg.includes("384")) return {
name: "ECDSA",
namedCurve: "P-384"
};
return null;
default:
return null;
}
}
export { alg2kty, getImportAlg, getVerifyAlg };