aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile21
-rw-r--r--README.md45
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
+