From 7483b2467b1937024396a43aa42f96710462cb03 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 26 Nov 2013 11:17:50 +0100 Subject: add some documentation --- Makefile | 21 ++++++++++++++++----- README.md | 45 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 60 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 0160bed..6f77853 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,8 @@ # nthash - Generate NT Hash -PREFIX := /usr + +PREFIX := /usr CC := gcc +MD := markdown ECHO := echo GREP := grep INSTALL := install @@ -10,19 +12,28 @@ CFLAGS += -O2 -Wall -Werror # "-lnettle" if pkg-config fails. CFLAGS += $(shell pkg-config --cflags --libs nettle 2>/dev/null || echo "-lnettle") -all: nthash +all: nthash README.html nthash: $(CC) $(CFLAGS) -o nthash $(LDFLAGS) nthash.c +README.html: README.md + $(MD) README.md > README.html + check: $(ECHO) -n "testing123" | ./nthash | \ $(GREP) -q '^3e678b266d1d449e531e92bec33b6d27$$' $(ECHO) "testing123" | ./nthash 2>&1 | \ $(GREP) -q '^Warning: Input contains line break!$$' -install: nthash - $(INSTALL) -pDm0755 nthash $(DESTDIR)$(PREFIX)/bin/nthash +install: install-bin install-doc + +install-bin: nthash + $(INSTALL) -pD -m0755 nthash $(DESTDIR)$(PREFIX)/bin/nthash + +install-doc: README.html + $(INSTALL) -pD -m0644 README.md $(DESTDIR)$(PREFIX)/share/doc/nthash/README.md + $(INSTALL) -pD -m0644 README.html $(DESTDIR)$(PREFIX)/share/doc/nthash/README.html clean: - $(RM) -f *.o *~ nthash + $(RM) -f *.o *~ README.html nthash diff --git a/README.md b/README.md index 9c5dbe0..b2ab32b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,47 @@ nthash ====== -Generate NT Hash \ No newline at end of file +**Generate NT Hash** + +The NT hash is used by Microsoft and others for authentication. This +program `nthash` converts the standard input to UTF16 (little endian) +and applies the MD4 hash algorithm. This resulting 32 byte string is +printed to standard out. + +Requirements +------------ + +To compile and run `ntash` you need: + +* [nettle](http://www.lysator.liu.se/~nisse/nettle/) +* [markdown](http://daringfireball.net/projects/markdown/) (HTML documentation) + +Additionally it is expected to have `make` and `pkg-config` around to +successfully compile. + +Some systems may require additional development packages for the libraries. +Look for `nettle-dev` or similar. + +Build and install +----------------- + +Building and installing is very easy. Just run: + +> make + +followed by: + +> make install + +This will place an executable at `/usr/bin/nthash`. + +Usage +----- + +Just feed `nthash` with the password on standard input. Please not that +`nthash` does not strip new lines from input. You may want to use `echo` +with option `-n`: + +> echo -n test | nthash +> 0cb6948805f797bf2a82807973b89537 + -- cgit v1.2.3-54-g00ecf