- bind beecrypt md5/sha1 underneath rpmio.
CVS patchset: 5083 CVS date: 2001/09/26 14:45:50
This commit is contained in:
parent
92556605af
commit
90fb17b356
1
CHANGES
1
CHANGES
|
@ -4,6 +4,7 @@
|
|||
- drop lib/md5*.[ch] files in favor of beecrypt.
|
||||
- legacy: drop brokenMD5 support (rrpm-2.3.3 to rpm-2.3.8 on sparc).
|
||||
- eliminate DYING code.
|
||||
- bind beecrypt md5/sha1 underneath rpmio.
|
||||
|
||||
4.0.3 -> 4.0.4:
|
||||
|
||||
|
|
|
@ -318,9 +318,11 @@ int rpmVerifyDigest(Header h)
|
|||
if (!hge(h, RPMTAG_SHA1HEADER, &hdt, (void **) &hdigest, NULL)
|
||||
&& !hge(h, RPMTAG_SHA1RHN, &hdt, (void **) &hdigest, NULL))
|
||||
{
|
||||
#ifdef DYING
|
||||
if (hge(h, RPMTAG_BADSHA1HEADER, &hdt, (void **) &hdigest, NULL))
|
||||
flags |= (RPMDIGEST_REVERSE|RPMDIGEST_BCSWAP);
|
||||
else
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
/* Regenerate original header. */
|
||||
|
|
8
po/cs.po
8
po/cs.po
|
@ -1,7 +1,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: 2001-07-24 10:02+0100\n"
|
||||
"Last-Translator: Milan Kerslager <kerslage@linux.cz>\n"
|
||||
"Language-Team: Czech <cs@li.org>\n"
|
||||
|
@ -3495,17 +3495,17 @@ msgid "package lacks both group name and id lists (this should never happen)\n"
|
|||
msgstr ""
|
||||
"balíèek neobsahuje ani jména skupin ani seznam id (nemìlo by se nikdy stát)\n"
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr "chybí %s"
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr "Nevyøe¹ené závislosti pro %s-%s-%s: "
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr "%s-%s-%s: kontrola digestu v hlavièce selhala\n"
|
||||
|
|
8
po/da.po
8
po/da.po
|
@ -1,7 +1,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: 2001-04-05 23:03GMT\n"
|
||||
"Last-Translator: Claus Hindsgaul <claus_h@image.dk>\n"
|
||||
"Language-Team: Danish <dansk@klid.dk>\n"
|
||||
|
@ -3523,17 +3523,17 @@ msgstr ""
|
|||
"pakken har hverken en liste over gruppenavne eller id (det burde ikke kunne "
|
||||
"ske)\n"
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr "manglende %s"
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr "Ikke-tilfredsstillede afhængighedskrav for %s-%s-%s: "
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/de.po
8
po/de.po
|
@ -37,7 +37,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: 1998-08-03 18:02+02:00\n"
|
||||
"Last-Translator: Karl Eichwalder <ke@SuSE.DE>\n"
|
||||
"Language-Team: German <de@li.org>\n"
|
||||
|
@ -3773,17 +3773,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, fuzzy, c-format
|
||||
msgid "missing %s"
|
||||
msgstr "fehlende { nach %{"
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr "Nicht erfüllte Abhängigkeiten von %s-%s-%s: "
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -3431,17 +3431,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/es.po
8
po/es.po
|
@ -6,7 +6,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -3431,17 +3431,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -3431,17 +3431,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/fi.po
8
po/fi.po
|
@ -1,7 +1,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"Last-Translator: Raimo Koski <rkoski@pp.weppi.fi>\n"
|
||||
"Language-Team: Finnish <linux@sot.com>\n"
|
||||
"Content-Type: text/plain; charset=\n"
|
||||
|
@ -3608,17 +3608,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, fuzzy, c-format
|
||||
msgid "missing %s"
|
||||
msgstr "puuttuva '{' '%':n jälkeen"
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr "%s-%s-%s:n tyydyttämättömät riippuvuudet:"
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/fr.po
8
po/fr.po
|
@ -6,7 +6,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -3671,17 +3671,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/gl.po
8
po/gl.po
|
@ -1,7 +1,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.1\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: 2001-01-13 22:31+0100\n"
|
||||
"Last-Translator: Jesús Bravo Álvarez <jba@pobox.com>\n"
|
||||
"Language-Team: Galician <trasno@ceu.fi.udc.es>\n"
|
||||
|
@ -3426,17 +3426,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/hu.po
8
po/hu.po
|
@ -6,7 +6,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -3431,17 +3431,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/id.po
8
po/id.po
|
@ -6,7 +6,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -3431,17 +3431,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/is.po
8
po/is.po
|
@ -1,7 +1,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: 2001-07-12 13:25+0000\n"
|
||||
"Last-Translator: Richard Allen <ra@hp.is>\n"
|
||||
"Language-Team: is <kde-isl@mmedia.is>\n"
|
||||
|
@ -3451,17 +3451,17 @@ msgstr "
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr "í pakkanum eru engir hópalistar (þetta ætti aldrei að koma fyrir)\n"
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr "vantar %s"
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr "Óuppfyllt pakkaskilyrði fyrir %s-%s-%s: "
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/it.po
8
po/it.po
|
@ -6,7 +6,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -3431,17 +3431,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
10
po/ja.po
10
po/ja.po
|
@ -6,7 +6,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: 1999-12-01 22:49 +JST\n"
|
||||
"Last-Translator: Kanda Mitsuru <kanda@nn.iij4u.or.jp>\n"
|
||||
"Language-Team: JRPM <jrpm@linux.or.jp>\n"
|
||||
|
@ -88,7 +88,7 @@ msgstr "
|
|||
# build root [BuildRoot]
|
||||
# net share [ネット共有]
|
||||
# reloate [再配置/移動する]
|
||||
# $Id: ja.po,v 1.170 2001/09/25 20:51:39 jbj Exp $
|
||||
# $Id: ja.po,v 1.171 2001/09/26 14:45:52 jbj Exp $
|
||||
#: rpm.c:227
|
||||
#, c-format
|
||||
msgid "rpm: %s\n"
|
||||
|
@ -3666,17 +3666,17 @@ msgstr ""
|
|||
"パッケージはグループ名と id リストの両方が欠けています(これは決して起きてはな"
|
||||
"らない)"
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, fuzzy, c-format
|
||||
msgid "missing %s"
|
||||
msgstr "%s が見つかりません\n"
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr "%s-%s-%s のための依存性を満たしていません:"
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/ko.po
8
po/ko.po
|
@ -1,7 +1,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: 2001-09-07 22:03+0900\n"
|
||||
"Last-Translator: Jong-Hoon Ryu <redhat4u@netian.com>\n"
|
||||
"Language-Team: GNU Translation project <ko@li.org>\n"
|
||||
|
@ -3506,17 +3506,17 @@ msgid "package lacks both group name and id lists (this should never happen)\n"
|
|||
msgstr ""
|
||||
"패키지에 그룹 이름과 id 목록이 없습니다 (절대 이렇게 되어서는 안됩니다)\n"
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr "다음을 찾을 수 없습니다 %s"
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr "%s-%s-%s 에 의존성 문제 발생: "
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/no.po
8
po/no.po
|
@ -1,7 +1,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: 2001-06-27 12:24+0200\n"
|
||||
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
|
||||
"Language-Team: Norwegian <no@li.org>\n"
|
||||
|
@ -3481,17 +3481,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr "mangler %s"
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/pl.po
8
po/pl.po
|
@ -8,7 +8,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: 1999-05-25 17:00+0100\n"
|
||||
"Last-Translator: Pawe³ Dziekoñski <pdziekonski@mml.ch.pwr.wroc.pl>\n"
|
||||
"Language-Team: Polish <pl@li.org>\n"
|
||||
|
@ -3613,17 +3613,17 @@ msgstr ""
|
|||
"pakiet nie specyfikuje ani nazwy grupy ani list id (to nie powinno siê "
|
||||
"zdarzyæ)"
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, fuzzy, c-format
|
||||
msgid "missing %s"
|
||||
msgstr "brak %s\n"
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr "Niespe³nione zale¿no¶ci dla %s-%s-%s: "
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/pt.po
8
po/pt.po
|
@ -1,7 +1,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: 2000-06-22 01:13+01:00\n"
|
||||
"Last-Translator: José Nuno Coelho Sanarra Pires\n"
|
||||
"Language-Team: pt <kde@poli.org>\n"
|
||||
|
@ -3486,17 +3486,17 @@ msgstr "o pacote n
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr "o pacote não tem o nome do grupo nem as listas de IDs (nunca deve ocorrer)\n"
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr "falta %s"
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr "Dependências não satisfeitas para o %s-%s-%s: "
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
|
||||
# , c-format
|
||||
#: build.c:36
|
||||
|
@ -3838,17 +3838,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/ro.po
8
po/ro.po
|
@ -1,7 +1,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: 1999-04-10 12:00+EST\n"
|
||||
"Last-Translator: Cristian Gafton <gafton@redhat.com>\n"
|
||||
"Language-Team: Romanian <ro@li.org>\n"
|
||||
|
@ -3426,17 +3426,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -3431,17 +3431,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/ru.po
8
po/ru.po
|
@ -1,7 +1,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: 2001-08-29 13:55-0400\n"
|
||||
"Last-Translator: Eugene Kanter <eugene@blackcatlinux.com>\n"
|
||||
"Language-Team: Black Cat Linux Team <blackcat-support@blackcatlinux.com>\n"
|
||||
|
@ -3520,17 +3520,17 @@ msgstr ""
|
|||
"× ÐÁËÅÔÅ ÎÅÔ ÎÉ ÉÍÅÎ ÇÒÕÐÐ, ÎÉ ÓÐÉÓËÁ ÉÈ ÉÄÅÎÔÉÆÉËÁÔÏÒÏ× (ÔÁËÏÇÏ ÎÅ ÄÏÌÖÎÏ "
|
||||
"ÂÙÔØ)\n"
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr "ÏÔÓÕÔÓÔ×ÕÅÔ %s"
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr "îÅÕÄÏ×ÌÅÔ×ÏÒÅÎÎÙÅ ÚÁ×ÉÓÉÍÏÓÔÉ ÄÌÑ %s-%s-%s: "
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr "%s-%s-%s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÐÏÄÐÉÓØ ÏÂÌÁÓÔÉ ÚÁÇÏÌÏ×ËÁ ÐÁËÅÔÁ\n"
|
||||
|
|
8
po/sk.po
8
po/sk.po
|
@ -1,7 +1,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: 1999-04-08 21:37+02:00\n"
|
||||
"Last-Translator: Stanislav Meduna <stano@eunet.sk>\n"
|
||||
"Language-Team: Slovak <sk-i18n@rak.isternet.sk>\n"
|
||||
|
@ -3619,17 +3619,17 @@ msgstr ""
|
|||
"v balíku chýba tak meno skupiny, ako aj zoznamy identifikácií (nemalo by sa "
|
||||
"nikdy sta»)"
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, fuzzy, c-format
|
||||
msgid "missing %s"
|
||||
msgstr "chýbajúce %s\n"
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr "Nevyrie¹ené závislosti pre %s-%s-%s: "
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
10
po/sl.po
10
po/sl.po
|
@ -1,12 +1,12 @@
|
|||
# -*- mode:po; coding:iso-latin-2; -*- Slovenian messages for Redhat pkg. mngr.
|
||||
# Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
# Primo¾ Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si>, 2000.
|
||||
# $Id: sl.po,v 1.155 2001/09/25 20:51:53 jbj Exp $
|
||||
# $Id: sl.po,v 1.156 2001/09/26 14:45:59 jbj Exp $
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: 2000-10-08 19:05+0200\n"
|
||||
"Last-Translator: Grega Fajdiga <gregor.fajdiga@telemach.net>\n"
|
||||
"Language-Team: Slovenian <sl@li.org>\n"
|
||||
|
@ -3603,17 +3603,17 @@ msgid "package lacks both group name and id lists (this should never happen)\n"
|
|||
msgstr ""
|
||||
"v paketu manjka tako seznam skupin kot identitet (to se ne sme zgoditi)"
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, fuzzy, c-format
|
||||
msgid "missing %s"
|
||||
msgstr "manjka %s\n"
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr "Nezadovoljene soodvisnosti za %s-%s-%s: "
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/sr.po
8
po/sr.po
|
@ -1,7 +1,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"Content-Type: text/plain; charset=\n"
|
||||
"Date: 1998-05-02 21:41:47-0400\n"
|
||||
|
||||
|
@ -3593,17 +3593,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, fuzzy, c-format
|
||||
msgid "missing %s"
|
||||
msgstr "nedostaje { posle %"
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr "Nezadovoljene meðuzavisnosti za %s-%s-%s: "
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/sv.po
8
po/sv.po
|
@ -1,7 +1,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: 2001-09-12 14:18+0200\n"
|
||||
"Last-Translator: Göran Uddeborg <goeran@uddeborg.pp.se>\n"
|
||||
"Language-Team: Swedish <sv@li.org>\n"
|
||||
|
@ -3487,17 +3487,17 @@ msgid "package lacks both group name and id lists (this should never happen)\n"
|
|||
msgstr ""
|
||||
"paketet saknar både gruppnamn och id-listor (detta borde aldrig inträffa)\n"
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr "saknas %s"
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr "Ouppfyllda beroenden för %s-%s-%s: "
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr "%s-%s-%s: kontrollsumma för oföränderlig huvudregion misslyckades\n"
|
||||
|
|
8
po/tr.po
8
po/tr.po
|
@ -1,7 +1,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: 2001-07-05 08:02+300\n"
|
||||
"Last-Translator: Nilgun Belma Buguner <nilgun@technologist.com>\n"
|
||||
"Language-Team: Turkish <tr@li.org>\n"
|
||||
|
@ -3523,17 +3523,17 @@ msgid "package lacks both group name and id lists (this should never happen)\n"
|
|||
msgstr ""
|
||||
"paket hem grup ismi hem de kimlik listelerinden yoksun (bu hiç iyi deðil)\n"
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr "eksik %s"
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr "%s-%s-%s için tatmin edici olmayan baðýmlýlýklar: "
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr "%s-%s-%s: deðiþmez baþlýk alaný özet denetimi baþarýsýz\n"
|
||||
|
|
8
po/uk.po
8
po/uk.po
|
@ -6,7 +6,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -3431,17 +3431,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/wa.po
8
po/wa.po
|
@ -6,7 +6,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -3431,17 +3431,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
8
po/zh.po
8
po/zh.po
|
@ -6,7 +6,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -3431,17 +3431,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rpm 4.0.3\n"
|
||||
"POT-Creation-Date: 2001-09-25 16:48-0400\n"
|
||||
"POT-Creation-Date: 2001-09-26 10:44-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -3431,17 +3431,17 @@ msgstr ""
|
|||
msgid "package lacks both group name and id lists (this should never happen)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:397
|
||||
#: lib/verify.c:399
|
||||
#, c-format
|
||||
msgid "missing %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:490
|
||||
#: lib/verify.c:492
|
||||
#, c-format
|
||||
msgid "Unsatisfied dependencies for %s-%s-%s: "
|
||||
msgstr ""
|
||||
|
||||
#: lib/verify.c:529
|
||||
#: lib/verify.c:531
|
||||
#, c-format
|
||||
msgid "%s-%s-%s: immutable header region digest check failed\n"
|
||||
msgstr ""
|
||||
|
|
2
rpm.spec
2
rpm.spec
|
@ -516,4 +516,4 @@ fi
|
|||
- drop lib/md5*.[ch] files in favor of beecrypt.
|
||||
- legacy: drop brokenMD5 support (rrpm-2.3.3 to rpm-2.3.8 on sparc).
|
||||
- eliminate DYING code.
|
||||
|
||||
- bind beecrypt md5/sha1 underneath rpmio.
|
||||
|
|
|
@ -516,4 +516,4 @@ fi
|
|||
- drop lib/md5*.[ch] files in favor of beecrypt.
|
||||
- legacy: drop brokenMD5 support (rrpm-2.3.3 to rpm-2.3.8 on sparc).
|
||||
- eliminate DYING code.
|
||||
|
||||
- bind beecrypt md5/sha1 underneath rpmio.
|
||||
|
|
642
rpmio/digest.c
642
rpmio/digest.c
|
@ -4,12 +4,17 @@
|
|||
|
||||
#include "system.h"
|
||||
#include "rpmio_internal.h"
|
||||
#include "beecrypt/beecrypt.h"
|
||||
#include "beecrypt/md5.h"
|
||||
#include "beecrypt/fips180.h"
|
||||
#include "beecrypt/sha256.h"
|
||||
#include "debug.h"
|
||||
|
||||
/*@-redef@*/
|
||||
typedef unsigned int uint32;
|
||||
typedef unsigned char byte;
|
||||
/*@=redef@*/
|
||||
#ifdef SHA_DEBUG
|
||||
#define DPRINTF(_a) fprintf _a
|
||||
#else
|
||||
#define DPRINTF(_a)
|
||||
#endif
|
||||
|
||||
/*@access DIGEST_CTX@*/
|
||||
|
||||
|
@ -20,636 +25,92 @@ struct DIGEST_CTX_s {
|
|||
rpmDigestFlags flags; /*!< Bit(s) to control digest operation. */
|
||||
uint32 digestlen; /*!< No. bytes of digest. */
|
||||
uint32 datalen; /*!< No. bytes in block of plaintext data. */
|
||||
void (*transform) (DIGEST_CTX); /*!< Digest transform. */
|
||||
int doByteReverse; /*!< Swap bytes in uint32? */
|
||||
uint32 bits[2]; /*!< No. bits of plain text. */
|
||||
uint32 digest[8]; /*!< Message digest. */
|
||||
byte in[64]; /*!< Next block of plain text. */
|
||||
void * param; /*!< Digest parameters. */
|
||||
int (*Reset) (void * param)
|
||||
/*@modifies param @*/; /*!< Digest initialize. */
|
||||
int (*Update) (void * param, const byte * data, int len)
|
||||
/*@modifies param @*/; /*!< Digest transform. */
|
||||
int (*Digest) (void * param, uint32 * data)
|
||||
/*@modifies param, digest @*/; /*!< Digest finish. */
|
||||
};
|
||||
|
||||
/*
|
||||
* This code implements SHA-1 as defined in FIPS publication 180-1.
|
||||
* Based on SHA code originally posted to sci.crypt by Peter Gutmann
|
||||
* in message <30ajo5$oe8@ccu2.auckland.ac.nz>.
|
||||
* Modified to test for endianness on creation of SHA objects by AMK.
|
||||
* Also, the original specification of SHA was found to have a weakness
|
||||
* by NSA/NIST. This code implements the fixed version of SHA.
|
||||
*
|
||||
* Here's the first paragraph of Peter Gutmann's original posting:
|
||||
* - The following is my SHA (FIPS 180) code updated to allow use of the "fixed"
|
||||
* SHA, thanks to Jim Gillogly and an anonymous contributor for the information
|
||||
* on what's changed in the new version. The fix is a simple change which
|
||||
* involves adding a single rotate in the initial expansion function. It is
|
||||
* unknown whether this is an optimal solution to the problem which was
|
||||
* discovered in the SHA or whether it's simply a bandaid which fixes the
|
||||
* problem with a minimum of effort (for example the reengineering of a great
|
||||
* many Capstone chips).
|
||||
*
|
||||
* Copyright (C) 1995, A.M. Kuchling
|
||||
*
|
||||
* Distribute and use freely; there are no restrictions on further
|
||||
* dissemination and usage except those imposed by the laws of your
|
||||
* country of residence.
|
||||
*
|
||||
* Adapted to pike and some cleanup by Niels Möller.
|
||||
* Adapted for rpm use from mhash-0.8.3.
|
||||
*/
|
||||
|
||||
/**
|
||||
* The SHA f()-functions. The f1 and f3 functions can be optimized to
|
||||
* save one boolean operation each - thanks to Rich Schroeppel,
|
||||
* rcs@cs.arizona.edu for discovering this.
|
||||
*/
|
||||
/*#define f1(x,y,z) ( ( x & y ) | ( ~x & z ) ) // Rounds 0-19 */
|
||||
#define f1(x,y,z) ( z ^ ( x & ( y ^ z ) ) ) /* Rounds 0-19 */
|
||||
#define f2(x,y,z) ( x ^ y ^ z ) /* Rounds 20-39 */
|
||||
/*#define f3(x,y,z) ( ( x & y ) | ( x & z ) | ( y & z ) ) // Rounds 40-59 */
|
||||
#define f3(x,y,z) ( ( x & y ) | ( z & ( x | y ) ) ) /* Rounds 40-59 */
|
||||
#define f4(x,y,z) ( x ^ y ^ z ) /* Rounds 60-79 */
|
||||
|
||||
/**
|
||||
* The SHA Mysterious Constants.
|
||||
*/
|
||||
#define K1 0x5A827999L /* Rounds 0-19 */
|
||||
#define K2 0x6ED9EBA1L /* Rounds 20-39 */
|
||||
#define K3 0x8F1BBCDCL /* Rounds 40-59 */
|
||||
#define K4 0xCA62C1D6L /* Rounds 60-79 */
|
||||
|
||||
/**
|
||||
* 32-bit rotate left - kludged with shifts.
|
||||
*/
|
||||
#define ROTL(n,X) ( ( (X) << (n) ) | ( (X) >> ( 32 - (n) ) ) )
|
||||
|
||||
/**
|
||||
* The initial expanding function. The hash function is defined over an
|
||||
* 80-word expanded input array W, where the first 16 are copies of the input
|
||||
* data, and the remaining 64 are defined by
|
||||
*
|
||||
* \verbatim
|
||||
* W[ i ] = W[ i - 16 ] ^ W[ i - 14 ] ^ W[ i - 8 ] ^ W[ i - 3 ]
|
||||
* \endverbatim
|
||||
*
|
||||
* This implementation generates these values on the fly in a circular
|
||||
* buffer - thanks to Colin Plumb, colin@nyx10.cs.du.edu for this
|
||||
* optimization.
|
||||
*
|
||||
* The updated SHA changes the expanding function by adding a rotate of 1
|
||||
* bit. Thanks to Jim Gillogly, jim@rand.org, and an anonymous contributor
|
||||
* for this information
|
||||
*/
|
||||
#define expand(W,i) ( W[ i & 15 ] = \
|
||||
ROTL( 1, ( W[ i & 15 ] ^ W[ (i - 14) & 15 ] ^ \
|
||||
W[ (i - 8) & 15 ] ^ W[ (i - 3) & 15 ] ) ) )
|
||||
|
||||
/**
|
||||
* The prototype SHA sub-round.
|
||||
* The fundamental sub-round is:
|
||||
*
|
||||
* \verbatim
|
||||
* a' = e + ROTL( 5, a ) + f( b, c, d ) + k + data;
|
||||
* b' = a;
|
||||
* c' = ROTL( 30, b );
|
||||
* d' = c;
|
||||
* e' = d;
|
||||
* \endverbatim
|
||||
*
|
||||
* but this is implemented by unrolling the loop 5 times and renaming the
|
||||
* variables ( e, a, b, c, d ) = ( a', b', c', d', e' ) each iteration.
|
||||
* This code is then replicated 20 times for each of the 4 functions, using
|
||||
* the next 20 values from the W[] array each time.
|
||||
*/
|
||||
|
||||
#define subRound(a, b, c, d, e, f, k, data) \
|
||||
( e += ROTL( 5, a ) + f( b, c, d ) + k + data, b = ROTL( 30, b ) )
|
||||
|
||||
/**
|
||||
* Perform the SHA transformation. Note that this code, like MD5, seems to
|
||||
* break some optimizing compilers due to the complexity of the expressions
|
||||
* and the size of the basic block. It may be necessary to split it into
|
||||
* sections, e.g. based on the four subrounds
|
||||
*
|
||||
* Note that this function destroys the data area.
|
||||
*/
|
||||
|
||||
/**
|
||||
* The core of the SHA algorithm.
|
||||
* This alters an existing SHA hash to reflect the addition of 16 longwords
|
||||
* of new data.
|
||||
* @param private SHA private data
|
||||
*/
|
||||
static void
|
||||
SHA1Transform(DIGEST_CTX ctx)
|
||||
{
|
||||
uint32 * in = (uint32 *) ctx->in;
|
||||
uint32 A, B, C, D, E; /* Local vars */
|
||||
#ifdef SHA_DEBUG
|
||||
int i;
|
||||
#define DPRINTF(_a) fprintf _a
|
||||
#else
|
||||
#define DPRINTF(_a)
|
||||
#endif
|
||||
|
||||
/* Set up first buffer and local data buffer */
|
||||
A = ctx->digest[0];
|
||||
B = ctx->digest[1];
|
||||
C = ctx->digest[2];
|
||||
D = ctx->digest[3];
|
||||
E = ctx->digest[4];
|
||||
|
||||
#ifdef SHA_DEBUG
|
||||
for (i = 0; i < 16; i++)
|
||||
DPRINTF((stderr, "W[%2d]: %08X\n", i, in[i]));
|
||||
#endif
|
||||
/* Heavy mangling, in 4 sub-rounds of 20 interations each. */
|
||||
#ifdef SHA_DEBUG
|
||||
i = 0;
|
||||
#endif
|
||||
subRound( A, B, C, D, E, f1, K1, in[ 0] );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, E,A,B,C,D ));
|
||||
subRound( E, A, B, C, D, f1, K1, in[ 1] );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, D,E,A,B,C ));
|
||||
subRound( D, E, A, B, C, f1, K1, in[ 2] );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, C,D,E,A,B ));
|
||||
subRound( C, D, E, A, B, f1, K1, in[ 3] );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, B,C,D,E,A ));
|
||||
subRound( B, C, D, E, A, f1, K1, in[ 4] );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, A,B,C,D,E ));
|
||||
subRound( A, B, C, D, E, f1, K1, in[ 5] );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, E,A,B,C,D ));
|
||||
subRound( E, A, B, C, D, f1, K1, in[ 6] );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, D,E,A,B,C ));
|
||||
subRound( D, E, A, B, C, f1, K1, in[ 7] );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, C,D,E,A,B ));
|
||||
subRound( C, D, E, A, B, f1, K1, in[ 8] );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, B,C,D,E,A ));
|
||||
subRound( B, C, D, E, A, f1, K1, in[ 9] );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, A,B,C,D,E ));
|
||||
subRound( A, B, C, D, E, f1, K1, in[10] );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, E,A,B,C,D ));
|
||||
subRound( E, A, B, C, D, f1, K1, in[11] );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, D,E,A,B,C ));
|
||||
subRound( D, E, A, B, C, f1, K1, in[12] );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, C,D,E,A,B ));
|
||||
subRound( C, D, E, A, B, f1, K1, in[13] );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, B,C,D,E,A ));
|
||||
subRound( B, C, D, E, A, f1, K1, in[14] );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, A,B,C,D,E ));
|
||||
subRound( A, B, C, D, E, f1, K1, in[15] );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, E,A,B,C,D ));
|
||||
subRound( E, A, B, C, D, f1, K1, expand( in, 16 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, D,E,A,B,C ));
|
||||
subRound( D, E, A, B, C, f1, K1, expand( in, 17 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, C,D,E,A,B ));
|
||||
subRound( C, D, E, A, B, f1, K1, expand( in, 18 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, B,C,D,E,A ));
|
||||
subRound( B, C, D, E, A, f1, K1, expand( in, 19 ) );
|
||||
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, A,B,C,D,E ));
|
||||
subRound( A, B, C, D, E, f2, K2, expand( in, 20 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, E,A,B,C,D ));
|
||||
subRound( E, A, B, C, D, f2, K2, expand( in, 21 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, D,E,A,B,C ));
|
||||
subRound( D, E, A, B, C, f2, K2, expand( in, 22 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, C,D,E,A,B ));
|
||||
subRound( C, D, E, A, B, f2, K2, expand( in, 23 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, B,C,D,E,A ));
|
||||
subRound( B, C, D, E, A, f2, K2, expand( in, 24 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, A,B,C,D,E ));
|
||||
subRound( A, B, C, D, E, f2, K2, expand( in, 25 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, E,A,B,C,D ));
|
||||
subRound( E, A, B, C, D, f2, K2, expand( in, 26 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, D,E,A,B,C ));
|
||||
subRound( D, E, A, B, C, f2, K2, expand( in, 27 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, C,D,E,A,B ));
|
||||
subRound( C, D, E, A, B, f2, K2, expand( in, 28 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, B,C,D,E,A ));
|
||||
subRound( B, C, D, E, A, f2, K2, expand( in, 29 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, A,B,C,D,E ));
|
||||
subRound( A, B, C, D, E, f2, K2, expand( in, 30 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, E,A,B,C,D ));
|
||||
subRound( E, A, B, C, D, f2, K2, expand( in, 31 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, D,E,A,B,C ));
|
||||
subRound( D, E, A, B, C, f2, K2, expand( in, 32 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, C,D,E,A,B ));
|
||||
subRound( C, D, E, A, B, f2, K2, expand( in, 33 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, B,C,D,E,A ));
|
||||
subRound( B, C, D, E, A, f2, K2, expand( in, 34 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, A,B,C,D,E ));
|
||||
subRound( A, B, C, D, E, f2, K2, expand( in, 35 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, E,A,B,C,D ));
|
||||
subRound( E, A, B, C, D, f2, K2, expand( in, 36 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, D,E,A,B,C ));
|
||||
subRound( D, E, A, B, C, f2, K2, expand( in, 37 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, C,D,E,A,B ));
|
||||
subRound( C, D, E, A, B, f2, K2, expand( in, 38 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, B,C,D,E,A ));
|
||||
subRound( B, C, D, E, A, f2, K2, expand( in, 39 ) );
|
||||
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, A,B,C,D,E ));
|
||||
subRound( A, B, C, D, E, f3, K3, expand( in, 40 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, E,A,B,C,D ));
|
||||
subRound( E, A, B, C, D, f3, K3, expand( in, 41 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, D,E,A,B,C ));
|
||||
subRound( D, E, A, B, C, f3, K3, expand( in, 42 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, C,D,E,A,B ));
|
||||
subRound( C, D, E, A, B, f3, K3, expand( in, 43 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, B,C,D,E,A ));
|
||||
subRound( B, C, D, E, A, f3, K3, expand( in, 44 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, A,B,C,D,E ));
|
||||
subRound( A, B, C, D, E, f3, K3, expand( in, 45 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, E,A,B,C,D ));
|
||||
subRound( E, A, B, C, D, f3, K3, expand( in, 46 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, D,E,A,B,C ));
|
||||
subRound( D, E, A, B, C, f3, K3, expand( in, 47 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, C,D,E,A,B ));
|
||||
subRound( C, D, E, A, B, f3, K3, expand( in, 48 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, B,C,D,E,A ));
|
||||
subRound( B, C, D, E, A, f3, K3, expand( in, 49 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, A,B,C,D,E ));
|
||||
subRound( A, B, C, D, E, f3, K3, expand( in, 50 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, E,A,B,C,D ));
|
||||
subRound( E, A, B, C, D, f3, K3, expand( in, 51 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, D,E,A,B,C ));
|
||||
subRound( D, E, A, B, C, f3, K3, expand( in, 52 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, C,D,E,A,B ));
|
||||
subRound( C, D, E, A, B, f3, K3, expand( in, 53 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, B,C,D,E,A ));
|
||||
subRound( B, C, D, E, A, f3, K3, expand( in, 54 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, A,B,C,D,E ));
|
||||
subRound( A, B, C, D, E, f3, K3, expand( in, 55 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, E,A,B,C,D ));
|
||||
subRound( E, A, B, C, D, f3, K3, expand( in, 56 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, D,E,A,B,C ));
|
||||
subRound( D, E, A, B, C, f3, K3, expand( in, 57 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, C,D,E,A,B ));
|
||||
subRound( C, D, E, A, B, f3, K3, expand( in, 58 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, B,C,D,E,A ));
|
||||
subRound( B, C, D, E, A, f3, K3, expand( in, 59 ) );
|
||||
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, A,B,C,D,E ));
|
||||
subRound( A, B, C, D, E, f4, K4, expand( in, 60 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, E,A,B,C,D ));
|
||||
subRound( E, A, B, C, D, f4, K4, expand( in, 61 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, D,E,A,B,C ));
|
||||
subRound( D, E, A, B, C, f4, K4, expand( in, 62 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, C,D,E,A,B ));
|
||||
subRound( C, D, E, A, B, f4, K4, expand( in, 63 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, B,C,D,E,A ));
|
||||
subRound( B, C, D, E, A, f4, K4, expand( in, 64 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, A,B,C,D,E ));
|
||||
subRound( A, B, C, D, E, f4, K4, expand( in, 65 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, E,A,B,C,D ));
|
||||
subRound( E, A, B, C, D, f4, K4, expand( in, 66 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, D,E,A,B,C ));
|
||||
subRound( D, E, A, B, C, f4, K4, expand( in, 67 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, C,D,E,A,B ));
|
||||
subRound( C, D, E, A, B, f4, K4, expand( in, 68 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, B,C,D,E,A ));
|
||||
subRound( B, C, D, E, A, f4, K4, expand( in, 69 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, A,B,C,D,E ));
|
||||
subRound( A, B, C, D, E, f4, K4, expand( in, 70 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, E,A,B,C,D ));
|
||||
subRound( E, A, B, C, D, f4, K4, expand( in, 71 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, D,E,A,B,C ));
|
||||
subRound( D, E, A, B, C, f4, K4, expand( in, 72 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, C,D,E,A,B ));
|
||||
subRound( C, D, E, A, B, f4, K4, expand( in, 73 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, B,C,D,E,A ));
|
||||
subRound( B, C, D, E, A, f4, K4, expand( in, 74 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, A,B,C,D,E ));
|
||||
subRound( A, B, C, D, E, f4, K4, expand( in, 75 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, E,A,B,C,D ));
|
||||
subRound( E, A, B, C, D, f4, K4, expand( in, 76 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, D,E,A,B,C ));
|
||||
subRound( D, E, A, B, C, f4, K4, expand( in, 77 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, C,D,E,A,B ));
|
||||
subRound( C, D, E, A, B, f4, K4, expand( in, 78 ) );
|
||||
DPRINTF((stderr, "%5d: %08X %08X %08X %08X %08X\n", i++, B,C,D,E,A ));
|
||||
subRound( B, C, D, E, A, f4, K4, expand( in, 79 ) );
|
||||
|
||||
/* Build message digest */
|
||||
ctx->digest[0] += A;
|
||||
ctx->digest[1] += B;
|
||||
ctx->digest[2] += C;
|
||||
ctx->digest[3] += D;
|
||||
ctx->digest[4] += E;
|
||||
}
|
||||
|
||||
/*
|
||||
* This code implements the MD5 message-digest algorithm.
|
||||
* The algorithm is due to Ron Rivest. This code was
|
||||
* written by Colin Plumb in 1993, no copyright is claimed.
|
||||
* This code is in the public domain; do with it what you wish.
|
||||
*
|
||||
* Equivalent code is available from RSA Data Security, Inc.
|
||||
* This code has been tested against that, and is equivalent,
|
||||
* except that you don't need to include two pages of legalese
|
||||
* with every copy.
|
||||
*
|
||||
* To compute the message digest of a chunk of bytes, declare an
|
||||
* MD5Context structure, pass it to MD5Init, call MD5Update as
|
||||
* needed on buffers full of bytes, and then call MD5Final, which
|
||||
* will fill a supplied 16-byte array with the digest.
|
||||
*/
|
||||
|
||||
/** The four core functions used in MD5 - F1 is optimized somewhat. */
|
||||
/* #define F1(x, y, z) (x & y | ~x & z) */
|
||||
#define F1(x, y, z) (z ^ (x & (y ^ z)))
|
||||
#define F2(x, y, z) F1(z, x, y)
|
||||
#define F3(x, y, z) (x ^ y ^ z)
|
||||
#define F4(x, y, z) (y ^ (x | ~z))
|
||||
|
||||
/** The central step in the MD5 algorithm. */
|
||||
#define MD5STEP(f, w, x, y, z, data, s) \
|
||||
( w += f(x, y, z) + data, w = w<<s | w>>(32-s), w += x )
|
||||
|
||||
/**
|
||||
* The core of the MD5 algorithm.
|
||||
* Update MD5 context with next 64 bytes of plain text.
|
||||
* @param private MD5 private data
|
||||
*/
|
||||
static void
|
||||
MD5Transform(DIGEST_CTX ctx)
|
||||
{
|
||||
register uint32 * in = (uint32 *)ctx->in;
|
||||
register uint32 a = ctx->digest[0];
|
||||
register uint32 b = ctx->digest[1];
|
||||
register uint32 c = ctx->digest[2];
|
||||
register uint32 d = ctx->digest[3];
|
||||
|
||||
MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7);
|
||||
MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12);
|
||||
MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17);
|
||||
MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22);
|
||||
MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7);
|
||||
MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12);
|
||||
MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17);
|
||||
MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22);
|
||||
MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7);
|
||||
MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12);
|
||||
MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17);
|
||||
MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22);
|
||||
MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7);
|
||||
MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12);
|
||||
MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17);
|
||||
MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22);
|
||||
|
||||
MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5);
|
||||
MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9);
|
||||
MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14);
|
||||
MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20);
|
||||
MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5);
|
||||
MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9);
|
||||
MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14);
|
||||
MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20);
|
||||
MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5);
|
||||
MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9);
|
||||
MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14);
|
||||
MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20);
|
||||
MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5);
|
||||
MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9);
|
||||
MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14);
|
||||
MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20);
|
||||
|
||||
MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4);
|
||||
MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11);
|
||||
MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16);
|
||||
MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23);
|
||||
MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4);
|
||||
MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11);
|
||||
MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16);
|
||||
MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23);
|
||||
MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4);
|
||||
MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11);
|
||||
MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16);
|
||||
MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23);
|
||||
MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4);
|
||||
MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11);
|
||||
MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16);
|
||||
MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23);
|
||||
|
||||
MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6);
|
||||
MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10);
|
||||
MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15);
|
||||
MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21);
|
||||
MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6);
|
||||
MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10);
|
||||
MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15);
|
||||
MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21);
|
||||
MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6);
|
||||
MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10);
|
||||
MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15);
|
||||
MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21);
|
||||
MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6);
|
||||
MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10);
|
||||
MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15);
|
||||
MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21);
|
||||
|
||||
ctx->digest[0] += a;
|
||||
ctx->digest[1] += b;
|
||||
ctx->digest[2] += c;
|
||||
ctx->digest[3] += d;
|
||||
}
|
||||
|
||||
static int _ie = 0x44332211;
|
||||
/*@-redef@*/
|
||||
static union _mendian {
|
||||
/*@unused@*/ int i;
|
||||
char b[4];
|
||||
} *_endian = (union _mendian *)&_ie;
|
||||
/*@=redef@*/
|
||||
#define IS_BIG_ENDIAN() (_endian->b[0] == '\x44')
|
||||
#define IS_LITTLE_ENDIAN() (_endian->b[0] == '\x11')
|
||||
|
||||
/*
|
||||
* Reverse bytes for each integer in buffer.
|
||||
* @param buf data buffer (uint32 aligned address)
|
||||
* @param nbytes no. bytes of data (multiple of sizeof(uint32))
|
||||
*/
|
||||
/*@-shadow@*/
|
||||
static void
|
||||
byteReverse(byte *buf, unsigned nbytes)
|
||||
/*@modifies *buf @*/
|
||||
{
|
||||
unsigned nlongs = nbytes / sizeof(uint32);
|
||||
uint32 t;
|
||||
if (IS_BIG_ENDIAN()) {
|
||||
do {
|
||||
t = (uint32) ((unsigned) buf[3] << 8 | buf[2]) << 16 |
|
||||
((unsigned) buf[1] << 8 | buf[0]);
|
||||
*(uint32 *) buf = t;
|
||||
buf += 4;
|
||||
} while (--nlongs);
|
||||
} else {
|
||||
do {
|
||||
t = (uint32) ((unsigned) buf[0] << 8 | buf[1]) << 16 |
|
||||
((unsigned) buf[2] << 8 | buf[3]);
|
||||
*(uint32 *) buf = t;
|
||||
buf += 4;
|
||||
} while (--nlongs);
|
||||
}
|
||||
}
|
||||
/*@=shadow@*/
|
||||
|
||||
DIGEST_CTX
|
||||
rpmDigestInit(rpmDigestFlags flags)
|
||||
{
|
||||
DIGEST_CTX ctx = xcalloc(1, sizeof(*ctx));
|
||||
|
||||
#ifdef SHA_DEBUG
|
||||
int i;
|
||||
DPRINTF((stderr, "*** Init(%x)\n", flags));
|
||||
#endif
|
||||
ctx->flags = flags;
|
||||
|
||||
if (flags & RPMDIGEST_MD5) {
|
||||
ctx->digestlen = 16;
|
||||
ctx->datalen = 64;
|
||||
ctx->transform = MD5Transform;
|
||||
ctx->digest[0] = 0x67452301;
|
||||
ctx->digest[1] = 0xefcdab89;
|
||||
ctx->digest[2] = 0x98badcfe;
|
||||
ctx->digest[3] = 0x10325476;
|
||||
/* md5 sums are little endian (no swap) so big endian needs the swap. */
|
||||
ctx->doByteReverse = (IS_BIG_ENDIAN()) ? 1 : 0;
|
||||
ctx->param = xcalloc(1, sizeof(md5Param));
|
||||
ctx->Reset = (void *) md5Reset;
|
||||
ctx->Update = (void *) md5Update;
|
||||
ctx->Digest = (void *) md5Digest;
|
||||
}
|
||||
|
||||
if (flags & RPMDIGEST_SHA1) {
|
||||
ctx->digestlen = 20;
|
||||
ctx->datalen = 64;
|
||||
ctx->transform = SHA1Transform;
|
||||
ctx->digest[ 0 ] = 0x67452301;
|
||||
ctx->digest[ 1 ] = 0xefcdab89;
|
||||
ctx->digest[ 2 ] = 0x98badcfe;
|
||||
ctx->digest[ 3 ] = 0x10325476;
|
||||
ctx->digest[ 4 ] = 0xc3d2e1f0;
|
||||
/* md5 sums are little endian (no swap) so big endian needs the swap. */
|
||||
ctx->doByteReverse = (IS_BIG_ENDIAN()) ? 0 : 1;
|
||||
#ifdef SHA_DEBUG
|
||||
for (i =0; i < 5; i++)
|
||||
DPRINTF((stderr, "H[%2d]: %X\n", i, ctx->digest[i]));
|
||||
#endif
|
||||
ctx->param = xcalloc(1, sizeof(sha1Param));
|
||||
ctx->Reset = (void *) sha1Reset;
|
||||
ctx->Update = (void *) sha1Update;
|
||||
ctx->Digest = (void *) sha1Digest;
|
||||
}
|
||||
|
||||
if (flags & RPMDIGEST_REVERSE)
|
||||
ctx->doByteReverse ^= 1;
|
||||
|
||||
ctx->bits[0] = 0;
|
||||
ctx->bits[1] = 0;
|
||||
(void) (*ctx->Reset) (ctx->param);
|
||||
|
||||
DPRINTF((stderr, "*** Init(%x) ctx %p param %p\n", flags, ctx, ctx->param));
|
||||
return ctx;
|
||||
}
|
||||
|
||||
void
|
||||
rpmDigestUpdate(DIGEST_CTX ctx, const void * data, size_t len)
|
||||
{
|
||||
const byte * buf = data;
|
||||
uint32 t;
|
||||
|
||||
/* Update bitcount */
|
||||
|
||||
t = ctx->bits[0];
|
||||
if ((ctx->bits[0] = t + ((uint32) len << 3)) < t)
|
||||
ctx->bits[1]++; /* Carry from low to high */
|
||||
ctx->bits[1] += len >> 29;
|
||||
|
||||
t = (t >> 3) % ctx->datalen; /* Bytes already in ctx->in */
|
||||
|
||||
/* Handle any leading odd-sized chunks */
|
||||
if (t) {
|
||||
byte *p = (byte *) ctx->in + t;
|
||||
|
||||
t = ctx->datalen - t; /* Bytes left in ctx->in */
|
||||
if (len < t) {
|
||||
memcpy(p, buf, len);
|
||||
return;
|
||||
}
|
||||
memcpy(p, buf, t);
|
||||
if (ctx->doByteReverse)
|
||||
byteReverse(ctx->in, ctx->datalen);
|
||||
/*@-moduncon@*/
|
||||
ctx->transform(ctx);
|
||||
/*@=moduncon@*/
|
||||
buf += t;
|
||||
len -= t;
|
||||
}
|
||||
|
||||
/* Process data in ctx->datalen chunks */
|
||||
for (; len >= ctx->datalen; buf += ctx->datalen, len -= ctx->datalen) {
|
||||
memmove(ctx->in, buf, ctx->datalen);
|
||||
if (ctx->doByteReverse)
|
||||
byteReverse(ctx->in, ctx->datalen);
|
||||
/*@-moduncon@*/
|
||||
ctx->transform(ctx);
|
||||
/*@=moduncon@*/
|
||||
}
|
||||
|
||||
/* Handle any remaining bytes of data. */
|
||||
memmove(ctx->in, buf, len);
|
||||
DPRINTF((stderr, "*** Update(%p,%p,%d) param %p \"%s\"\n", ctx, data, len, ctx->param, ((char *)data)));
|
||||
(void) (*ctx->Update) (ctx->param, data, len);
|
||||
}
|
||||
|
||||
static int _ie = 0x44332211;
|
||||
/*@-redef@*/
|
||||
static union _dendian {
|
||||
/*@unused@*/ int i;
|
||||
char b[4];
|
||||
} *_endian = (union _dendian *)&_ie;
|
||||
/*@=redef@*/
|
||||
#define IS_BIG_ENDIAN() (_endian->b[0] == '\x44')
|
||||
#define IS_LITTLE_ENDIAN() (_endian->b[0] == '\x11')
|
||||
|
||||
void
|
||||
rpmDigestFinal(/*@only@*/ DIGEST_CTX ctx, /*@out@*/ void ** datap,
|
||||
/*@out@*/ size_t *lenp, int asAscii)
|
||||
{
|
||||
unsigned count = (ctx->bits[0] >> 3) % ctx->datalen;
|
||||
byte * p = ctx->in + count;
|
||||
uint32 * digest = xmalloc(ctx->digestlen);
|
||||
char * t;
|
||||
int i;
|
||||
|
||||
/* Set the first char of padding to 0x80. This is safe since there is
|
||||
always at least one byte free */
|
||||
*p++ = 0x80;
|
||||
DPRINTF((stderr, "*** Final(%p,%p,%p,%d) param %p digest %p\n", ctx, datap, lenp, asAscii, ctx->param, digest));
|
||||
(void) (*ctx->Digest) (ctx->param, digest);
|
||||
|
||||
/* No. bytes of padding needed to fill buffer. */
|
||||
count = ctx->datalen - 1 - count;
|
||||
|
||||
/* Insure that next block has room for no. of plaintext bits. */
|
||||
if (count < sizeof(ctx->bits)) {
|
||||
memset(p, 0, count);
|
||||
if (ctx->doByteReverse)
|
||||
byteReverse(ctx->in, ctx->datalen);
|
||||
/*@-moduncon@*/
|
||||
ctx->transform(ctx);
|
||||
/*@=moduncon@*/
|
||||
p = ctx->in;
|
||||
count = ctx->datalen;
|
||||
}
|
||||
|
||||
/* Pad next block with zeroes, add no. of plaintext bits. */
|
||||
memset(p, 0, count - sizeof(ctx->bits));
|
||||
if (ctx->doByteReverse)
|
||||
byteReverse(ctx->in, ctx->datalen - sizeof(ctx->bits));
|
||||
|
||||
if (ctx->flags & (RPMDIGEST_MD5|RPMDIGEST_BCSWAP)) {
|
||||
((uint32 *) ctx->in)[14] = ctx->bits[0];
|
||||
((uint32 *) ctx->in)[15] = ctx->bits[1];
|
||||
} else {
|
||||
((uint32 *) ctx->in)[14] = ctx->bits[1];
|
||||
((uint32 *) ctx->in)[15] = ctx->bits[0];
|
||||
}
|
||||
/*@-moduncon@*/
|
||||
ctx->transform(ctx);
|
||||
/*@=moduncon@*/
|
||||
|
||||
if (ctx->doByteReverse)
|
||||
byteReverse((byte *) ctx->digest, ctx->digestlen);
|
||||
if (IS_LITTLE_ENDIAN())
|
||||
for (i = 0; i < (ctx->digestlen/sizeof(uint32)); i++)
|
||||
digest[i] = swapu32(digest[i]);
|
||||
|
||||
/* Return final digest. */
|
||||
if (!asAscii) {
|
||||
if (lenp) *lenp = ctx->digestlen;
|
||||
if (datap) {
|
||||
*datap = xmalloc(ctx->digestlen);
|
||||
memcpy(*datap, ctx->digest, ctx->digestlen);
|
||||
*datap = digest;
|
||||
digest = NULL;
|
||||
}
|
||||
} else {
|
||||
if (lenp) *lenp = (2*ctx->digestlen) + 1;
|
||||
if (datap) {
|
||||
const byte * s = (const byte *) ctx->digest;
|
||||
const byte * s = (const byte *) digest;
|
||||
static const char hex[] = "0123456789abcdef";
|
||||
char * t;
|
||||
int i;
|
||||
|
||||
*datap = t = xmalloc((2*ctx->digestlen) + 1);
|
||||
|
||||
for (i = 0 ; i < ctx->digestlen; i++) {
|
||||
*t++ = hex[ (unsigned)((*s >> 4) & 0x0f) ];
|
||||
*t++ = hex[ (unsigned)((*s++ ) & 0x0f) ];
|
||||
|
@ -657,6 +118,11 @@ rpmDigestFinal(/*@only@*/ DIGEST_CTX ctx, /*@out@*/ void ** datap,
|
|||
*t = '\0';
|
||||
}
|
||||
}
|
||||
if (digest) {
|
||||
memset(digest, 0, ctx->digestlen); /* In case it's sensitive */
|
||||
free(digest);
|
||||
}
|
||||
free(ctx->param);
|
||||
memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */
|
||||
free(ctx);
|
||||
}
|
||||
|
|
|
@ -50,10 +50,13 @@ typedef /*@abstract@*/ struct {
|
|||
*/
|
||||
typedef enum rpmDigestFlags_e {
|
||||
RPMDIGEST_MD5 = (1 << 0), /*!< MD5 digest. */
|
||||
RPMDIGEST_SHA1 = (1 << 1), /*!< SHA1 digest. */
|
||||
RPMDIGEST_SHA1 = (1 << 1) /*!< SHA1 digest. */
|
||||
#ifdef DYING
|
||||
RPMDIGEST_REVERSE = (1 << 16), /*!< Should bytes be reversed? */
|
||||
RPMDIGEST_BCSWAP = (1 << 17), /*!< Should bit count be reversed? */
|
||||
#endif
|
||||
} rpmDigestFlags;
|
||||
#define RPMDIGEST_MASK 0xffff
|
||||
|
||||
typedef /*@abstract@*/ struct DIGEST_CTX_s * DIGEST_CTX;
|
||||
|
||||
|
@ -429,7 +432,9 @@ FD_t c2f(/*@null@*/ void * cookie)
|
|||
void fdInitMD5(FD_t fd, int flags)
|
||||
/*@modifies fd @*/
|
||||
{
|
||||
#ifdef DYING
|
||||
if (flags) flags = RPMDIGEST_REVERSE;
|
||||
#endif
|
||||
flags |= RPMDIGEST_MD5;
|
||||
fd->digest = rpmDigestInit(flags);
|
||||
}
|
||||
|
@ -440,7 +445,9 @@ void fdInitMD5(FD_t fd, int flags)
|
|||
void fdInitSHA1(FD_t fd, int flags)
|
||||
/*@modifies fd @*/
|
||||
{
|
||||
#ifdef DYING
|
||||
if (flags) flags = RPMDIGEST_REVERSE;
|
||||
#endif
|
||||
flags |= RPMDIGEST_SHA1;
|
||||
fd->digest = rpmDigestInit(flags);
|
||||
}
|
||||
|
|
|
@ -1,15 +1,6 @@
|
|||
#define ENABLE_BEECRYPT 1
|
||||
|
||||
#include "system.h"
|
||||
#include "rpmio_internal.h"
|
||||
#include "popt.h"
|
||||
#ifdef ENABLE_BEECRYPT
|
||||
#define BEEDLLAPI
|
||||
#include "beecrypt.h"
|
||||
#include "md5.h"
|
||||
#include "fips180.h"
|
||||
#include "sha256.h"
|
||||
#endif
|
||||
#include "debug.h"
|
||||
|
||||
|
||||
|
@ -25,7 +16,9 @@ const char * FIPSCdigest = "34aa973cd4c4daa4f61eeb2bdbad27316534016f";
|
|||
static struct poptOption optionsTable[] = {
|
||||
{ "md5", '\0', POPT_BIT_SET, &flags, RPMDIGEST_MD5, NULL, NULL },
|
||||
{ "sha1",'\0', POPT_BIT_SET, &flags, RPMDIGEST_SHA1, NULL, NULL },
|
||||
#ifdef DYING
|
||||
{ "reverse",'\0', POPT_BIT_SET, &flags, RPMDIGEST_REVERSE, NULL, NULL },
|
||||
#endif
|
||||
{ "fipsa",'\0', POPT_BIT_SET, &fips, 1, NULL, NULL },
|
||||
{ "fipsb",'\0', POPT_BIT_SET, &fips, 2, NULL, NULL },
|
||||
{ "fipsc",'\0', POPT_BIT_SET, &fips, 3, NULL, NULL },
|
||||
|
@ -51,31 +44,22 @@ main(int argc, const char *argv[])
|
|||
const char * digest;
|
||||
size_t digestlen;
|
||||
int asAscii = 1;
|
||||
int reverse;
|
||||
int reverse = 0;
|
||||
int rc;
|
||||
char appendix;
|
||||
int i;
|
||||
#ifdef ENABLE_BEECRYPT
|
||||
sha1Param sparam;
|
||||
md5Param mparam;
|
||||
uint32 bdigest[5];
|
||||
|
||||
memset(&sparam, 0, sizeof(sparam));
|
||||
memset(&mparam, 0, sizeof(mparam));
|
||||
#endif
|
||||
|
||||
optCon = poptGetContext(argv[0], argc, argv, optionsTable, 0);
|
||||
while ((rc = poptGetNextOpt(optCon)) > 0)
|
||||
;
|
||||
|
||||
if (flags & RPMDIGEST_SHA1) flags &= ~RPMDIGEST_MD5;
|
||||
#ifdef DYING
|
||||
reverse = (flags & RPMDIGEST_REVERSE);
|
||||
#endif
|
||||
if (fips) {
|
||||
flags &= ~RPMDIGEST_MD5;
|
||||
flags |= RPMDIGEST_SHA1;
|
||||
#ifdef ENABLE_BEECRYPT
|
||||
(void) sha1Reset(&sparam);
|
||||
#endif
|
||||
ctx = rpmDigestInit(flags);
|
||||
ifn = NULL;
|
||||
appendix = ' ';
|
||||
|
@ -83,39 +67,26 @@ main(int argc, const char *argv[])
|
|||
switch (fips) {
|
||||
case 1:
|
||||
ifn = "abc";
|
||||
#ifdef ENABLE_BEECRYPT
|
||||
(void) sha1Update(&sparam, (const unsigned char*) ifn, strlen(ifn));
|
||||
#endif
|
||||
rpmDigestUpdate(ctx, ifn, strlen(ifn));
|
||||
sdigest = FIPSAdigest;
|
||||
appendix = 'A';
|
||||
break;
|
||||
case 2:
|
||||
ifn = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
|
||||
#ifdef ENABLE_BEECRYPT
|
||||
(void) sha1Update(&sparam, (const unsigned char*) ifn, strlen(ifn));
|
||||
#endif
|
||||
rpmDigestUpdate(ctx, ifn, strlen(ifn));
|
||||
sdigest = FIPSBdigest;
|
||||
appendix = 'B';
|
||||
break;
|
||||
case 3:
|
||||
ifn = "aaaaaaaaaaa ...";
|
||||
for (i = 0; i < 1000000; i++) {
|
||||
#ifdef ENABLE_BEECRYPT
|
||||
(void) sha1Update(&sparam, (const unsigned char*) ifn, 1);
|
||||
#endif
|
||||
for (i = 0; i < 1000000; i++)
|
||||
rpmDigestUpdate(ctx, ifn, 1);
|
||||
}
|
||||
sdigest = FIPSCdigest;
|
||||
appendix = 'C';
|
||||
break;
|
||||
}
|
||||
if (ifn == NULL)
|
||||
return 1;
|
||||
#ifdef ENABLE_BEECRYPT
|
||||
(void) sha1Digest(&sparam, bdigest);
|
||||
#endif
|
||||
rpmDigestFinal(ctx, (void **)&digest, &digestlen, asAscii);
|
||||
|
||||
if (digest) {
|
||||
|
@ -123,11 +94,6 @@ main(int argc, const char *argv[])
|
|||
fflush(stdout);
|
||||
free((void *)digest);
|
||||
}
|
||||
#ifdef ENABLE_BEECRYPT
|
||||
for (i = 0; i < 5; i++)
|
||||
fprintf(stdout, "%08x", bdigest[i]);
|
||||
fprintf(stdout, " BeeCrypt\n");
|
||||
#endif
|
||||
if (sdigest) {
|
||||
fprintf(stdout, "%s FIPS PUB 180-1 Appendix %c\n", sdigest,
|
||||
appendix);
|
||||
|
@ -184,19 +150,9 @@ main(int argc, const char *argv[])
|
|||
odigest = NULL;
|
||||
(flags & RPMDIGEST_SHA1) ? fdInitSHA1(ofd, reverse) : fdInitMD5(ofd, reverse);
|
||||
|
||||
#ifdef ENABLE_BEECRYPT
|
||||
(flags & RPMDIGEST_SHA1)
|
||||
? (void) sha1Reset(&sparam)
|
||||
: (void) md5Reset(&mparam);
|
||||
#endif
|
||||
ctx = rpmDigestInit(flags);
|
||||
|
||||
while ((nb = Fread(buf, 1, sizeof(buf), ifd)) > 0) {
|
||||
#ifdef ENABLE_BEECRYPT
|
||||
(flags & RPMDIGEST_SHA1)
|
||||
? (void) sha1Update(&sparam, (const unsigned char*) buf, nb)
|
||||
: (void) md5Update(&mparam, (const unsigned char*) buf, nb);
|
||||
#endif
|
||||
rpmDigestUpdate(ctx, buf, nb);
|
||||
(void) Fwrite(buf, 1, nb, ofd);
|
||||
}
|
||||
|
@ -212,22 +168,10 @@ main(int argc, const char *argv[])
|
|||
: fdFiniMD5(ofd, (void **)&odigest, NULL, asAscii);
|
||||
Fclose(ofd);
|
||||
|
||||
#ifdef ENABLE_BEECRYPT
|
||||
(flags & RPMDIGEST_SHA1)
|
||||
? (void) sha1Digest(&sparam, bdigest)
|
||||
: (void) md5Digest(&mparam, bdigest);
|
||||
#endif
|
||||
rpmDigestFinal(ctx, (void **)&digest, &digestlen, asAscii);
|
||||
|
||||
if (digest) {
|
||||
fprintf(stdout, "%s %s\n", digest, ifn);
|
||||
#ifdef ENABLE_BEECRYPT
|
||||
{ int imax = (flags & RPMDIGEST_SHA1) ? 5 : 4;
|
||||
for (i = 0; i < imax; i++)
|
||||
fprintf(stdout, "%08x", bdigest[i]);
|
||||
}
|
||||
fprintf(stdout, " BeeCrypt\n");
|
||||
#endif
|
||||
fflush(stdout);
|
||||
free((void *)digest);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue