Switch branches/tags
Nothing to show
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
..
Failed to load latest commit information.
examples
sparc32
sparc64
testsuite
tools
x86
x86_64
.bootstrap
AUTHORS
COPYING.LIB
ChangeLog
INSTALL
Makefile.in
NEWS
README
TODO
aclocal.m4
aes-decrypt-internal.c
aes-decrypt.c
aes-encrypt-internal.c
aes-encrypt-table.c
aes-encrypt.c
aes-internal.h
aes-meta.c
aes-set-decrypt-key.c
aes-set-encrypt-key.c
aes.h
aesdata.c
arcfour-crypt.c
arcfour-meta.c
arcfour.c
arcfour.h
arctwo-meta.c
arctwo.c
arctwo.h
asm.m4
asn1.h
base16-decode.c
base16-encode.c
base16-meta.c
base16.h
base64-decode.c
base64-encode.c
base64-meta.c
base64.h
bignum-next-prime.c
bignum-random-prime.c
bignum-random.c
bignum.c
bignum.h
blowfish.c
blowfish.h
buffer-init.c
buffer.c
buffer.h
camellia-crypt-internal.c
camellia-crypt.c
camellia-internal.h
camellia-meta.c
camellia-set-decrypt-key.c
camellia-set-encrypt-key.c
camellia-table.c
camellia.h
cast128-meta.c
cast128.c
cast128.h
cast128_sboxes.h
cbc.c
cbc.h
config.guess
config.h.in
config.m4.in
config.make.in
config.sub
configure
configure.ac
ctr.c
ctr.h
der-iterator.c
der2dsa.c
der2rsa.c
des-compat.c
des-compat.h
des.c
des.h
des3.c
desCode.h
descore.README
desdata.c
desinfo.h
dsa-keygen.c
dsa-sha1-sign.c
dsa-sha1-verify.c
dsa-sha256-sign.c
dsa-sha256-verify.c
dsa-sign.c
dsa-verify.c
dsa.c
dsa.h
dsa2sexp.c
gcm-aes.c
gcm.c
gcm.h
gcmdata.c
hmac-md5.c
hmac-ripemd160.c
hmac-sha1.c
hmac-sha224.c
hmac-sha256.c
hmac-sha384.c
hmac-sha512.c
hmac.c
hmac.h
hogweed.pc.in
install-sh
keymap.h
knuth-lfib.c
knuth-lfib.h
macros.h
md2-meta.c
md2.c
md2.h
md4-meta.c
md4.c
md4.h
md5-compat.c
md5-compat.h
md5-compress.c
md5-meta.c
md5.c
md5.h
memxor.c
memxor.h
nettle-internal.c
nettle-internal.h
nettle-meta-armors.c
nettle-meta-ciphers.c
nettle-meta-hashes.c
nettle-meta.h
nettle-types.h
nettle-write.h
nettle.html
nettle.info
nettle.pc.in
nettle.pdf
nettle.texinfo
pgp-encode.c
pgp.h
pkcs1-rsa-md5.c
pkcs1-rsa-sha1.c
pkcs1-rsa-sha256.c
pkcs1-rsa-sha512.c
pkcs1.c
pkcs1.h
prime-list.h
realloc.c
realloc.h
ripemd160-compress.c
ripemd160-meta.c
ripemd160.c
ripemd160.h
rotors.h
rsa-compat.c
rsa-compat.h
rsa-decrypt.c
rsa-encrypt.c
rsa-keygen.c
rsa-md5-sign.c
rsa-md5-verify.c
rsa-sha1-sign.c
rsa-sha1-verify.c
rsa-sha256-sign.c
rsa-sha256-verify.c
rsa-sha512-sign.c
rsa-sha512-verify.c
rsa-sign.c
rsa-verify.c
rsa.c
rsa.h
rsa2openpgp.c
rsa2sexp.c
serpent-decrypt.c
serpent-encrypt.c
serpent-internal.h
serpent-meta.c
serpent-set-key.c
serpent.h
sexp-format.c
sexp-transport-format.c
sexp-transport.c
sexp.c
sexp.h
sexp2bignum.c
sexp2dsa.c
sexp2rsa.c
sha-example.c
sha.h
sha1-compress.c
sha1-meta.c
sha1.c
sha224-meta.c
sha256-compress.c
sha256-meta.c
sha256.c
sha384-meta.c
sha512-compress.c
sha512-meta.c
sha512.c
shadata.c
stamp-h.in
texinfo.tex
twofish-meta.c
twofish.c
twofish.h
write-be32.c
write-le32.c
yarrow.h
yarrow256.c
yarrow_key_event.c

README

What is Nettle? A quote from the introduction in the Nettle Manual:

  Nettle is a cryptographic library that is designed to fit easily in more
  or less any context: In crypto toolkits for object-oriented languages
  (C++, Python, Pike, ...), in applications like LSH or GNUPG, or even in
  kernel space. In most contexts, you need more than the basic
  cryptographic algorithms, you also need some way to keep track of available
  algorithms, their properties and variants. You often have some algorithm
  selection process, often dictated by a protocol you want to implement.
  
  And as the requirements of applications differ in subtle and not so
  subtle ways, an API that fits one application well can be a pain to use
  in a different context. And that is why there are so many different
  cryptographic libraries around.
  
  Nettle tries to avoid this problem by doing one thing, the low-level
  crypto stuff, and providing a simple but general interface to it.
  In particular, Nettle doesn't do algorithm selection. It doesn't do
  memory allocation. It doesn't do any I/O.
  
  The idea is that one can build several application and context specific
  interfaces on top of Nettle, and share the code, test cases, benchmarks,
  documentation, etc. Examples are the Nettle module for the Pike
  language, and LSH, which both use an object-oriented abstraction on top
  of the library.

Nettle is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the Free
Software Foundation. See the file COPYING.LIB for details.

Build nettle with the usual ./configure && make && make check && make
install. Read the manual. Mail me if you have any questions or
suggestions.

You can also build Nettle from cvs, see
http://www.lysator.liu.se/~nisse/nettle/ for current instructions.

You may want to subscribe to the nettle-bugs mailing list. See
<URL: http://lists.lysator.liu.se/mailman/listinfo/nettle-bugs>.


Happy hacking,
/Niels Möller <nisse@lysator.liu.se>