@credo-ts/core
Version:
<p align="center"> <br /> <img alt="Credo Logo" src="https://github.com/openwallet-foundation/credo-ts/blob/c7886cb8377ceb8ee4efe8d264211e561a75072d/images/credo-logo.png" height="250px" /> </p> <h1 align="center"><b>Credo - Core</b></h1
54 lines (53 loc) • 2.17 kB
JavaScript
import { KeyManagementError } from "../error/KeyManagementError.mjs";
import { zParseWithErrorHandling } from "../../../utils/zod.mjs";
import { zKmsJwkPrivateEc, zKmsJwkPrivateToPublicEc, zKmsJwkPublicEc } from "./kty/ec/ecJwk.mjs";
import { zKmsJwkPrivateOct, zKmsJwkPrivateToPublicOct, zKmsJwkPublicOct } from "./kty/oct/octJwk.mjs";
import { zKmsJwkPrivateOkp, zKmsJwkPrivateToPublicOkp, zKmsJwkPublicOkp } from "./kty/okp/okpJwk.mjs";
import { zKmsJwkPrivateRsa, zKmsJwkPrivateToPublicRsa, zKmsJwkPublicRsa } from "./kty/rsa/rsaJwk.mjs";
import { z as z$1 } from "zod";
//#region src/modules/kms/jwk/knownJwk.ts
const zKmsJwkPublicAsymmetric = z$1.discriminatedUnion("kty", [
zKmsJwkPublicEc,
zKmsJwkPublicRsa,
zKmsJwkPublicOkp
]);
function isJwkAsymmetric(jwk) {
return jwk.kty !== "oct";
}
function assertJwkAsymmetric(jwk, keyId) {
if (!isJwkAsymmetric(jwk)) {
if (keyId) throw new KeyManagementError(`Expected jwk with keyId ${keyId} to be an asymmetric jwk, but found kty 'oct'`);
throw new KeyManagementError("Expected jwk to be an asymmetric jwk, but found kty 'oct'");
}
}
z$1.discriminatedUnion("kty", [zKmsJwkPublicEc, zKmsJwkPublicOkp]);
const zKmsJwkPublic = z$1.discriminatedUnion("kty", [
zKmsJwkPublicEc,
zKmsJwkPublicRsa,
zKmsJwkPublicOct,
zKmsJwkPublicOkp
]);
const zKmsJwkPrivateToPublic = z$1.discriminatedUnion("kty", [
zKmsJwkPrivateToPublicEc,
zKmsJwkPrivateToPublicRsa,
zKmsJwkPrivateToPublicOct,
zKmsJwkPrivateToPublicOkp
]).transform((jwk) => Object.fromEntries(Object.entries(jwk).filter(([, value]) => value !== void 0)));
z$1.discriminatedUnion("kty", [zKmsJwkPrivateEc, zKmsJwkPrivateOkp]);
const zKmsJwkPrivate = z$1.discriminatedUnion("kty", [
zKmsJwkPrivateEc,
zKmsJwkPrivateRsa,
zKmsJwkPrivateOct,
zKmsJwkPrivateOkp
]);
z$1.discriminatedUnion("kty", [
zKmsJwkPrivateEc,
zKmsJwkPrivateRsa,
zKmsJwkPrivateOkp
]);
function publicJwkFromPrivateJwk(privateJwk) {
return zParseWithErrorHandling(zKmsJwkPrivateToPublic, privateJwk);
}
//#endregion
export { assertJwkAsymmetric, isJwkAsymmetric, publicJwkFromPrivateJwk, zKmsJwkPrivate, zKmsJwkPublic, zKmsJwkPublicAsymmetric };
//# sourceMappingURL=knownJwk.mjs.map