Put public domain MD2 implementation in libc/hash/md2.
This commit is contained in:
parent
5593466f1b
commit
b387889f76
@ -1,9 +1,10 @@
|
||||
# $NetBSD: Makefile.inc,v 1.9 2005/09/24 19:04:52 elad Exp $
|
||||
# $NetBSD: Makefile.inc,v 1.10 2005/09/24 20:51:14 elad Exp $
|
||||
# $OpenBSD: Makefile.inc,v 1.5 1997/07/17 06:02:42 millert Exp $
|
||||
|
||||
# hash functions
|
||||
.PATH: ${ARCHDIR}/hash ${.CURDIR}/hash
|
||||
|
||||
.include "${.CURDIR}/hash/md2/Makefile.inc"
|
||||
.include "${.CURDIR}/hash/md5/Makefile.inc"
|
||||
.include "${.CURDIR}/hash/rmd160/Makefile.inc"
|
||||
.include "${.CURDIR}/hash/sha1/Makefile.inc"
|
||||
|
12
lib/libc/hash/md2/Makefile.inc
Normal file
12
lib/libc/hash/md2/Makefile.inc
Normal file
@ -0,0 +1,12 @@
|
||||
# $NetBSD: Makefile.inc,v 1.1 2005/09/24 20:51:14 elad Exp $
|
||||
|
||||
# hash functions
|
||||
.PATH: ${.CURDIR}/hash/md2
|
||||
|
||||
SRCS+= md2.c md2hl.c
|
||||
|
||||
MAN+= md2.3
|
||||
|
||||
MLINKS+=md2.3 MD2Init.3 md2.3 MD2Update.3 md2.3 MD2Final.3
|
||||
MLINKS+=md2.3 MD2End.3 md2.3 MD2File.3 md2.3 MD2Data.3
|
||||
MLINKS+=md2.3 MD2Transform.3 md2.3 MD2FileChunk.3
|
123
lib/libc/hash/md2/md2.3
Normal file
123
lib/libc/hash/md2/md2.3
Normal file
@ -0,0 +1,123 @@
|
||||
.\" $NetBSD: md2.3,v 1.1 2005/09/24 20:51:14 elad Exp $
|
||||
.\"
|
||||
.\" ----------------------------------------------------------------------------
|
||||
.\" "THE BEER-WARE LICENSE" (Revision 42):
|
||||
.\" <phk@login.dkuug.dk> wrote this file. As long as you retain this notice you
|
||||
.\" can do whatever you want with this stuff. If we meet some day, and you think
|
||||
.\" this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
|
||||
.\" ----------------------------------------------------------------------------
|
||||
.\"
|
||||
.\" from FreeBSD Id: mdX.3,v 1.7 1996/10/22 16:28:56 phk Exp
|
||||
.\"
|
||||
.Dd September 24, 2005
|
||||
.Dt MD2 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm MD2Init ,
|
||||
.Nm MD2Update ,
|
||||
.Nm MD2Final ,
|
||||
.Nm MD2End ,
|
||||
.Nm MD2File ,
|
||||
.Nm MD2Data
|
||||
.Nd calculate the RSA Data Security, Inc.,
|
||||
.Dq MD2
|
||||
message digest
|
||||
.Sh LIBRARY
|
||||
.Lb libc
|
||||
.Sh SYNOPSIS
|
||||
.In sys/types.h
|
||||
.In mdX.h
|
||||
.Ft void
|
||||
.Fn MD2Init "MD2_CTX *context"
|
||||
.Ft void
|
||||
.Fn MD2Update "MD2_CTX *context" "const unsigned char *data" "unsigned int len"
|
||||
.Ft void
|
||||
.Fn MD2Final "unsigned char digest[16]" "MD2_CTX *context"
|
||||
.Ft "char *"
|
||||
.Fn MD2End "MD2_CTX *context" "char *buf"
|
||||
.Ft "char *"
|
||||
.Fn MD2File "const char *filename" "char *buf"
|
||||
.Ft "char *"
|
||||
.Fn MD2Data "const unsigned char *data" "unsigned int len" "char *buf"
|
||||
.Sh DESCRIPTION
|
||||
The MD2 functions calculate a 128-bit cryptographic checksum (digest)
|
||||
for any number of input bytes.
|
||||
A cryptographic checksum is a one-way
|
||||
hash-function, that is, you cannot find (except by exhaustive search)
|
||||
the input corresponding to a particular output.
|
||||
This net result is
|
||||
a ``fingerprint'' of the input-data, which doesn't disclose the actual
|
||||
input.
|
||||
.Pp
|
||||
The MD2 routines should not be used for any security-related purpose.
|
||||
.Pp
|
||||
The
|
||||
.Fn MD2Init ,
|
||||
.Fn MD2Update ,
|
||||
and
|
||||
.Fn MD2Final
|
||||
functions are the core functions.
|
||||
Allocate an MD2_CTX, initialize it with
|
||||
.Fn MD2Init ,
|
||||
run over the data with
|
||||
.Fn MD2Update ,
|
||||
and finally extract the result using
|
||||
.Fn MD2Final .
|
||||
.Pp
|
||||
.Fn MD2End
|
||||
is a wrapper for
|
||||
.Fn MD2Final
|
||||
which converts the return value to a 33-character
|
||||
(including the terminating '\e0')
|
||||
.Tn ASCII
|
||||
string which represents the 128 bits in hexadecimal.
|
||||
.Pp
|
||||
.Fn MD2File
|
||||
calculates the digest of a file, and uses
|
||||
.Fn MD2End
|
||||
to return the result.
|
||||
If the file cannot be opened, a null pointer is returned.
|
||||
.Fn MD2Data
|
||||
calculates the digest of a chunk of data in memory, and uses
|
||||
.Fn MD2End
|
||||
to return the result.
|
||||
.Pp
|
||||
When using
|
||||
.Fn MD2End ,
|
||||
.Fn MD2File ,
|
||||
or
|
||||
.Fn MD2Data ,
|
||||
the
|
||||
.Ar buf
|
||||
argument can be a null pointer, in which case the returned string
|
||||
is allocated with
|
||||
.Xr malloc 3
|
||||
and subsequently must be explicitly deallocated using
|
||||
.Xr free 3
|
||||
after use.
|
||||
If the
|
||||
.Ar buf
|
||||
argument is non-null it must point to at least 33 characters of buffer space.
|
||||
.Sh SEE ALSO
|
||||
.Xr md2 3 ,
|
||||
.Rs
|
||||
.%A B. Kaliski
|
||||
.%T The MD2 Message-Digest Algorithm
|
||||
.%O RFC 1319
|
||||
.Re
|
||||
.Rs
|
||||
.%A RSA Laboratories
|
||||
.%T Frequently Asked Questions About today's Cryptography
|
||||
.Re
|
||||
.Sh HISTORY
|
||||
These functions appeared in
|
||||
.Nx 1.3 .
|
||||
.Sh AUTHORS
|
||||
The original MD2 routines were developed by
|
||||
.Tn RSA
|
||||
Data Security, Inc., and published in the above references.
|
||||
This code is a public domain implementation by Andrew Brown.
|
||||
.Sh BUGS
|
||||
No method is known to exist which finds two files having the same hash value,
|
||||
nor to find a file with a specific hash value.
|
||||
There is on the other hand no guarantee that such a method doesn't exist.
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: md2c.c,v 1.5 2005/06/12 05:21:27 lukem Exp $ */
|
||||
/* $NetBSD: md2.c,v 1.1 2005/09/24 20:51:14 elad Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2001 The NetBSD Foundation, Inc.
|
||||
@ -38,7 +38,7 @@
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
__RCSID("$NetBSD: md2c.c,v 1.5 2005/06/12 05:21:27 lukem Exp $");
|
||||
__RCSID("$NetBSD: md2.c,v 1.1 2005/09/24 20:51:14 elad Exp $");
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include "namespace.h"
|
23
lib/libc/hash/md2/md2hl.c
Normal file
23
lib/libc/hash/md2/md2hl.c
Normal file
@ -0,0 +1,23 @@
|
||||
/* $NetBSD: md2hl.c,v 1.1 2005/09/24 20:51:14 elad Exp $ */
|
||||
|
||||
/*
|
||||
* Derived from code ritten by Jason R. Thorpe <thorpej@NetBSD.org>,
|
||||
* April 29, 1997.
|
||||
* Public domain.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
__RCSID("$NetBSD: md2hl.c,v 1.1 2005/09/24 20:51:14 elad Exp $");
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#define HASH_ALGORITHM MD2
|
||||
|
||||
#include "namespace.h"
|
||||
#include <md2.h> /* XXX */
|
||||
|
||||
#if HAVE_NBTOOL_CONFIG_H
|
||||
#include "nbtool_config.h"
|
||||
#endif
|
||||
|
||||
#include "../hash.c"
|
@ -1,28 +1,22 @@
|
||||
# $NetBSD: Makefile.inc,v 1.6 2001/03/19 04:13:17 atatat Exp $
|
||||
# $NetBSD: Makefile.inc,v 1.7 2005/09/24 20:51:14 elad Exp $
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
# MD2/MD4/MD5 sources
|
||||
# MD4/MD5 sources
|
||||
.PATH: ${ARCHDIR}/md ${.CURDIR}/md
|
||||
|
||||
SRCS+= md2c.c md4c.c md5c.c md2hl.c md4hl.c md5hl.c
|
||||
SRCS+= md4c.c md5c.c md4hl.c md5hl.c
|
||||
|
||||
MAN+= md2.3 md4.3 md5.3
|
||||
MAN+= md4.3 md5.3
|
||||
|
||||
MLINKS+=md2.3 MD2Init.3 md2.3 MD2Update.3 md2.3 MD2Final.3
|
||||
MLINKS+=md2.3 MD2End.3 md2.3 MD2File.3 md2.3 MD2Data.3
|
||||
MLINKS+=md4.3 MD4Init.3 md4.3 MD4Update.3 md4.3 MD4Final.3
|
||||
MLINKS+=md4.3 MD4End.3 md4.3 MD4File.3 md4.3 MD4Data.3
|
||||
MLINKS+=md5.3 MD5Init.3 md5.3 MD5Update.3 md5.3 MD5Final.3
|
||||
MLINKS+=md5.3 MD5End.3 md5.3 MD5File.3 md5.3 MD5Data.3
|
||||
|
||||
CLEANFILES+= md[245]hl.c md[245].3
|
||||
CLEANFILES+= md[45]hl.c md[45].3
|
||||
|
||||
.if ${MKMAN} != "no"
|
||||
md2.3: mdX.3
|
||||
sed -e 's/mdX/md2/g' -e 's/MDX/MD2/g' $> > $@
|
||||
cat ${>:H}/md2.copyright >> $@
|
||||
|
||||
md4.3: mdX.3
|
||||
sed -e 's/mdX/md4/g' -e 's/MDX/MD4/g' $> > $@
|
||||
cat ${>:H}/md4.copyright >> $@
|
||||
|
@ -1,2 +0,0 @@
|
||||
.\" $NetBSD: md2.copyright,v 1.1 2001/03/19 04:13:17 atatat Exp $
|
||||
This code is in the public domain.
|
Loading…
Reference in New Issue
Block a user