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>