From 9ef6086e760e37a5bb09c371b23421cbd58cfe53 Mon Sep 17 00:00:00 2001 From: zmeyer44 Date: Fri, 3 Nov 2023 14:05:59 -0400 Subject: [PATCH] login with email --- bun.lockb | Bin 402556 -> 406680 bytes components/Modals/Login.tsx | 101 +++++++++++++++++++++++++++---- lib/hooks/useKeyboardShortcut.ts | 2 +- lib/keys/index.ts | 24 ++++++++ package.json | 2 + 5 files changed, 115 insertions(+), 14 deletions(-) create mode 100644 lib/keys/index.ts diff --git a/bun.lockb b/bun.lockb index a3d38b2ca6cbe404f1965d86b2cc20dabab658ec..02c1670e6aae9189e4a62ac7ffe9c6888941096a 100755 GIT binary patch delta 83463 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 delta 78980 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 diff --git a/components/Modals/Login.tsx b/components/Modals/Login.tsx index 5dc402c..9032f40 100644 --- a/components/Modals/Login.tsx +++ b/components/Modals/Login.tsx @@ -12,6 +12,7 @@ import { Label } from "@/components/ui/label"; import AddPassphrase from "./AddPassphrase"; import { decryptMessage } from "@/lib/nostr"; import { toast } from "sonner"; +import { generateSchnorrKeyPair } from "@/lib/keys"; export default function LoginModal() { const { loginWithNip07, loginWithSecret } = useNDK(); @@ -19,8 +20,10 @@ export default function LoginModal() { const [isLoading, setIsLoading] = useState(false); const [showExtensionLogin, setShowExtensionLogin] = useState(true); const [showPassphraseLogin, setShowPassphraseLogin] = useState(false); + const [showEmailLogin, setShowEmailLogin] = useState(false); const [nsec, setNsec] = useState(""); const [passphrase, setPassphrase] = useState(""); + const [email, setEmail] = useState(""); const [encryptedNsec, setEncryptedNsec] = useState(""); const modal = useModal(); @@ -92,6 +95,25 @@ export default function LoginModal() { setIsLoading(false); modal?.hide(); } + async function handleLoginEmail() { + if (!email || !passphrase) return; + setIsLoading(true); + const seedString = email + passphrase; + const { privateKey, publicKey } = generateSchnorrKeyPair(seedString); + console.log("privateKey", privateKey, "publicKey", publicKey); + const emailNsec = nip19.nsecEncode(privateKey); + const user = await loginWithSecret(emailNsec); + console.log("User", user); + if (!user) { + throw new Error("NO auth"); + } + await loginWithPubkey(nip19.decode(user.npub).data.toString()); + if (typeof window.webln !== "undefined") { + await window.webln.enable(); + } + setIsLoading(false); + modal?.hide(); + } async function handleLoginPassphrase() { if (!encryptedNsec || !passphrase) return; setIsLoading(true); @@ -138,7 +160,51 @@ export default function LoginModal() { Connect with extension )} - {showPassphraseLogin ? ( + {showEmailLogin ? ( +

+
+ + setEmail(e.target.value)} + placeholder="email" + type="email" + className="text-[16px]" + /> +
+
+ + setPassphrase(e.target.value)} + placeholder="password..." + type="password" + className="text-[16px]" + /> +
+ +
+ +
+
+ ) : showPassphraseLogin ? (
Connect with Nsec - {!!encryptedNsec && ( -
- -
- )} + +
+ Or, use + {!!encryptedNsec && ( + <> + + or + + )} + +
)} diff --git a/lib/hooks/useKeyboardShortcut.ts b/lib/hooks/useKeyboardShortcut.ts index d8819d6..72ea108 100644 --- a/lib/hooks/useKeyboardShortcut.ts +++ b/lib/hooks/useKeyboardShortcut.ts @@ -12,7 +12,7 @@ export const useKeyboardShortcut = (keys: Key[], callback: () => void) => { (key === "ctrl" && (event.metaKey || event.ctrlKey)) || (key === "shift" && event.shiftKey) || (key === "alt" && event.altKey) || - (typeof key === "string" && event.key.toLowerCase() === key), + (typeof key === "string" && event.key?.toLowerCase() === key), ) ) { callback(); diff --git a/lib/keys/index.ts b/lib/keys/index.ts new file mode 100644 index 0000000..555192e --- /dev/null +++ b/lib/keys/index.ts @@ -0,0 +1,24 @@ +import { createHmac } from "crypto"; +import { ec as EC } from "elliptic"; + +export function generateSchnorrKeyPair(seed: string): { + privateKey: string; + publicKey: string; +} { + // Use HMAC-SHA256 with your seed as the message and a secret key (salt) + const hmac = createHmac("sha256", "secret-salt"); + hmac.update(seed); + const derivedKey = hmac.digest(); + + // Create a key pair using the derived private key + const ec = new EC("secp256k1"); + const keyPair = ec.keyFromPrivate(derivedKey); + + // Get the public key in hexadecimal format + const publicKey = keyPair.getPublic("hex"); + + return { + privateKey: derivedKey.toString("hex"), + publicKey, + }; +} diff --git a/package.json b/package.json index 3b3371e..f83c2f5 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "dayjs": "^1.11.10", "dexie": "^3.2.4", "dexie-react-hooks": "^1.1.6", + "elliptic": "^6.5.4", "focus-trap-react": "^10.2.3", "framer-motion": "^10.16.4", "jotai": "^2.4.3", @@ -75,6 +76,7 @@ "@tailwindcss/typography": "^0.5.10", "@total-typescript/ts-reset": "^0.5.1", "@types/crypto-js": "^4.1.2", + "@types/elliptic": "^6.4.16", "@types/latlon-geohash": "^2.0.2", "@types/node": "^20", "@types/ramda": "^0.29.6",