forked from trent_larson/crowd-funder-for-time-pwa
change the contact-sharing data into a JWT for the contact-import page
This commit is contained in:
@@ -9,7 +9,6 @@
|
||||
import { Buffer } from "buffer/";
|
||||
import * as didJwt from "did-jwt";
|
||||
import { JWTVerified } from "did-jwt";
|
||||
import { JWTDecoded } from "did-jwt/lib/JWT";
|
||||
import { Resolver } from "did-resolver";
|
||||
import { IIdentifier } from "@veramo/core";
|
||||
import * as u8a from "uint8arrays";
|
||||
@@ -41,7 +40,7 @@ export interface KeyMeta {
|
||||
passkeyCredIdHex?: string;
|
||||
}
|
||||
|
||||
const resolver = new Resolver({ ethr: didEthLocalResolver });
|
||||
const ethLocalResolver = new Resolver({ ethr: didEthLocalResolver });
|
||||
|
||||
/**
|
||||
* Tell whether a key is from a passkey
|
||||
@@ -62,6 +61,7 @@ export async function createEndorserJwtForKey(
|
||||
const privateKeyHex = identity.keys[0].privateKeyHex;
|
||||
const signer = await SimpleSigner(privateKeyHex as string);
|
||||
const options = {
|
||||
// alg: "ES256K", // "K" is the default, "K-R" is used by the server in tests
|
||||
issuer: account.did,
|
||||
signer: signer,
|
||||
expiresIn: undefined as number | undefined,
|
||||
@@ -124,7 +124,8 @@ function bytesToHex(b: Uint8Array): string {
|
||||
}
|
||||
|
||||
// We should be calling 'verify' in more places, showing warnings if it fails.
|
||||
export function decodeEndorserJwt(jwt: string): JWTDecoded {
|
||||
// @returns JWTDecoded with { header: JWTHeader, payload: string, signature: string, data: string } (but doesn't verify the signature)
|
||||
export function decodeEndorserJwt(jwt: string) {
|
||||
return didJwt.decodeJWT(jwt);
|
||||
}
|
||||
|
||||
@@ -134,10 +135,8 @@ export async function decodeAndVerifyJwt(
|
||||
jwt: string,
|
||||
): Promise<Omit<JWTVerified, "didResolutionResult" | "signer" | "jwt">> {
|
||||
const pieces = jwt.split(".");
|
||||
console.log("WTF decodeAndVerifyJwt", typeof jwt, jwt, pieces);
|
||||
const header = JSON.parse(base64urlDecodeString(pieces[0]));
|
||||
const payload = JSON.parse(base64urlDecodeString(pieces[1]));
|
||||
console.log("WTF decodeAndVerifyJwt after", header, payload);
|
||||
const issuerDid = payload.iss;
|
||||
if (!issuerDid) {
|
||||
return Promise.reject({
|
||||
@@ -149,7 +148,9 @@ export async function decodeAndVerifyJwt(
|
||||
|
||||
if (issuerDid.startsWith(ETHR_DID_PREFIX)) {
|
||||
try {
|
||||
const verified = await didJwt.verifyJWT(jwt, { resolver });
|
||||
const verified = await didJwt.verifyJWT(jwt, {
|
||||
resolver: ethLocalResolver,
|
||||
});
|
||||
return verified;
|
||||
} catch (e: unknown) {
|
||||
return Promise.reject({
|
||||
|
||||
Reference in New Issue
Block a user