gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]