Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Dec 2001 06:34:00 -0500 (EST)
From:      Mike Wiacek <mike@siteintegrity.net>
To:        freebsd-hackers@freebsd.org
Subject:   sha1 program
Message-ID:  <20011215062918.F74051-400000@siteintegrity.net>

next in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-1941351035-1008416040=:74051
Content-Type: TEXT/PLAIN; charset=US-ASCII

We currently have a MD5 driver, but no SHA1 driver, even though
we have SHA1 as part of libmd. So I took md5.c from /usr/src/sbin/md5
and made sha1.c as well as a respective man page. Attached is the
source file, the manual page for it, as well as a makefile.

Hope this is useful and makes its way into the tree. Md5 has some
questionable attacks against it, and Schneier claims that
sha is resillient to such attacks.

mike

--0-1941351035-1008416040=:74051
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="sha1.c"
Content-Transfer-Encoding: BASE64
Content-ID: <20011215063400.H74051@siteintegrity.net>
Content-Description: sha1 source file
Content-Disposition: attachment; filename="sha1.c"

LyoNCiAqIERlcml2ZWQgZnJvbToNCiAqDQogKiBNRERSSVZFUi5DIC0gdGVz
dCBkcml2ZXIgZm9yIE1EMiwgTUQ0IGFuZCBNRDUNCiAqLw0KDQovKg0KICog
RnVydGhlciBkZXJ2aWVkIGZyb20gdGhlIEZyZWVCU0QgbWQ1IGRyaXZlciBw
cm9ncmFtLg0KICogQ29udmVydGVkIHRvIGdlbmVyYXRlIFNIQSAxNjAgYml0
IGhhc2hlcy4NCiAqIE1pa2UgV2lhY2VrIDxtaWtlQHNpdGVpbnRlZ3JpdHku
bmV0PiAxMi8xNC8yMDAxDQogKi8NCg0KI2lmbmRlZiBsaW50DQpzdGF0aWMg
Y29uc3QgY2hhciByY3NpZFtdID0NCiAgIiRGcmVlQlNEJCI7DQojZW5kaWYg
Lyogbm90IGxpbnQgKi8NCg0KI2luY2x1ZGUgPHN5cy90eXBlcy5oPg0KI2lu
Y2x1ZGUgPGVyci5oPg0KI2luY2x1ZGUgPHNoYS5oPg0KI2luY2x1ZGUgPHN0
ZGlvLmg+DQojaW5jbHVkZSA8c3RkbGliLmg+DQojaW5jbHVkZSA8c3RyaW5n
Lmg+DQojaW5jbHVkZSA8dGltZS5oPg0KI2luY2x1ZGUgPHVuaXN0ZC5oPg0K
DQovKg0KICogTGVuZ3RoIG9mIHRlc3QgYmxvY2ssIG51bWJlciBvZiB0ZXN0
IGJsb2Nrcy4NCiAqLw0KI2RlZmluZSBURVNUX0JMT0NLX0xFTiAxMDAwMA0K
I2RlZmluZSBURVNUX0JMT0NLX0NPVU5UIDEwMDAwMA0KDQppbnQgcWZsYWc7
DQppbnQgcmZsYWc7DQoNCnN0YXRpYyB2b2lkIFNIQVN0cmluZyhjb25zdCBj
aGFyICopOw0Kc3RhdGljIHZvaWQgU0hBVGltZVRyaWFsKHZvaWQpOw0Kc3Rh
dGljIHZvaWQgU0hBVGVzdFN1aXRlKHZvaWQpOw0Kc3RhdGljIHZvaWQgU0hB
RmlsdGVyKGludCk7DQpzdGF0aWMgdm9pZCB1c2FnZSh2b2lkKTsNCg0KLyog
TWFpbiBkcml2ZXIuDQoNCkFyZ3VtZW50cyAobWF5IGJlIGFueSBjb21iaW5h
dGlvbik6DQogIC1zc3RyaW5nIC0gZGlnZXN0cyBzdHJpbmcNCiAgLXQgICAg
ICAgLSBydW5zIHRpbWUgdHJpYWwNCiAgLXggICAgICAgLSBydW5zIHRlc3Qg
c2NyaXB0DQogIGZpbGVuYW1lIC0gZGlnZXN0cyBmaWxlDQogIChub25lKSAg
IC0gZGlnZXN0cyBzdGFuZGFyZCBpbnB1dA0KICovDQoNCm1haW4oaW50IGFy
Z2MsIGNoYXIgKmFyZ3ZbXSkNCnsNCglpbnQgICAgIGNoOw0KCWNoYXIgICAq
cDsNCgl1bnNpZ25lZCBjaGFyCWJ1Zls0MV0gPSB7MH07DQoNCgl3aGlsZSAo
KGNoID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJwcXJzOnR4IikpICE9IC0xKQ0K
CQlzd2l0Y2ggKGNoKSB7DQoJCWNhc2UgJ3AnOg0KCQkJU0hBRmlsdGVyKDEp
Ow0KCQkJYnJlYWs7DQoJCWNhc2UgJ3EnOg0KCQkJcWZsYWcgPSAxOw0KCQkJ
YnJlYWs7DQoJCWNhc2UgJ3InOg0KCQkJcmZsYWcgPSAxOw0KCQkJYnJlYWs7
DQoJCWNhc2UgJ3MnOg0KCQkJU0hBU3RyaW5nKG9wdGFyZyk7DQoJCQlicmVh
azsNCgkJY2FzZSAndCc6DQoJCQlTSEFUaW1lVHJpYWwoKTsNCgkJCWJyZWFr
Ow0KCQljYXNlICd4JzoNCgkJCVNIQVRlc3RTdWl0ZSgpOw0KCQkJYnJlYWs7
DQoJCWRlZmF1bHQ6DQoJCQl1c2FnZSgpOw0KCQl9DQoJYXJnYyAtPSBvcHRp
bmQ7DQoJYXJndiArPSBvcHRpbmQ7DQoNCglpZiAoKmFyZ3YpIHsNCgkJZG8g
ew0KCQkJcCA9IFNIQTFfRmlsZSgqYXJndiwgYnVmKTsNCgkJCWlmICghcCkN
CgkJCQl3YXJuKCIlcyIsICphcmd2KTsNCgkJCWVsc2UNCgkJCQlpZiAocWZs
YWcpDQoJCQkJCXByaW50ZigiJXNcbiIsIHApOw0KCQkJCWVsc2UgaWYgKHJm
bGFnKQ0KCQkJCQlwcmludGYoIiVzICVzXG4iLCBwLCAqYXJndik7DQoJCQkJ
ZWxzZQ0KCQkJCQlwcmludGYoIlNIQTEgKCVzKSA9ICVzXG4iLCAqYXJndiwg
cCk7DQoJCX0gd2hpbGUgKCorK2FyZ3YpOw0KCX0gZWxzZSBpZiAob3B0aW5k
ID09IDEgfHwgcWZsYWcgfHwgcmZsYWcpDQoJCVNIQUZpbHRlcigwKTsNCg0K
CXJldHVybiAoMCk7DQp9DQovKg0KICogRGlnZXN0cyBhIHN0cmluZyBhbmQg
cHJpbnRzIHRoZSByZXN1bHQuDQogKi8NCnN0YXRpYyB2b2lkDQpTSEFTdHJp
bmcoY29uc3QgY2hhciAqc3RyaW5nKQ0Kew0KCXNpemVfdCBsZW4gPSBzdHJs
ZW4oc3RyaW5nKTsNCgl1bnNpZ25lZCBjaGFyIGJ1Zls0MV0gPSB7MH07DQoN
CglpZiAocWZsYWcpDQoJCXByaW50ZigiJXNcbiIsIFNIQTFfRGF0YShzdHJp
bmcsIGxlbiwgYnVmKSk7DQoJZWxzZSBpZiAocmZsYWcpDQoJCXByaW50Zigi
JXMgXCIlc1wiXG4iLCBTSEExX0RhdGEoc3RyaW5nLCBsZW4sIGJ1ZiksIHN0
cmluZyk7DQoJZWxzZQ0KCQlwcmludGYoIlNIQTEgKFwiJXNcIikgPSAlc1xu
Iiwgc3RyaW5nLCBTSEExX0RhdGEoc3RyaW5nLCBsZW4sIGJ1ZikpOw0KfQ0K
LyoNCiAqIE1lYXN1cmVzIHRoZSB0aW1lIHRvIGRpZ2VzdCBURVNUX0JMT0NL
X0NPVU5UIFRFU1RfQkxPQ0tfTEVOLWJ5dGUgYmxvY2tzLg0KICovDQpzdGF0
aWMgdm9pZA0KU0hBVGltZVRyaWFsKHZvaWQpDQp7DQoJU0hBX0NUWCBjb250
ZXh0Ow0KCXRpbWVfdCAgZW5kVGltZSwgc3RhcnRUaW1lOw0KCXVuc2lnbmVk
IGNoYXIgYmxvY2tbVEVTVF9CTE9DS19MRU5dOw0KCXVuc2lnbmVkIGludCBp
Ow0KCWNoYXIgICAqcDsNCgl1bnNpZ25lZCBjaGFyIGJ1Zls0MV0gPSB7MH07
DQoNCg0KCXByaW50Zg0KCSAgICAoIlNIQTEgdGltZSB0cmlhbC4gRGlnZXN0
aW5nICVkICVkLWJ5dGUgYmxvY2tzIC4uLiIsDQoJICAgIFRFU1RfQkxPQ0tf
Q09VTlQsIFRFU1RfQkxPQ0tfTEVOKTsNCglmZmx1c2goc3Rkb3V0KTsNCg0K
CS8qIEluaXRpYWxpemUgYmxvY2sgKi8NCglmb3IgKGkgPSAwOyBpIDwgVEVT
VF9CTE9DS19MRU47IGkrKykNCgkJYmxvY2tbaV0gPSAodW5zaWduZWQgY2hh
cikgKGkgJiAweGZmKTsNCg0KCS8qIFN0YXJ0IHRpbWVyICovDQoJdGltZSgm
c3RhcnRUaW1lKTsNCg0KCS8qIERpZ2VzdCBibG9ja3MgKi8NCglTSEFfSW5p
dCgmY29udGV4dCk7DQoJZm9yIChpID0gMDsgaSA8IFRFU1RfQkxPQ0tfQ09V
TlQ7IGkrKykNCgkJU0hBX1VwZGF0ZSgmY29udGV4dCwgYmxvY2ssIFRFU1Rf
QkxPQ0tfTEVOKTsNCglwID0gU0hBMV9FbmQoJmNvbnRleHQsYnVmKTsNCg0K
CS8qIFN0b3AgdGltZXIgKi8NCgl0aW1lKCZlbmRUaW1lKTsNCg0KCXByaW50
ZigiIGRvbmVcbiIpOw0KCXByaW50ZigiRGlnZXN0ID0gJXMiLCBwKTsNCglw
cmludGYoIlxuVGltZSA9ICVsZCBzZWNvbmRzXG4iLCAobG9uZykgKGVuZFRp
bWUgLSBzdGFydFRpbWUpKTsNCgkvKiBCZSBjYXJlZnVsIHRoYXQgZW5kVGlt
ZS1zdGFydFRpbWUgaXMgbm90IHplcm8uIChCdWcgZml4IGZyb20gUmljDQoJ
ICogQW5kZXJzb24sIHJpY0BBcnRpc29mdC5DT00uKSAqLw0KCXByaW50Zg0K
CSAgICAoIlNwZWVkID0gJWxkIGJ5dGVzL3NlY29uZFxuIiwNCgkgICAgKGxv
bmcpIFRFU1RfQkxPQ0tfTEVOICogKGxvbmcpIFRFU1RfQkxPQ0tfQ09VTlQg
LyAoKGVuZFRpbWUgLSBzdGFydFRpbWUpICE9IDAgPyAoZW5kVGltZSAtIHN0
YXJ0VGltZSkgOiAxKSk7DQp9DQovKg0KICogRGlnZXN0cyBhIHJlZmVyZW5j
ZSBzdWl0ZSBvZiBzdHJpbmdzIGFuZCBwcmludHMgdGhlIHJlc3VsdHMuDQog
Ki8NCnN0YXRpYyB2b2lkDQpTSEFUZXN0U3VpdGUodm9pZCkNCnsNCg0KCXBy
aW50ZigiU0hBMSB0ZXN0IHN1aXRlOlxuIik7DQoNCglTSEFTdHJpbmcoIiIp
Ow0KCVNIQVN0cmluZygiYSIpOw0KCVNIQVN0cmluZygiYWJjIik7DQoJU0hB
U3RyaW5nKCJtZXNzYWdlIGRpZ2VzdCIpOw0KCVNIQVN0cmluZygiYWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXoiKTsNCglTSEFTdHJpbmcNCgkgICAgKCJB
QkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6MDEyMzQ1Njc4OSIpOw0KCVNIQVN0cmluZw0KCSAgICAoIjEyMzQ1
Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTBcDQoxMjM0NTY3
ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwIik7DQp9DQoNCi8q
DQogKiBEaWdlc3RzIHRoZSBzdGFuZGFyZCBpbnB1dCBhbmQgcHJpbnRzIHRo
ZSByZXN1bHQuDQogKi8NCnN0YXRpYyB2b2lkDQpTSEFGaWx0ZXIoaW50IHRl
ZSkNCnsNCglTSEFfQ1RYIGNvbnRleHQ7DQoJdW5zaWduZWQgaW50IGxlbjsN
Cgl1bnNpZ25lZCBjaGFyIGJ1ZmZlcltCVUZTSVpdOw0KCXVuc2lnbmVkIGNo
YXIgYnVmWzQxXSA9IHswfTsNCg0KCVNIQV9Jbml0KCZjb250ZXh0KTsNCgl3
aGlsZSAoKGxlbiA9IGZyZWFkKGJ1ZmZlciwgMSwgQlVGU0laLCBzdGRpbikp
KSB7DQoJCWlmICh0ZWUgJiYgbGVuICE9IGZ3cml0ZShidWZmZXIsIDEsIGxl
biwgc3Rkb3V0KSkNCgkJCWVycigxLCAic3Rkb3V0Iik7DQoJCVNIQV9VcGRh
dGUoJmNvbnRleHQsIGJ1ZmZlciwgbGVuKTsNCgl9DQoJcHJpbnRmKCIlc1xu
IiwgU0hBMV9FbmQoJmNvbnRleHQsYnVmKSk7DQp9DQoNCnN0YXRpYyB2b2lk
DQp1c2FnZSh2b2lkKQ0Kew0KDQoJZnByaW50ZihzdGRlcnIsICJ1c2FnZTog
c2hhMSBbLXBxcnR4XSBbLXMgc3RyaW5nXSBbZmlsZXMgLi4uXVxuIik7DQoJ
ZXhpdCgxKTsNCn0NCg==
--0-1941351035-1008416040=:74051
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="sha1.1"
Content-Transfer-Encoding: BASE64
Content-ID: <20011215063400.E74051@siteintegrity.net>
Content-Description: manual page
Content-Disposition: attachment; filename="sha1.1"

LlwiICRGcmVlQlNEJA0KLkRkIEZlYnJ1YXJ5IDE0LCAxOTk0DQouRHQgU0hB
MSAxDQouT3MNCi5TaCBOQU1FDQouTm0gc2hhMQ0KLk5kIGNhbGN1bGF0ZSBh
IG1lc3NhZ2UtZGlnZXN0IGZpbmdlcnByaW50IChjaGVja3N1bSkgZm9yIGEg
ZmlsZQ0KLlNoIFNZTk9QU0lTDQouTm0NCi5PcCBGbCBwcXJ0eA0KLk9wIEZs
IHMgQXIgc3RyaW5nDQouT3AgQXINCi5TaCBERVNDUklQVElPTg0KLk5tIFNo
YTENCnRha2VzIGFzIGlucHV0IGEgbWVzc2FnZSBvZiBhcmJpdHJhcnkgbGVu
Z3RoIGFuZCBwcm9kdWNlcw0KYXMgb3V0cHV0IGEgMTYwLWJpdA0KLkRxIGZp
bmdlcnByaW50DQpvcg0KLkRxIG1lc3NhZ2UgZGlnZXN0DQpvZiB0aGUgaW5w
dXQsIHVzaW5nIHRoZSBOYXRpb25hbCBJbnN0aXR1dGUgb2YgU3RhbmRhcmRz
IGFuZCBUZWNobm9sb2d5J3MgU2VjdXJlDQpIYXNoIEFsZ29yaXRobS4gSXQg
aXMgY29uamVjdHVyZWQgdGhhdCBpdCBpcyBjb21wdXRhdGlvbmFsbHkgaW5m
ZWFzaWJsZSB0bw0KcHJvZHVjZSB0d28gbWVzc2FnZXMgaGF2aW5nIHRoZSBz
YW1lIG1lc3NhZ2UgZGlnZXN0LCBvciB0byBwcm9kdWNlIGFueQ0KbWVzc2Fn
ZSBoYXZpbmcgYSBnaXZlbiBwcmVzcGVjaWZpZWQgdGFyZ2V0IG1lc3NhZ2Ug
ZGlnZXN0Lg0KLlBwDQpUaGUgZm9sbG93aW5nIG9wdGlvbnMgbWF5IGJlIHVz
ZWQgaW4gYW55IGNvbWJpbmF0aW9uIGFuZCBtdXN0DQpwcmVjZWRlIGFueSBm
aWxlcyBuYW1lZCBvbiB0aGUgY29tbWFuZCBsaW5lLiAgVGhlIFNIQTENCnN1
bSBvZiBlYWNoIGZpbGUgbGlzdGVkIG9uIHRoZSBjb21tYW5kIGxpbmUgaXMg
cHJpbnRlZCBhZnRlciB0aGUgb3B0aW9ucw0KYXJlIHByb2Nlc3NlZC4NCi5C
bCAtdGFnIC13aWR0aCBpbmRlbnQNCi5JdCBGbCBzIEFyIHN0cmluZw0KUHJp
bnQgYSBjaGVja3N1bSBvZiB0aGUgZ2l2ZW4NCi5BciBzdHJpbmcgLg0KLkl0
IEZsIHANCkVjaG8gc3RkaW4gdG8gc3Rkb3V0IGFuZCBhcHBlbmRzIHRoZSBT
SEExIHN1bSB0byBzdGRvdXQuDQouSXQgRmwgcQ0KUXVpZXQgbW9kZSAtIG9u
bHkgdGhlIFNIQTEgc3VtIGlzIHByaW50ZWQgb3V0LiAgT3ZlcnJpZGVzIHRo
ZQ0KLkZsIHINCm9wdGlvbi4NCi5JdCBGbCByDQpSZXZlcnNlcyB0aGUgZm9y
bWF0IG9mIHRoZSBvdXRwdXQuICBUaGlzIGhlbHBzIHdpdGggdmlzdWFsIGRp
ZmZzLiAgRG9lcyBub3RoaW5nDQp3aGVuIGNvbWJpbmVkIHdpdGggdGhlDQou
RmwgcHR4DQpvcHRpb25zLg0KLkl0IEZsIHQNClJ1biBhIGJ1aWx0LWluIHRp
bWUgdHJpYWwuDQouSXQgRmwgeA0KUnVuIGEgYnVpbHQtaW4gdGVzdCBzY3Jp
cHQuDQouRWwNCi5TaCBTRUUgQUxTTw0KLlhyIGNrc3VtIDENCi5YciBtZDUg
MQ0KLlJzDQouJUEgRC4gRWFzdGxha2UNCi4lVCBVUyBTZWN1cmUgSGFzaCBB
bGdvcml0aG0gMSAoU0hBMSkNCi4lTyBSRkMzMTc0DQouUmUNCg==
--0-1941351035-1008416040=:74051
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=Makefile
Content-Transfer-Encoding: BASE64
Content-ID: <20011215063400.A74051@siteintegrity.net>
Content-Description: makefile for sha1 belongs (/usr/src/sbin/sha1/)
Content-Disposition: attachment; filename=Makefile

IwlAKCMpTWFrZWZpbGUJOC4xIChCZXJrZWxleSkgNi85LzkzDQojICRGcmVl
QlNEJA0KDQpQUk9HPQlzaGExDQoNCkxEQUREKz0JLWxtZCAtZw0KRFBBREQr
PSAke0xJQk1EfQ0KDQouaW5jbHVkZSA8YnNkLnByb2cubWs+DQo=
--0-1941351035-1008416040=:74051--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011215062918.F74051-400000>