From 1380adb79d4132bdd20626920263fd1b4642af0d Mon Sep 17 00:00:00 2001 From: Anton Johansson Date: Mon, 31 Jul 2023 15:27:09 +0200 Subject: [PATCH] Fix Curve capabilities --- .../dids/Embedded/MethodSettings.tsx | 3 +- src/components/dids/Embedded/Summarize.tsx | 2 +- src/components/dids/NewKeyMaterial.tsx | 43 ++++++------- src/lib/DidMaterial.ts | 3 +- src/lib/curves.ts | 63 ++++++++++++++++--- src/lib/keys.ts | 27 ++++---- src/lib/verificationMaterialBuilder.ts | 13 ++-- src/types/dids.ts | 5 +- 8 files changed, 98 insertions(+), 61 deletions(-) diff --git a/src/components/dids/Embedded/MethodSettings.tsx b/src/components/dids/Embedded/MethodSettings.tsx index 68b6cb8..2384cea 100644 --- a/src/components/dids/Embedded/MethodSettings.tsx +++ b/src/components/dids/Embedded/MethodSettings.tsx @@ -5,7 +5,6 @@ import { KeyFormat, Representation, UsageFormat, - verificationRelationships, } from "@/types/dids"; import { useState } from "react"; import DidInput from "../DidInput"; @@ -90,7 +89,7 @@ export default function EmbeddedMethodSettings({
Used for
- {verificationRelationships.map((method, indexMethod) => { + {method.material.curve.capabilities.map((method, indexMethod) => { return (
diff --git a/src/components/dids/Embedded/Summarize.tsx b/src/components/dids/Embedded/Summarize.tsx index 891e7f3..434161a 100644 --- a/src/components/dids/Embedded/Summarize.tsx +++ b/src/components/dids/Embedded/Summarize.tsx @@ -45,7 +45,7 @@ export default function SummarizeEmbeddedMethod({ {method.id}
-
Curve: {method.material.curve}
+
Curve: {method.material.curve.name.display}
Usage:{" "} {usages.length > 0 ? usages : "Unused"} diff --git a/src/components/dids/NewKeyMaterial.tsx b/src/components/dids/NewKeyMaterial.tsx index dca06db..920dd99 100644 --- a/src/components/dids/NewKeyMaterial.tsx +++ b/src/components/dids/NewKeyMaterial.tsx @@ -3,8 +3,8 @@ import { EmbeddedMaterial } from "@/lib/DidMaterial"; import { decodeJwk, generateKeyPair } from "@/lib/keys"; import { useState } from "react"; import { publicKeyJwkSchema } from "../../lib/didParser"; -import { SupportedCurves } from "@/types/dids"; import Link from "next/link"; +import { Curve, CurveEd25519, CurveP256, curveFromName, isEd25519, isP256 } from "@/lib/curves"; export default function NewKeyMaterial({ didDocument, @@ -13,7 +13,7 @@ export default function NewKeyMaterial({ didDocument: DidDocument; setMethod: (km: EmbeddedMaterial) => void; }): JSX.Element { - const [curve, setCurve] = useState("Ed25519"); + const [curve, setCurve] = useState(CurveEd25519); const [isGeneratedKey, setIsGeneratedKey] = useState(true); const [importedKeyValidationStatus, setImportedKeyValidationStatus] = useState(undefined); @@ -86,8 +86,8 @@ export default function NewKeyMaterial({ type="radio" name="radio-10" className="radio checked:bg-red-500" - onClick={() => setCurve("Ed25519")} - checked={curve === "Ed25519"} + onClick={() => setCurve(CurveEd25519)} + checked={isEd25519(curve)} />
@@ -98,8 +98,8 @@ export default function NewKeyMaterial({ type="radio" name="radio-10" className="radio checked:bg-blue-500" - onClick={() => setCurve("P-256")} - checked={curve === "P-256"} + onClick={() => setCurve(CurveP256)} + checked={isP256(curve)} />
@@ -147,29 +147,25 @@ export default function NewKeyMaterial({ P-256. {importedKeyValidationStatus}