[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-wallet-core] branch master updated: add old test vector
From: |
gnunet |
Subject: |
[taler-wallet-core] branch master updated: add old test vector |
Date: |
Wed, 02 Dec 2020 22:26:55 +0100 |
This is an automated email from the git hooks/post-receive script.
dold pushed a commit to branch master
in repository wallet-core.
The following commit(s) were added to refs/heads/master by this push:
new be469c4a add old test vector
be469c4a is described below
commit be469c4a7d6d16e2916ce8b2b08defb8b444c6c0
Author: Florian Dold <florian@dold.me>
AuthorDate: Wed Dec 2 22:26:54 2020 +0100
add old test vector
---
.../src/crypto/talerCrypto-test.ts | 36 ++++++++++++++++++++++
.../src/crypto/workers/cryptoImplementation.ts | 30 +++++++++++++++++-
2 files changed, 65 insertions(+), 1 deletion(-)
diff --git a/packages/taler-wallet-core/src/crypto/talerCrypto-test.ts
b/packages/taler-wallet-core/src/crypto/talerCrypto-test.ts
index a8db6c44..a9fa6103 100644
--- a/packages/taler-wallet-core/src/crypto/talerCrypto-test.ts
+++ b/packages/taler-wallet-core/src/crypto/talerCrypto-test.ts
@@ -279,6 +279,42 @@ test("taler-exchange-tvg blind signing (post-regression)",
(t) => {
);
t.deepEqual(encodeCrock(mySig), sig);
+ const v = rsaVerify(
+ decodeCrock(messageHash),
+ decodeCrock(sig),
+ decodeCrock(rsaPublicKey),
+ );
+ t.true(v);
+});
+
+
+test("gnunet-exchange-tvg blind signing (GNUnet v0.13.0)", (t) => {
+ const messageHash =
+
"93AEW8G9BYPKCY169HWKVR618X323PPP876898FVXBX5VW0M8K6VT8ZPKATGQFD0DGJJHT920K3KGWSWC4JSR1VJZ97GBZDNGEJCKH8";
+ const rsaPublicKey =
+
"040000ZGGYF6G19PWK6GZ5P3Z8MT00V0FP5AHNVFVTX1QNFK327J0KZHMMXP68F1DKAWD1JVH2Y1ANJNNH6GA6XEFGK5NF638692ZZ0TM2Y034EX0SWNFGJXQP1EXZ36QAC90F4YP72CYXD4BEXFJVPHZN4XKQPZFNFCZ434JYFVJP2MEVX0K13K8Q4KVWCT8GZBNCESXY847YKJNCSFK7YTGW454VHPSCNJRQXTBQK4TBV8GMPH0P2NMJAC8ZQGR6436R1HG6Y73Q8MFHV1BE8YJHFWCSH3C4Y3WF9V2Y3B7V83ZGCAK95JBHAYD1ANP1NJ0CE6Z9QQNTHD3PXTCPH6SJVK8FKWGSBDVCNXJ85RRT71DFT0QVV31KBGTK14N63G6S5PKPAJWJZ3Y995Q92MJGV5XNSV04002";
+ const bks = "Z8SR97D48Y0GG4BRC9J48REEKQZAE2096CDA4CYZD0VSG17KWCE0";
+ const bm =
+
"4Y96AZY2HTDEC1JAYH1GKDXTWYZRG12VJR6TAPHANHGW68YSFS74TD2BFH7GHETFKX54NXN0VT0KVZTX7E43A65SQDH3JC9J1ZB4R93RZ9E021RXPAXCQNPNXNQ09GFCZEHGFMWKRX55K5T1G00ZJX2JVAJ7GM62A1ZV193P3PVY7BXQE8NHHVKY2F67DDD7EXZEQECRTYAES74G36JG16JHTPPKPDVGMKM188VBR4ZR4R83K851PSC8NM6Y2SKRB79HVXHJBZG5RDQGJZKVXGB4RBC6NJRM8GPTFKGAG14K8W8WCCSPF2MS68N9P2FGXN713V1NVW1EBTNENJCM948YYRGYY5WYXSPB7ENRC7JC4HP06ERESWKMECFFPZ65J64HA908YA0XWMGDG8MPDN1M0R";
+ const bs =
+
"0AFGA8NGZQY5W36RJTGRY74FAN3RTC6ZTKVMGZ3Q8PXW0V11CFFT66AR6EFBKWMV08TPSGWD81HHQQADWF1JBBPYBGSPVY8EY6YB8K05KT8N7EM50GV8WX2BS3JB0BYNH058B1HARZQ5Y6VD3RAGV86MX22MQ14EWW3ZHPTZET6T3GT9G9T00V0YWWKYM57BMDKN12TSD19V8Z2SDBP3KHP96ZR6XMYFPP57MRS7RWNNDSC3APBH8PQEX6ZFX71DKC63YR63XTYHJS3QSG1W5B71HMWTE8E46J7P9Y07T4NRCF22MNEKE6WT2Y7NFSCJNYGP10E07X4J4P3GRH0PAM5ZK621K055B1GKW50W2130KVN524NPFVEK247CHEBHHNGFZEANZ78GY7XM0CJNY5NV2M";
+ const sig =
+
"FPS5TNDAZKDTENA3RGQFEEKZZCBCBYPDA9HKPDYFDD77GVC6GDPV20KPK89MHRT81S33XWF7ZDEJV6QHJK4JCR9FR4K2TF1BHXGAKANASVAJHGEEM1G5F807F1NB09VJ2CRGG33E4FVFM1G8M1FHHFGJYGNA65N3XKAP4RCJ9M3B69H2QWSQR3NX8QPAAQN0QWNJKZRHFSH1JNNTD0M49CDBQH6Q6KE8384EY4GB57FBMTC6HX760391PZK0WV3V01B2X10HJPHTZN7BDRCA6XDTHF58Y82NTG0TBFTC597C8V31S68KP2AJPQFEAZXEDJTQ4N3WPKRG5VGPKTC0VXVXJNNYA197CX6BE300QP14AQMBBB74VY7RGV6YMPKJ1KWH3P2ESWH1T4SQDM9YJQ7KY4";
+
+ const myBm = rsaBlind(
+ decodeCrock(messageHash),
+ decodeCrock(bks),
+ decodeCrock(rsaPublicKey),
+ );
+ t.deepEqual(encodeCrock(myBm), bm);
+
+ const mySig = rsaUnblind(
+ decodeCrock(bs),
+ decodeCrock(rsaPublicKey),
+ decodeCrock(bks),
+ );
+ t.deepEqual(encodeCrock(mySig), sig);
+
const v = rsaVerify(
decodeCrock(messageHash),
decodeCrock(sig),
diff --git
a/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts
b/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts
index 41836fdf..e55fa3d7 100644
--- a/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts
+++ b/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts
@@ -72,6 +72,10 @@ import {
timestampTruncateToSecond,
} from "../../util/time";
+import { Logger } from "../../util/logging";
+
+const logger = new Logger("cryptoImplementation.ts");
+
enum SignaturePurpose {
WALLET_RESERVE_WITHDRAW = 1200,
WALLET_COIN_DEPOSIT = 1201,
@@ -402,9 +406,14 @@ export class CryptoImplementation {
const planchetsForGammas: RefreshPlanchet[][] = [];
+ logger.trace("starting RC computation");
+
for (let i = 0; i < kappa; i++) {
const transferKeyPair = createEcdheKeyPair();
sessionHc.update(transferKeyPair.ecdhePub);
+ logger.trace(
+ `HASH transfer_pub ${encodeCrock(transferKeyPair.ecdhePub)}`,
+ );
transferPrivs.push(encodeCrock(transferKeyPair.ecdhePriv));
transferPubs.push(encodeCrock(transferKeyPair.ecdhePub));
}
@@ -413,11 +422,16 @@ export class CryptoImplementation {
for (let i = 0; i < denomSel.count; i++) {
const r = decodeCrock(denomSel.denom.denomPub);
sessionHc.update(r);
+ logger.trace(`HASH new_coins ${encodeCrock(r)}`);
}
}
sessionHc.update(decodeCrock(meltCoin.coinPub));
+ logger.trace(`HASH coin_pub ${meltCoin.coinPub}`);
sessionHc.update(amountToBuffer(valueWithFee));
+ logger.trace(
+ `HASH melt_amount ${encodeCrock(amountToBuffer(valueWithFee))}`,
+ );
for (let i = 0; i < kappa; i++) {
const planchets: RefreshPlanchet[] = [];
@@ -445,7 +459,17 @@ export class CryptoImplementation {
publicKey: encodeCrock(coinPub),
};
planchets.push(planchet);
+
+ logger.trace(
+ `GENERATE i=${i} coin=${coinNumber} m=${encodeCrock(
+ pubHash,
+ )} bf=${encodeCrock(blindingFactor)} dp=${encodeCrock(
+ denomPub,
+ )} ev=${encodeCrock(ev)}`,
+ );
+
sessionHc.update(ev);
+ logger.trace(`HASH ev ${encodeCrock(ev)}`);
}
}
planchetsForGammas.push(planchets);
@@ -453,6 +477,8 @@ export class CryptoImplementation {
const sessionHash = sessionHc.finish();
+ logger.trace(`RHASH ${encodeCrock(sessionHash)}`);
+
const confirmData = buildSigPS(SignaturePurpose.WALLET_COIN_MELT)
.put(sessionHash)
.put(decodeCrock(meltCoin.denomPubHash))
@@ -600,7 +626,9 @@ export class CryptoImplementation {
} else {
hOld = new Uint8Array(64);
}
- const sigBlob = new
SignaturePurposeBuilder(SignaturePurpose.SYNC_BACKUP_UPLOAD)
+ const sigBlob = new SignaturePurposeBuilder(
+ SignaturePurpose.SYNC_BACKUP_UPLOAD,
+ )
.put(hOld)
.put(hNew)
.build();
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-wallet-core] branch master updated: add old test vector,
gnunet <=