aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/exchange-backoffice-ui/src/account.ts34
-rw-r--r--packages/taler-util/src/taler-crypto.ts2
2 files changed, 18 insertions, 18 deletions
diff --git a/packages/exchange-backoffice-ui/src/account.ts b/packages/exchange-backoffice-ui/src/account.ts
index 019c0bb43..6c3766940 100644
--- a/packages/exchange-backoffice-ui/src/account.ts
+++ b/packages/exchange-backoffice-ui/src/account.ts
@@ -1,4 +1,12 @@
-import { decodeCrock, encodeCrock } from "@gnu-taler/taler-util";
+import {
+ bytesToString,
+ createEddsaKeyPair,
+ decodeCrock,
+ encodeCrock,
+ encryptWithDerivedKey,
+ getRandomBytesF,
+ stringToBytes,
+} from "@gnu-taler/taler-util";
/**
* Create a new session id from which it will
@@ -55,27 +63,19 @@ export async function unlockAccount(
* @returns
*/
export async function createNewAccount(password: string) {
- const { privateKey } = await createPair();
+ const { eddsaPriv } = createEddsaKeyPair();
const salt = createSalt();
- const protectedPrivKey = await protectWithPassword(
- privateKey,
+ const key = stringToBytes(password);
+
+ const protectedPrivKey = await encryptWithDerivedKey(
+ getRandomBytesF(24),
+ key,
+ eddsaPriv,
salt,
- password,
);
- // const privRaw = await crypto.subtle
- // .exportKey("pkcs8", privateKey)
- // .catch((e) => {
- // throw new Error(String(e));
- // });
-
- // const pubRaw = await crypto.subtle.exportKey("spki", publicKey).catch((e) => {
- // throw new Error(String(e));
- // });
-
- // const pub = btoa(ab2str(pubRaw));
- const protectedPriv = btoa(ab2str(protectedPrivKey));
+ const protectedPriv = bytesToString(protectedPrivKey);
return { accountId: protectedPriv, salt };
}
diff --git a/packages/taler-util/src/taler-crypto.ts b/packages/taler-util/src/taler-crypto.ts
index 3cd482bfa..6fc6d14f6 100644
--- a/packages/taler-util/src/taler-crypto.ts
+++ b/packages/taler-util/src/taler-crypto.ts
@@ -1393,7 +1393,7 @@ async function deriveKey(
});
}
-async function encryptWithDerivedKey(
+export async function encryptWithDerivedKey(
nonce: EncryptionNonce,
keySeed: OpaqueData,
plaintext: OpaqueData,