URI:
       tegverify.c - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       tegverify.c (519B)
       ---
            1 #include "os.h"
            2 #include <mp.h>
            3 #include <libsec.h>
            4 
            5 int
            6 egverify(EGpub *pub, EGsig *sig, mpint *m)
            7 {
            8         mpint *p = pub->p, *alpha = pub->alpha;
            9         mpint *r = sig->r, *s = sig->s;
           10         mpint *v1, *v2, *rs;
           11         int rv = -1;
           12 
           13         if(mpcmp(r, mpone) < 0 || mpcmp(r, p) >= 0)
           14                 return rv;
           15         v1 = mpnew(0);
           16         rs = mpnew(0);
           17         v2 = mpnew(0);
           18         mpexp(pub->key, r, p, v1);
           19         mpexp(r, s, p, rs);
           20         mpmul(v1, rs, v1);
           21         mpmod(v1, p, v1);
           22         mpexp(alpha, m, p, v2);
           23         if(mpcmp(v1, v2) == 0)
           24                 rv = 0;
           25         mpfree(v1);
           26         mpfree(rs);
           27         mpfree(v2);
           28         return rv;
           29 }