[CVS] RPM: rpm/ devtool.conf
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Ralf S. Engelschall Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 05-Dec-2007 09:36:21 Branch: HEAD Handle: 2007120508362100 Modified files: rpm devtool.conf Log: upgrade to latest SQLite and GNU config.* scripts Summary: RevisionChanges Path 2.138 +2 -2 rpm/devtool.conf patch -p0 '@@ .' Index: rpm/devtool.conf $ cvs diff -u -r2.137 -r2.138 devtool.conf --- rpm/devtool.conf 5 Dec 2007 03:59:26 - 2.137 +++ rpm/devtool.conf 5 Dec 2007 08:36:21 - 2.138 @@ -215,11 +215,11 @@ v_neon=0.27.2 v_beecrypt=4.1.2 v_db=4.6.21 -v_sqlite=3.5.2 +v_sqlite=3.5.3 v_lua=5.1.2 v_file=4.21 v_popt=1.12 -v_config=20071106 +v_config=20071205 # third-party distribution files dist= @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/rpmio/ rpmnss.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Ralf S. Engelschall Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 05-Dec-2007 09:29:02 Branch: HEAD Handle: 2007120508290100 Modified files: rpm/rpmio rpmnss.c Log: get the necessary includes Summary: RevisionChanges Path 1.7 +1 -0 rpm/rpmio/rpmnss.c patch -p0 '@@ .' Index: rpm/rpmio/rpmnss.c $ cvs diff -u -r1.6 -r1.7 rpmnss.c --- rpm/rpmio/rpmnss.c5 Dec 2007 03:59:27 - 1.6 +++ rpm/rpmio/rpmnss.c5 Dec 2007 08:29:01 - 1.7 @@ -4,6 +4,7 @@ #include system.h #include rpmio.h +#include rpmnss.h #if defined(__LCLINT__) #define __i386__ @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ INSTALL
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Ralf S. Engelschall Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 05-Dec-2007 15:56:07 Branch: HEAD Handle: 2007120514560700 Modified files: rpm INSTALL Log: mention lzma(1) for compression and add hint that decompressor is bundled Summary: RevisionChanges Path 2.64+8 -5 rpm/INSTALL patch -p0 '@@ .' Index: rpm/INSTALL $ cvs diff -u -r2.63 -r2.64 INSTALL --- rpm/INSTALL 5 Dec 2007 08:16:51 - 2.63 +++ rpm/INSTALL 5 Dec 2007 14:56:07 - 2.64 @@ -37,12 +37,12 @@ Lua [2] optional 5.1 5.1.2 http://www.lua.org/ ZLib[3] optional 1.2 1.2.3 http://www.zlib.net/ Bzip2 optional 1.0 1.0.4 http://www.bzip.org/ -LZMA SDKinternal 4.274.32http://www.7-zip.org/sdk.html -File/magic [4] optional 4.0 4.21ftp://ftp.astron.com/pub/file/ +LZMA SDK[4] internal 4.274.32http://www.7-zip.org/sdk.html +File/magic [5] optional 4.0 4.21ftp://ftp.astron.com/pub/file/ GNU gettext optional 0.160.17 http://www.gnu.org/software/gettext/ GNU iconv optional 1.111.11 http://www.gnu.org/software/libiconv/ PCREoptional 7.0 7.4 http://www.pcre.org/ -XAR [5] optional 1.5 1.6dev http://code.google.com/p/xar/ +XAR [6] optional 1.5 1.6dev http://code.google.com/p/xar/ DMalloc optional 5 5.5.2 http://dmalloc.com/ Electric Fence optional 2.1 2.1.13 http://perens.com/FreeSoftware/ElectricFence/ Linux KeyUtils optional 1.2 1.2 http://people.redhat.com/~dhowells/keyutils/ @@ -63,11 +63,14 @@ Building RPM against stock external Zlib not recommended as it reduces its RPM-specific functionality. -[4] file: Unmodified File/magic copy bundled with RPM for convenience reasons. +[4] lzma: RPM has a copy of the LZMA SDK 4.32 decompression routines bundled, + but for compression the external command line interface lzma(1) is required. + +[5] file: Unmodified File/magic copy bundled with RPM for convenience reasons. Building RPM against this internal File/magic requires also internal Zlib. Building RPM against stock external File/magic supported, too. -[5] xar: Modified XAR copy bundled with RPM. +[6] xar: Modified XAR copy bundled with RPM. Building RPM against stock external XAR currently still not recommended. The 1.5 releases of Xar needs some patching, before they work. @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ CHANGES rpm/rpmio/ Makefile.am librpmio.vers rpmgc.c r...
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 05-Dec-2007 18:55:36 Branch: HEAD Handle: 2007120517553501 Added files: rpm/rpmio rpmgc.c rpmgc.h rpmssl.c rpmssl.h Modified files: rpm CHANGES rpm/rpmio Makefile.am librpmio.vers tkey.c Log: - stub in rpmgc/rpmssl for gcrypt openssl signature verification. Summary: RevisionChanges Path 1.1942 +1 -0 rpm/CHANGES 1.115 +3 -3 rpm/rpmio/Makefile.am 2.26+2 -0 rpm/rpmio/librpmio.vers 2.1 +212 -0 rpm/rpmio/rpmgc.c 2.1 +35 -0 rpm/rpmio/rpmgc.h 2.1 +214 -0 rpm/rpmio/rpmssl.c 2.1 +35 -0 rpm/rpmio/rpmssl.h 2.22+8 -2 rpm/rpmio/tkey.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.1941 -r1.1942 CHANGES --- rpm/CHANGES 5 Dec 2007 09:53:17 - 1.1941 +++ rpm/CHANGES 5 Dec 2007 17:55:35 - 1.1942 @@ -1,4 +1,5 @@ 5.0a4 - 5.0b1: +- jbj: stub in rpmgc/rpmssl for gcrypt openssl signature verification. - rse: add XAR support to devtool standalone - jbj: fix: s/RPM_/RPMLIB_/ in rpmversion.h.in. That should stick now. - rpm.org: credit for the original NSS hacks. @@ . patch -p0 '@@ .' Index: rpm/rpmio/Makefile.am $ cvs diff -u -r1.114 -r1.115 Makefile.am --- rpm/rpmio/Makefile.am 5 Dec 2007 03:59:27 - 1.114 +++ rpm/rpmio/Makefile.am 5 Dec 2007 17:55:36 - 1.115 @@ -127,9 +127,9 @@ tinv_SOURCES = tinv.c tinv_LDADD = $(RPM_LDADD) -tkey_SOURCES = tkey.c rpmnss.c -tkey_CFLAGS = $(CFLAGS) -I/usr/include/nss3 -I/usr/include/nspr4 -tkey_LDADD = $(RPM_LDADD) -lnss3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl +tkey_SOURCES = tkey.c rpmgc.c rpmnss.c rpmssl.c +tkey_CFLAGS = $(CFLAGS) +tkey_LDADD = $(RPM_LDADD) -lgcrypt trpmio_SOURCES = trpmio.c trpmio_LDADD = $(RPM_LDADD) @@ . patch -p0 '@@ .' Index: rpm/rpmio/librpmio.vers $ cvs diff -u -r2.25 -r2.26 librpmio.vers --- rpm/rpmio/librpmio.vers 5 Dec 2007 03:59:27 - 2.25 +++ rpm/rpmio/librpmio.vers 5 Dec 2007 17:55:36 - 2.26 @@ -218,6 +218,7 @@ rpmExpand; rpmExpandNumeric; rpmFreeMacros; +rpmgcImplVecs; rpmGenPath; rpmGetMacroEntries; rpmGetPath; @@ -297,6 +298,7 @@ rpmsqThread; rpmsqThreadEqual; rpmsqWait; +rpmsslImplVecs; rpmswAdd; rpmswDiff; rpmswEnter; @@ . patch -p0 '@@ .' Index: rpm/rpmio/rpmgc.c $ cvs diff -u -r0 -r2.1 rpmgc.c --- /dev/null 2007-12-05 18:55:00 +0100 +++ rpmgc.c 2007-12-05 18:55:36 +0100 @@ -0,0 +1,212 @@ +/** \ingroup rpmpgp + * \file rpmio/rpmgc.c + */ + +#include system.h +#include rpmio.h +#define _RPMGC_INTERNAL +#define _RPMPGP_INTERNAL +#include rpmgc.h +#include debug.h + +/[EMAIL PROTECTED] pgpDig @*/ +/[EMAIL PROTECTED] pgpDigParams @*/ + +/[EMAIL PROTECTED]@*/ +/[EMAIL PROTECTED]@*/ +extern int _pgp_debug; + +/[EMAIL PROTECTED]@*/ +extern int _pgp_print; +/[EMAIL PROTECTED]@*/ + +static +int rpmgcSetRSA(/[EMAIL PROTECTED]@*/ DIGEST_CTX ctx, pgpDig dig, pgpDigParams sigp) + /[EMAIL PROTECTED] ctx, dig @*/ +{ +rpmgc gc = dig-impl; +unsigned int nbits = 0; /* WRONG */ +unsigned int nb = (nbits + 7) 3; +const char * prefix; +const char * hexstr; +const char * s; +uint8_t signhash16[2]; +char * tt; +int xx; + +/* XXX Values from PKCS#1 v2.1 (aka RFC-3447) */ +switch (sigp-hash_algo) { +case PGPHASHALGO_MD5: + prefix = 3020300c06082a864886f70d020505000410; + break; +case PGPHASHALGO_SHA1: + prefix = 3021300906052b0e03021a05000414; + break; +case PGPHASHALGO_RIPEMD160: + prefix = 3021300906052b2403020105000414; + break; +case PGPHASHALGO_MD2: + prefix = 3020300c06082a864886f70d020205000410; + break; +case PGPHASHALGO_TIGER192: + prefix = 3029300d06092b06010401da470c0205000418; + break; +case PGPHASHALGO_HAVAL_5_160: + prefix = NULL; + break; +case PGPHASHALGO_SHA256: +
[CVS] RPM: rpm/rpmdb/ rpmtag.h
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 05-Dec-2007 12:57:18 Branch: HEAD Handle: 2007120511571800 Modified files: rpm/rpmdb rpmtag.h Log: - add placeholder for Class: and tags for %track vcheck(1) section. Summary: RevisionChanges Path 1.24+3 -0 rpm/rpmdb/rpmtag.h patch -p0 '@@ .' Index: rpm/rpmdb/rpmtag.h $ cvs diff -u -r1.23 -r1.24 rpmtag.h --- rpm/rpmdb/rpmtag.h4 Dec 2007 21:02:50 - 1.23 +++ rpm/rpmdb/rpmtag.h5 Dec 2007 11:57:18 - 1.24 @@ -404,6 +404,9 @@ RPMTAG_RPMLIBVERSION = 1199, /* i */ RPMTAG_RPMLIBTIMESTAMP = 1200, /* i */ RPMTAG_RPMLIBVENDOR = 1201, /* i */ +RPMTAG_CLASS = 1202, /* s (OpenPKG Class: placeholder) */ +RPMTAG_TRACK = 1203, /* s (OpenPKG %track) */ +RPMTAG_TRACKPROG = 1204, /* s */ /[EMAIL PROTECTED]@*/ RPMTAG_FIRSTFREE_TAG /*! internal */ @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ CHANGES devtool.conf
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Ralf S. Engelschall Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 05-Dec-2007 10:53:17 Branch: HEAD Handle: 2007120509531700 Modified files: rpm CHANGES devtool.conf Log: add XAR support to devtool standalone Summary: RevisionChanges Path 1.1941 +1 -0 rpm/CHANGES 2.139 +55 -4 rpm/devtool.conf patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.1940 -r1.1941 CHANGES --- rpm/CHANGES 5 Dec 2007 03:59:26 - 1.1940 +++ rpm/CHANGES 5 Dec 2007 09:53:17 - 1.1941 @@ -1,4 +1,5 @@ 5.0a4 - 5.0b1: +- rse: add XAR support to devtool standalone - jbj: fix: s/RPM_/RPMLIB_/ in rpmversion.h.in. That should stick now. - rpm.org: credit for the original NSS hacks. - jbj: no-brainer AutoFu for WITH_NSS enabling, add rpmnss.[ch] to rpmio. @@ . patch -p0 '@@ .' Index: rpm/devtool.conf $ cvs diff -u -r2.138 -r2.139 devtool.conf --- rpm/devtool.conf 5 Dec 2007 08:36:21 - 2.138 +++ rpm/devtool.conf 5 Dec 2007 09:53:17 - 2.139 @@ -219,6 +219,8 @@ v_lua=5.1.2 v_file=4.21 v_popt=1.12 +v_libxml2=2.6.30 +v_xar=1.5.1 v_config=20071205 # third-party distribution files @@ -239,6 +241,8 @@ dist=${dist} lua-${v_lua}.tar.gz,http://rpm5.org/files/3rd/,http://www.lua.org/ftp/; dist=${dist} file-${v_file}.tar.gz,http://rpm5.org/files/3rd/,ftp://ftp.astron.com/pub/file/; dist=${dist} popt-${v_popt}.tar.gz,http://rpm5.org/files/3rd/,http://rpm5.org/files/popt/; +dist=${dist} libxml2-${v_libxml2}.tar.gz,http://rpm5.org/files/3rd/,ftp://xmlsoft.org/libxml2/; +dist=${dist} xar-${v_xar}.tar.gz,http://rpm5.org/files/3rd/,http://xar.googlecode.com/files/; # third-party distribution patches (for portability and bugfix reasons only) dist=${dist} automake-${v_automake}.patch,http://rpm5.org/files/3rd/; @@ -250,6 +254,8 @@ dist=${dist} lua-${v_lua}.patch,http://rpm5.org/files/3rd/; dist=${dist} file-${v_file}.patch,http://rpm5.org/files/3rd/; dist=${dist} popt-${v_popt}.patch,http://rpm5.org/files/3rd/; +dist=${dist} libxml2-${v_libxml2}.patch,http://rpm5.org/files/3rd/; +dist=${dist} xar-${v_xar}.patch,http://rpm5.org/files/3rd/; dist=${dist} config.guess-${v_config},http://rpm5.org/files/3rd/; dist=${dist} config.sub-${v_config},http://rpm5.org/files/3rd/; } @@ -756,6 +762,48 @@ ) || exit $? ) || exit $? fi + +# LibXML2 (uninstalled third-party library) +if [ ! -d $base3rd/bin/$platform/libxml2-${v_libxml2} ]; then +echo ++ building third-party library libxml2-${v_libxml2} +( cd $base3rd/bin/$platform +rm -rf libxml2-${v_libxml2} +$gzip -d -c ../../src/libxml2-${v_libxml2}.tar.gz | $tar xf - +$SHTOOL subst \ +-e '/LINENO: error: C[+]* preprocessor/{N;N;N;N;s/.*/:/;}' \ +configure +( cd libxml2-${v_libxml2} +$patch -p0 ../../../src/libxml2-${v_libxml2}.patch +CC=$cc \ +./configure \ +--without-iconv \ +--disable-shared \ +--disable-corba \ +--without-threads \ +--without-python +make +) || exit $? +) || exit $? +fi + +# XAR (uninstalled third-party library) +if [ ! -d $base3rd/bin/$platform/xar-${v_xar} ]; then +echo ++ building third-party library xar-${v_xar} +( cd $base3rd/bin/$platform +rm -rf xar-${v_xar} +$gzip -d -c ../../src/xar-${v_xar}.tar.gz | $tar xf - +( cd xar-${v_xar} +$patch -p0 ../../../src/xar-${v_xar}.patch +CC=$cc \ +CPPFLAGS=-I`pwd`/../openssl-${v_openssl}/include -I`pwd`/../zlib-${v_zlib} -I`pwd`/../libxml2-${v_libxml2}/include \ +LDFLAGS=-L`pwd`/../openssl-${v_openssl}/lib -L`pwd`/../zlib-${v_zlib} -L`pwd
[CVS] RPM: rpm/ INSTALL configure.ac
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Ralf S. Engelschall Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 05-Dec-2007 09:16:52 Branch: HEAD Handle: 2007120508165101 Modified files: rpm INSTALL configure.ac Log: add hint to Mozilla NSS to INSTALL document and improve Autoconf check (accept also libnss as fallback and do not search for Fedora-specific nss3/ subdir -- the code just includes nss.h anyway) Summary: RevisionChanges Path 2.63+1 -0 rpm/INSTALL 2.260 +3 -3 rpm/configure.ac patch -p0 '@@ .' Index: rpm/INSTALL $ cvs diff -u -r2.62 -r2.63 INSTALL --- rpm/INSTALL 1 Dec 2007 11:22:50 - 2.62 +++ rpm/INSTALL 5 Dec 2007 08:16:51 - 2.63 @@ -30,6 +30,7 @@ Perlmandatory 5.8.0 5.8.8 http://www.perl.com/ POPTmandatory 1.9 1.12http://rpm5.org/files/popt/ BeeCryptmandatory 4.0 4.1.2 http://www.virtualunlimited.com/products/beecrypt/ +Mozilla NSS optional 3.113.11.7 http://www.mozilla.org/projects/security/pki/nss/ Neonoptional 0.26.0 0.27.2 http://www.webdav.org/neon/ Berkeley-DB [1] optional 4.5 4.6.21 http://www.oracle.com/database/berkeley-db.html SQLite [1] optional 3.3 3.5.2 http://www.sqlite.org/ @@ . patch -p0 '@@ .' Index: rpm/configure.ac $ cvs diff -u -r2.259 -r2.260 configure.ac --- rpm/configure.ac 5 Dec 2007 03:59:26 - 2.259 +++ rpm/configure.ac 5 Dec 2007 08:16:52 - 2.260 @@ -912,10 +912,10 @@ [yes,external], [beecrypt], [], [ AC_MSG_ERROR([mandatory BeeCrypt library not found]) ]) -dnl # NSS +dnl # Mozilla NSS RPM_CHECK_LIB( -[NSS], [nss], -[nss3], [NSS_NoDB_Init], [nss3/nss.h], +[Mozilla NSS], [nss], +[nss3 nss], [NSS_NoDB_Init], [nss.h], [no,external], [], [], []) @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/rpmio/ rpmnss.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Anders F. Björklund Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 05-Dec-2007 09:48:59 Branch: HEAD Handle: 2007120508485900 Modified files: rpm/rpmio rpmnss.c Log: don't include rpmnss.h twice Summary: RevisionChanges Path 1.8 +3 -1 rpm/rpmio/rpmnss.c patch -p0 '@@ .' Index: rpm/rpmio/rpmnss.c $ cvs diff -u -r1.7 -r1.8 rpmnss.c --- rpm/rpmio/rpmnss.c5 Dec 2007 08:29:01 - 1.7 +++ rpm/rpmio/rpmnss.c5 Dec 2007 08:48:59 - 1.8 @@ -4,7 +4,6 @@ #include system.h #include rpmio.h -#include rpmnss.h #if defined(__LCLINT__) #define __i386__ @@ -14,6 +13,9 @@ #define _RPMNSS_INTERNAL #define _RPMPGP_INTERNAL #include rpmnss.h +#else +/* need DIGEST_CTX */ +#include rpmpgp.h #endif #include debug.h @@ . __ RPM Package Managerhttp://rpm5.org CVS Sources Repositoryrpm-cvs@rpm5.org
[CVS] RPM: rpm/ CHANGES rpm/rpmio/ rpmgc.c rpmgc.h rpmssl.c tkey.c
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 06-Dec-2007 01:40:33 Branch: HEAD Handle: 2007120600403200 Modified files: rpm CHANGES rpm/rpmio rpmgc.c rpmgc.h rpmssl.c tkey.c Log: - jbj: flesh out rpmgc implementation. stil buggy ... Summary: RevisionChanges Path 1.1943 +1 -0 rpm/CHANGES 2.2 +180 -9 rpm/rpmio/rpmgc.c 2.2 +18 -1 rpm/rpmio/rpmgc.h 2.2 +3 -9 rpm/rpmio/rpmssl.c 2.23+10 -2 rpm/rpmio/tkey.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.1942 -r1.1943 CHANGES --- rpm/CHANGES 5 Dec 2007 17:55:35 - 1.1942 +++ rpm/CHANGES 6 Dec 2007 00:40:32 - 1.1943 @@ -1,4 +1,5 @@ 5.0a4 - 5.0b1: +- jbj: flesh out rpmgc implementation. stil buggy ... - jbj: stub in rpmgc/rpmssl for gcrypt openssl signature verification. - rse: add XAR support to devtool standalone - jbj: fix: s/RPM_/RPMLIB_/ in rpmversion.h.in. That should stick now. @@ . patch -p0 '@@ .' Index: rpm/rpmio/rpmgc.c $ cvs diff -u -r2.1 -r2.2 rpmgc.c --- rpm/rpmio/rpmgc.c 5 Dec 2007 17:55:36 - 2.1 +++ rpm/rpmio/rpmgc.c 6 Dec 2007 00:40:32 - 2.2 @@ -21,17 +21,49 @@ /[EMAIL PROTECTED]@*/ static +void rpmgcDump(const char * msg, gcry_sexp_t sexp) +{ +char buf[BUFSIZ]; +size_t nb; + +nb = gcry_sexp_sprint(sexp, GCRYSEXP_FMT_ADVANCED, buf, sizeof(buf)); +if (_pgp_debug) +fprintf(stderr, == %s:\n%s, msg, buf); +return; +} + +/** + * Convert hex to binary nibble. + * @param chex character + * @return binary nibble + */ +static +unsigned char nibble(char c) + /[EMAIL PROTECTED]/ +{ +if (c = '0' c = '9') + return (unsigned char) (c - '0'); +if (c = 'A' c = 'F') + return (unsigned char)((int)(c - 'A') + 10); +if (c = 'a' c = 'f') + return (unsigned char)((int)(c - 'a') + 10); +return (unsigned char) '\0'; +} + +static int rpmgcSetRSA(/[EMAIL PROTECTED]@*/ DIGEST_CTX ctx, pgpDig dig, pgpDigParams sigp) /[EMAIL PROTECTED] ctx, dig @*/ { rpmgc gc = dig-impl; -unsigned int nbits = 0; /* WRONG */ +unsigned int nbits = gcry_mpi_get_nbits(gc-c); unsigned int nb = (nbits + 7) 3; const char * prefix; const char * hexstr; const char * s; uint8_t signhash16[2]; char * tt; +gcry_mpi_t c = NULL; +gcry_error_t rc; int xx; /* XXX Values from PKCS#1 v2.1 (aka RFC-3447) */ @@ -82,6 +114,12 @@ /* Set RSA hash. */ /[EMAIL PROTECTED] -noeffectuncon @*/ +xx = gcry_mpi_scan(c, GCRYMPI_FMT_HEX, hexstr, strlen(hexstr), NULL); +rc = gcry_sexp_build(gc-hash, NULL, + (data (flags pkcs1) (hash %s %m)), + gcry_pk_algo_name(sigp-hash_algo), c); +gcry_mpi_release(c); +rpmgcDump(gc-hash, gc-hash); /[EMAIL PROTECTED] =noeffectuncon @*/ hexstr = _free(hexstr); @@ -92,7 +130,8 @@ signhash16[0] = (uint8_t) (nibble(s[0]) 4) | nibble(s[1]); signhash16[1] = (uint8_t) (nibble(s[2]) 4) | nibble(s[3]); /[EMAIL PROTECTED]@*/ -return memcmp(signhash16, sigp-signhash16, sizeof(signhash16)); + +return memcmp(signhash16, sigp-signhash16, sizeof(sigp-signhash16)); } static @@ -100,13 +139,33 @@ /[EMAIL PROTECTED]/ { rpmgc gc = dig-impl; -int rc; +gcry_error_t rc; + +/[EMAIL PROTECTED]@*/ +rc = gcry_sexp_build(gc-sig, NULL, + (sig-val (RSA (s %m))), + gc-c); +/[EMAIL PROTECTED]@*/ +if (_pgp_debug) +rpmgcDump(gc-sig, gc-sig); +/[EMAIL PROTECTED]@*/ +rc = gcry_sexp_build(gc-pkey, NULL, + (public-key (RSA (n %m) (e %m))), + gc-n, gc-e); +/[EMAIL PROTECTED]@*/ +if (_pgp_debug) +rpmgcDump(gc-pkey, gc-pkey); /* Verify RSA signature. */ /[EMAIL PROTECTED]@*/ +rc = gcry_pk_verify (gc-sig, gc-hash, gc-pkey); /[EMAIL PROTECTED]@*/ -return rc; +gcry_sexp_release(gc-pkey); gc-pkey = NULL; +gcry_sexp_release(gc-hash); gc-hash = NULL; +gcry_sexp_release(gc-sig); gc-sig = NULL; + +return (rc ? 0 : 1); } static @@ -114,17 +173,22 @@
[CVS] RPM: rpm/ CHANGES rpm/rpmio/ rpmgc.c rpmgc.h rpmssl.c rpmssl.h t...
RPM Package Manager, CVS Repository http://rpm5.org/cvs/ Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 06-Dec-2007 02:50:49 Branch: HEAD Handle: 2007120601504800 Modified files: rpm CHANGES rpm/rpmio rpmgc.c rpmgc.h rpmssl.c rpmssl.h tkey.c Log: - jbj: flesh out rpmssl implementation. DSA seems OK, no clue RSA yet. Summary: RevisionChanges Path 1.1944 +1 -0 rpm/CHANGES 2.3 +1 -1 rpm/rpmio/rpmgc.c 2.3 +0 -1 rpm/rpmio/rpmgc.h 2.3 +45 -8 rpm/rpmio/rpmssl.c 2.2 +9 -2 rpm/rpmio/rpmssl.h 2.24+1 -1 rpm/rpmio/tkey.c patch -p0 '@@ .' Index: rpm/CHANGES $ cvs diff -u -r1.1943 -r1.1944 CHANGES --- rpm/CHANGES 6 Dec 2007 00:40:32 - 1.1943 +++ rpm/CHANGES 6 Dec 2007 01:50:48 - 1.1944 @@ -1,4 +1,5 @@ 5.0a4 - 5.0b1: +- jbj: flesh out rpmssl implementation. DSA seems OK, no clue RSA yet. - jbj: flesh out rpmgc implementation. stil buggy ... - jbj: stub in rpmgc/rpmssl for gcrypt openssl signature verification. - rse: add XAR support to devtool standalone @@ . patch -p0 '@@ .' Index: rpm/rpmio/rpmgc.c $ cvs diff -u -r2.2 -r2.3 rpmgc.c --- rpm/rpmio/rpmgc.c 6 Dec 2007 00:40:32 - 2.2 +++ rpm/rpmio/rpmgc.c 6 Dec 2007 01:50:48 - 2.3 @@ -119,6 +119,7 @@ (data (flags pkcs1) (hash %s %m)), gcry_pk_algo_name(sigp-hash_algo), c); gcry_mpi_release(c); +if (_pgp_debug) rpmgcDump(gc-hash, gc-hash); /[EMAIL PROTECTED] =noeffectuncon @*/ @@ -130,7 +131,6 @@ signhash16[0] = (uint8_t) (nibble(s[0]) 4) | nibble(s[1]); signhash16[1] = (uint8_t) (nibble(s[2]) 4) | nibble(s[3]); /[EMAIL PROTECTED]@*/ - return memcmp(signhash16, sigp-signhash16, sizeof(sigp-signhash16)); } @@ . patch -p0 '@@ .' Index: rpm/rpmio/rpmgc.h $ cvs diff -u -r2.2 -r2.3 rpmgc.h --- rpm/rpmio/rpmgc.h 6 Dec 2007 00:40:32 - 2.2 +++ rpm/rpmio/rpmgc.h 6 Dec 2007 01:50:48 - 2.3 @@ -38,7 +38,6 @@ gcry_mpi_t hm; /* RSA parameters. */ -gcry_mpi_t md; gcry_mpi_t n; gcry_mpi_t e; gcry_mpi_t c; @@ . patch -p0 '@@ .' Index: rpm/rpmio/rpmssl.c $ cvs diff -u -r2.2 -r2.3 rpmssl.c --- rpm/rpmio/rpmssl.c6 Dec 2007 00:40:32 - 2.2 +++ rpm/rpmio/rpmssl.c6 Dec 2007 01:50:48 - 2.3 @@ -27,7 +27,7 @@ /[EMAIL PROTECTED] ctx, dig @*/ { rpmssl ssl = dig-impl; -unsigned int nbits = 0; /* WRONG */ +unsigned int nbits = 0; /* WRONG WRONG WRONG */ unsigned int nb = (nbits + 7) 3; const char * prefix; const char * hexstr; @@ -97,10 +97,13 @@ /[EMAIL PROTECTED]/ { rpmssl ssl = dig-impl; -int rc; +int rc = 0; /* Verify RSA signature. */ /[EMAIL PROTECTED]@*/ +#if 0 +rc = RSA_verify(type, m, m_len, sigbuf, siglen, ssl-rsa) +#endif /[EMAIL PROTECTED]@*/ return rc; @@ -110,14 +113,10 @@ int rpmsslSetDSA(/[EMAIL PROTECTED]@*/ DIGEST_CTX ctx, pgpDig dig, pgpDigParams sigp) /[EMAIL PROTECTED] ctx, dig @*/ { -rpmssl ssl = dig-impl; int xx; -xx = rpmDigestFinal(ctx, (void **)dig-sha1, dig-sha1len, 1); - - /* Set DSA hash. */ -/[EMAIL PROTECTED] -noeffectuncon @*/ -/[EMAIL PROTECTED] =noeffectuncon @*/ +/* Set DSA hash. */ +xx = rpmDigestFinal(ctx, (void **)dig-sha1, dig-sha1len, 0); /* Compare leading 16 bits of digest for quick check. */ return memcmp(dig-sha1, sigp-signhash16, sizeof(sigp-signhash16)); @@ -132,6 +131,7 @@ /* Verify DSA signature. */ /[EMAIL PROTECTED]@*/ +rc = (DSA_do_verify(dig-sha1, dig-sha1len, ssl-dsasig, ssl-dsa) == 1); /[EMAIL PROTECTED]@*/ return rc; @@ -144,31 +144,51 @@ /[EMAIL PROTECTED] dig, fileSystem @*/ { rpmssl ssl = dig-impl; +unsigned int nb = ((pgpMpiBits(p) + 7) 3); int rc = 0; +/[EMAIL PROTECTED]@*/ switch (itemno) { default: assert(0); break; case 10: /* RSA m**d */ + ssl-c = BN_bin2bn(p+2, nb, ssl-c); break;