Debugging for 64 bit platforms.
authorjbj <devnull@localhost>
Mon, 2 Jun 2003 22:35:03 +0000 (22:35 +0000)
committerjbj <devnull@localhost>
Mon, 2 Jun 2003 22:35:03 +0000 (22:35 +0000)
CVS patchset: 6887
CVS date: 2003/06/02 22:35:03

beecrypt/dsa.c

index 51a1b0c..738d13d 100644 (file)
@@ -108,6 +108,8 @@ int dsasign(const mpbarrett* p, const mpbarrett* q, const mpnumber* g, randomGen
        return rc;
 }
 
+static int _debug = 1;
+
 int dsavrfy(const mpbarrett* p, const mpbarrett* q, const mpnumber* g, const mpnumber* hm, const mpnumber* y, const mpnumber* r, const mpnumber* s)
 {
        register size_t psize = p->size;
@@ -120,6 +122,7 @@ int dsavrfy(const mpbarrett* p, const mpbarrett* q, const mpnumber* g, const mpn
        register mpw* qwksp;
 
        register int rc = 0;
+int xx;
 
        if (mpz(r->size, r->data))
                return rc;
@@ -147,6 +150,16 @@ int dsavrfy(const mpbarrett* p, const mpbarrett* q, const mpnumber* g, const mpn
        pwksp = ptemp+2*psize;
        qwksp = qtemp+2*qsize;
 
+if (_debug) {
+fprintf(stderr, "\t                p: "),  mpfprintln(stderr, p->size, p->modl);
+fprintf(stderr, "\t                q: "),  mpfprintln(stderr, q->size, q->modl);
+fprintf(stderr, "\t                g: "),  mpfprintln(stderr, g->size, g->data);
+fprintf(stderr, "\t               hm: "),  mpfprintln(stderr, hm->size, hm->data);
+fprintf(stderr, "\t                y: "),  mpfprintln(stderr, y->size, y->data);
+fprintf(stderr, "\t                r: "),  mpfprintln(stderr, r->size, r->data);
+fprintf(stderr, "\t                s: "),  mpfprintln(stderr, s->size, s->data);
+}
+
        mpsetx(qsize, qtemp+qsize, s->size, s->data);
 
        /* compute w = inv(s) mod q */
@@ -154,29 +167,53 @@ int dsavrfy(const mpbarrett* p, const mpbarrett* q, const mpnumber* g, const mpn
        if (mpextgcd_w(qsize, qtemp+qsize, q->modl, qtemp, qwksp))
 /*@=compdef@*/
        {
+if (_debug)
+fprintf(stderr, "\t w = inv(s) mod q: "),  mpfprintln(stderr, qsize, qtemp);
+
                /* compute u1 = h(m)*w mod q */
                mpbmulmod_w(q, hm->size, hm->data, qsize, qtemp, qtemp+qsize, qwksp);
 
+if (_debug)
+fprintf(stderr, "\tu1 = h(m)*w mod q: "),  mpfprintln(stderr, qsize, qtemp+qsize);
+
                /* compute u2 = r*w mod q */
                mpbmulmod_w(q, r->size, r->data, qsize, qtemp, qtemp, qwksp);
 
+if (_debug)
+fprintf(stderr, "\tu2 = r*w mod q   : "),  mpfprintln(stderr, qsize, qtemp);
+
                /* compute g^u1 mod p */
                mpbpowmod_w(p, g->size, g->data, qsize, qtemp+qsize, ptemp, pwksp);
 
+if (_debug)
+fprintf(stderr, "\t       g^u1 mod p: "),  mpfprintln(stderr, psize, ptemp);
+
                /* compute y^u2 mod p */
                mpbpowmod_w(p, y->size, y->data, qsize, qtemp, ptemp+psize, pwksp);
 
+if (_debug)
+fprintf(stderr, "\t       y^u2 mod p: "),  mpfprintln(stderr, psize, ptemp+psize);
+
                /* multiply mod p */
                mpbmulmod_w(p, psize, ptemp, psize, ptemp+psize, ptemp, pwksp);
 
+if (_debug)
+fprintf(stderr, "\t   multiply mod p: "),  mpfprintln(stderr, psize, ptemp);
+
                /* modulo q */
                mpnmod(ptemp+psize, psize, ptemp, qsize, q->modl, pwksp);
 
+if (_debug)
+fprintf(stderr, "\tr                : "),  mpfprintln(stderr, r->size, r->data);
+if (_debug)
+fprintf(stderr, "\tr' mod q         : "),  mpfprintln(stderr, psize, ptemp+psize);
+
                rc = mpeqx(r->size, r->data, psize, ptemp+psize);
        }
 
        free(qtemp);
        free(ptemp);
 
+fprintf(stderr, "*** dsavrfy rc %d\n", rc);
        return rc;
 }