From owner-freebsd-bugs Wed Mar 25 00:10:06 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id AAA28822 for freebsd-bugs-outgoing; Wed, 25 Mar 1998 00:10:06 -0800 (PST) (envelope-from owner-freebsd-bugs@FreeBSD.ORG) Received: (from gnats@localhost) by hub.freebsd.org (8.8.8/8.8.8) id AAA28809; Wed, 25 Mar 1998 00:10:04 -0800 (PST) (envelope-from gnats) Received: from osku.suutari.iki.fi (kn6-045.ktvlpr.inet.fi [194.197.169.45]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id AAA28732 for ; Wed, 25 Mar 1998 00:09:41 -0800 (PST) (envelope-from ari@osku.suutari.iki.fi) Received: (from ari@localhost) by osku.suutari.iki.fi (8.8.7/8.8.5) id KAA07111; Wed, 25 Mar 1998 10:09:38 +0200 (EET) Message-Id: <199803250809.KAA07111@osku.suutari.iki.fi> Date: Wed, 25 Mar 1998 10:09:38 +0200 (EET) From: ari@suutari.iki.fi Reply-To: ari@suutari.iki.fi To: FreeBSD-gnats-submit@FreeBSD.ORG X-Send-Pr-Version: 3.2 Subject: misc/6127: MD5Final in libmd Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 6127 >Category: misc >Synopsis: MD5Final in libmd >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Wed Mar 25 00:10:03 PST 1998 >Last-Modified: >Originator: Ari Suutari >Organization: >Release: FreeBSD 2.2.5-RELEASE i386 >Environment: >Description: To be able to use libmd MD5 routines in my user-process implementation of RFC1828, an additional routine would be required to be able to pad key data in same way as done by MD5Final. >How-To-Repeat: >Fix: Split MD5Final into two functions: MD5Pad and MD5Final. MD5Pad does the padding currently done by first part of MD5Final. MD5Final would first call MD5Pad. Like this: void MD5Final (digest, context) unsigned char digest[16]; MD5_CTX *context; { /* Padding */ MD5Pad (context); /* Store state in digest */ Encode (digest, context->state, 16); /* Zeroize sensitive information. */ memset ((void *)context, 0, sizeof (*context)); } void MD5Pad (context) MD5_CTX *context; { unsigned char bits[8]; unsigned int index, padLen; /* Save number of bits */ Encode (bits, context->count, 8); /* Pad out to 56 mod 64. */ index = (unsigned int)((context->count[0] >> 3) & 0x3f); padLen = (index < 56) ? (56 - index) : (120 - index); MD5Update (context, PADDING, padLen); /* Append length (before padding) */ MD5Update (context, bits, 8); } >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message