@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
42 lines (38 loc) • 1.92 kB
JavaScript
import { CredoError } from "../../../../error/CredoError.mjs";
import "../../../../error/index.mjs";
import { getJwkHumanDescription } from "../../../kms/jwk/humanDescription.mjs";
import { PublicJwk } from "../../../kms/jwk/PublicJwk.mjs";
import "../../../kms/index.mjs";
import { VerificationMethod } from "./VerificationMethod.mjs";
//#region src/modules/dids/domain/verificationMethod/Ed25519VerificationKey2020.ts
const VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020 = "Ed25519VerificationKey2020";
/**
* Get a Ed25519VerificationKey2020 verification method.
*/
function getEd25519VerificationKey2020({ publicJwk, id, controller }) {
return new VerificationMethod({
id,
type: VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020,
controller,
publicKeyMultibase: publicJwk.fingerprint
});
}
/**
* Check whether a verification method is a Ed25519VerificationKey2020 verification method.
*/
function isEd25519VerificationKey2020(verificationMethod) {
return verificationMethod.type === VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020;
}
/**
* Get a key from a Ed25519VerificationKey2020 verification method.
*/
function getPublicJwkFromEd25519VerificationKey2020(verificationMethod) {
if (!verificationMethod.publicKeyMultibase) throw new CredoError("verification method is missing publicKeyMultibase");
const publicJwk = PublicJwk.fromFingerprint(verificationMethod.publicKeyMultibase);
const publicKey = publicJwk.publicKey;
if (publicKey.kty !== "OKP" || publicKey.crv !== "Ed25519") throw new CredoError(`Verification method ${verificationMethod.type} is for unexpected ${getJwkHumanDescription(publicJwk.toJson())}.`);
return publicJwk;
}
//#endregion
export { VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020, getEd25519VerificationKey2020, getPublicJwkFromEd25519VerificationKey2020, isEd25519VerificationKey2020 };
//# sourceMappingURL=Ed25519VerificationKey2020.mjs.map