Remove lclint warnings from dsa.[ch].
authorjbj <devnull@localhost>
Thu, 27 Sep 2001 16:54:57 +0000 (16:54 +0000)
committerjbj <devnull@localhost>
Thu, 27 Sep 2001 16:54:57 +0000 (16:54 +0000)
CVS patchset: 5085
CVS date: 2001/09/27 16:54:57

beecrypt/.cvsignore
beecrypt/dsa.c
beecrypt/dsa.h

index cc186ab..f3c81cb 100644 (file)
@@ -16,6 +16,7 @@ config.sub
 configure
 doxygen
 libtool
+listobjs
 ltconfig
 ltmain.sh
 *.o
index 0d870af..ce5d912 100644 (file)
@@ -1,11 +1,25 @@
-/*
- * dsa.c
+/** \ingroup DSA_m
+ * \file dsa.c
+ *
+ * Digital Signature Algorithm signature scheme, code.
  *
- * Digital Signature Algorithm signature scheme, code
+ * DSA Signature:
+ *  - Signing equation:
+ *   - r = (g^k mod p) mod q and
+ *   - s = (inv(k) * (h(m) + x*r)) mod q
+ *  - Verifying equation:
+ *   - check 0 < r < q and 0 < s < q
+ *   - w = inv(s) mod q
+ *   - u1 = (h(m)*w) mod q
+ *   - u2 = (r*w) mod q
+ *   - v = ((g^u1 * y^u2) mod p) mod q
+ *   - check v == r
  *
  * For more information on this algorithm, see:
  *  NIST FIPS 186-1
- *
+ */
+
+/*
  * Copyright (c) 2001 Virtual Unlimited B.V.
  *
  * Author: Bob Deblier <bob@virtualunlimited.com>
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  *
- * DSA Signature:
- *  Signing equation:
- *   r = (g^k mod p) mod q and
- *   s = (inv(k) * (h(m) + x*r)) mod q
- *  Verifying equation:
- *   check 0 < r < q and 0 < s < q
- *   w = inv(s) mod q
- *   u1 = (h(m)*w) mod q
- *   u2 = (r*w) mod q
- *   v = ((g^u1 * y^u2) mod p) mod q
- *   check v == r
- *
  */
  
 #define BEECRYPT_DLL_EXPORT
@@ -59,10 +61,19 @@ int dsasign(const mp32barrett* p, const mp32barrett* q, const mp32number* g, ran
        // k + inv(k) = 2 * qsize
        // g^k mod p = psize+4*psize+2
 
-       register uint32* ptemp = (uint32*) malloc((5*psize+2)*sizeof(uint32));
-       register uint32* qtemp = (uint32*) malloc((9*qsize+6)*sizeof(uint32));
+       register uint32* ptemp;
+       register uint32* qtemp;
+       register int rc = -1;   /* assume failure */
+
+       ptemp = (uint32*) malloc((5*psize+2)*sizeof(uint32));
+       if (ptemp == NULL)
+               return rc;
+       qtemp = (uint32*) malloc((9*qsize+6)*sizeof(uint32));
+       if (qtemp == NULL) {
+               free(ptemp);
+               return rc;
+       }
 
-       if (ptemp && qtemp)
        {
                register uint32* pwksp = ptemp+psize;
                register uint32* qwksp = qtemp+3*qsize;
@@ -103,13 +114,13 @@ int dsasign(const mp32barrett* p, const mp32barrett* q, const mp32number* g, ran
 
                // multiply inv(k) mod q
                mp32bmulmod_w(q, qsize, qtemp+qsize, qsize, qtemp+2*qsize, s->data, qwksp);
+               rc = 0;
 
-               free(qtemp);
-               free(ptemp);
-
-               return 0;
        }
-       return -1;
+       free(qtemp);
+       free(ptemp);
+
+       return rc;
 }
 
 int dsavrfy(const mp32barrett* p, const mp32barrett* q, const mp32number* g, const mp32number* hm, const mp32number* y, const mp32number* r, const mp32number* s)
@@ -118,27 +129,33 @@ int dsavrfy(const mp32barrett* p, const mp32barrett* q, const mp32number* g, con
        register uint32  qsize = q->size;
        register uint32* ptemp;
        register uint32* qtemp;
+       register int rc = 0;    /* XXX shouldn't this be -1 ?*/
 
        if (mp32z(r->size, r->data))
-               return 0;
+               return rc;
 
        if (mp32gex(r->size, r->data, qsize, q->modl))
-               return 0;
+               return rc;
 
        if (mp32z(s->size, s->data))
-               return 0;
+               return rc;
 
        if (mp32gex(s->size, s->data, qsize, q->modl))
-               return 0;
+               return rc;
 
        ptemp = (uint32*) malloc((6*psize+2)*sizeof(uint32));
+       if (ptemp == NULL)
+               return rc;
+
        qtemp = (uint32*) malloc((8*qsize+6)*sizeof(uint32));
+       if (qtemp == NULL) {
+               free(ptemp);
+               return rc;
+       }
 
-       if (ptemp && qtemp)
        {
                register uint32* pwksp = ptemp+2*psize;
                register uint32* qwksp = qtemp+2*qsize;
-               register int rc = 0;
 
                // compute w = inv(s) mod q
                if (mp32binv_w(q, s->size, s->data, qtemp, qwksp))
@@ -163,11 +180,10 @@ int dsavrfy(const mp32barrett* p, const mp32barrett* q, const mp32number* g, con
 
                        rc = mp32eqx(r->size, r->data, psize, ptemp+psize);
                }
+       }
 
-               free(qtemp);
-               free(ptemp);
+       free(qtemp);
+       free(ptemp);
 
-               return rc;
-       }
-       return 0;
+       return rc;
 }
index b1ecd7c..fbf68ff 100644 (file)
@@ -1,8 +1,10 @@
-/*
- * dsa.h
- *
- * Digital Signature Algorithm signature scheme, header
+/** \ingroup DSA_m
+ * \file dsa.h
  *
+ * Digital Signature Algorithm signature scheme, header.
+ */
+
+/*
  * Copyright (c) 2001 Virtual Unlimited B.V.
  *
  * Author: Bob Deblier <bob@virtualunlimited.com>
 extern "C" {
 #endif
 
-BEECRYPTAPI
-int dsasign(const mp32barrett* p, const mp32barrett* q, const mp32number* g, randomGeneratorContext*, const mp32number* hm, const mp32number* x, mp32number* r, mp32number* s);
+/**
+ */
+BEECRYPTAPI /*@unused@*/
+int dsasign(const mp32barrett* p, const mp32barrett* q, const mp32number* g, randomGeneratorContext* rgc, const mp32number* hm, const mp32number* x, mp32number* r, mp32number* s)
+       /*@modifies r->size, r->data, *r->data, s->size, s->data @*/;
 
-BEECRYPTAPI
-int dsavrfy(const mp32barrett* p, const mp32barrett* q, const mp32number* g, const mp32number* hm, const mp32number* y, const mp32number* r, const mp32number* s);
+/**
+ */
+BEECRYPTAPI /*@unused@*/
+int dsavrfy(const mp32barrett* p, const mp32barrett* q, const mp32number* g, const mp32number* hm, const mp32number* y, const mp32number* r, const mp32number* s)
+       /*@*/;
 
 #ifdef __cplusplus
 }