X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/ef5f48103e83977bda6ef4d7d1aacbb66a629b10..20fa0f6976d598481208c0583d72b2ccef637be9:/dsa-sign.c diff --git a/dsa-sign.c b/dsa-sign.c index 613a07e..9d30dd9 100644 --- a/dsa-sign.c +++ b/dsa-sign.c @@ -1,13 +1,13 @@ /* -*-c-*- * - * $Id: dsa-sign.c,v 1.2 1999/12/10 23:18:38 mdw Exp $ + * $Id: dsa-sign.c,v 1.3 2004/04/08 01:36:15 mdw Exp $ * * DSA signing operation * * (c) 1999 Straylight/Edgeware */ -/*----- Licensing notice --------------------------------------------------* +/*----- Licensing notice --------------------------------------------------* * * This file is part of Catacomb. * @@ -15,29 +15,18 @@ * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. - * + * * Catacomb is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. - * + * * You should have received a copy of the GNU Library General Public * License along with Catacomb; if not, write to the Free * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, * MA 02111-1307, USA. */ -/*----- Revision history --------------------------------------------------* - * - * $Log: dsa-sign.c,v $ - * Revision 1.2 1999/12/10 23:18:38 mdw - * Change interface for suggested destinations. - * - * Revision 1.1 1999/11/19 19:28:00 mdw - * Implementation of the Digital Signature Algorithm. - * - */ - /*----- Header files ------------------------------------------------------*/ #include "dsa.h" @@ -64,7 +53,7 @@ void dsa_mksig(const dsa_param *dp, mp *a, mp *m, mp *k, mp **rr, mp **ss) { mpmont pm; mpbarrett qb; - mp *k1 = MP_NEW, *r; + mp *k1, *r; mp *ar; /* --- Compute %$r = (g^k \bmod p) \bmod q$% --- */ @@ -76,7 +65,7 @@ void dsa_mksig(const dsa_param *dp, mp *a, mp *m, mp *k, mp **rr, mp **ss) /* --- Compute %$k^{-1} \bmod q$% --- */ - mp_gcd(0, 0, &k1, dp->q, k); + k1 = mp_modinv(MP_NEW, k, dp->q); /* --- Now for %$k^{-1}(m + ar)$% --- */ @@ -117,7 +106,7 @@ void dsa_sign(dsa_param *dp, mp *a, const void *m, size_t msz, const void *k, size_t ksz, void *r, size_t rsz, void *s, size_t ssz) { - mp *mm = mp_loadb(MP_NEW, m, msz); + mp *mm = dsa_h2n(MP_NEW, dp->q, m, msz); mp *km = mp_loadb(MP_NEW, k, ksz); mp *rm = MP_NEW, *sm = MP_NEW; dsa_mksig(dp, a, mm, km, &rm, &sm); @@ -179,7 +168,7 @@ static int verify(dstr *v) fputs("\ns = ", stderr); mp_writefile(m, stderr, 16); mp_drop(m); } - + fputc('\n', stderr); ok = 0; }