N

nettle

Nettle is a low-level 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.

Name Last Update
arm Loading commit data...
examples Loading commit data...
misc Loading commit data...
sparc32 Loading commit data...
sparc64 Loading commit data...
testsuite Loading commit data...
tools Loading commit data...
x86 Loading commit data...
x86_64 Loading commit data...
.bootstrap Loading commit data...
.c-style Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
COPYING.LESSERv3 Loading commit data...
COPYINGv2 Loading commit data...
COPYINGv3 Loading commit data...
ChangeLog Loading commit data...
INSTALL Loading commit data...
Makefile.in Loading commit data...
NEWS Loading commit data...
README Loading commit data...
TODO Loading commit data...
aclocal.m4 Loading commit data...
aes-decrypt-internal.c Loading commit data...
aes-decrypt.c Loading commit data...
aes-encrypt-internal.c Loading commit data...
aes-encrypt-table.c Loading commit data...
aes-encrypt.c Loading commit data...
aes-internal.h Loading commit data...
aes-invert-internal.c Loading commit data...
aes-set-decrypt-key.c Loading commit data...
aes-set-encrypt-key.c Loading commit data...
aes-set-key-internal.c Loading commit data...
aes.h Loading commit data...
aes128-meta.c Loading commit data...
aes128-set-decrypt-key.c Loading commit data...
aes128-set-encrypt-key.c Loading commit data...
aes192-meta.c Loading commit data...
aes192-set-decrypt-key.c Loading commit data...
aes192-set-encrypt-key.c Loading commit data...
aes256-meta.c Loading commit data...
aes256-set-decrypt-key.c Loading commit data...
aes256-set-encrypt-key.c Loading commit data...
aesdata.c Loading commit data...
arcfour-crypt.c Loading commit data...
arcfour.c Loading commit data...
arcfour.h Loading commit data...
arctwo-meta.c Loading commit data...
arctwo.c Loading commit data...
arctwo.h Loading commit data...
asm.m4 Loading commit data...
asn1.h Loading commit data...
base16-decode.c Loading commit data...
base16-encode.c Loading commit data...
base16-meta.c Loading commit data...
base16.h Loading commit data...
base64-decode.c Loading commit data...
base64-encode.c Loading commit data...
base64-meta.c Loading commit data...
base64.h Loading commit data...
base64url-decode.c Loading commit data...
base64url-encode.c Loading commit data...
base64url-meta.c Loading commit data...
bignum-random-prime.c Loading commit data...
bignum-random.c Loading commit data...
bignum.c Loading commit data...
bignum.h Loading commit data...
blowfish.c Loading commit data...
blowfish.h Loading commit data...
buffer-init.c Loading commit data...
buffer.c Loading commit data...
buffer.h Loading commit data...
camellia-absorb.c Loading commit data...
camellia-crypt-internal.c Loading commit data...
camellia-internal.h Loading commit data...
camellia-invert-key.c Loading commit data...
camellia-table.c Loading commit data...
camellia.h Loading commit data...
camellia128-crypt.c Loading commit data...
camellia128-meta.c Loading commit data...
camellia128-set-decrypt-key.c Loading commit data...
camellia128-set-encrypt-key.c Loading commit data...
camellia192-meta.c Loading commit data...
camellia256-crypt.c Loading commit data...
camellia256-meta.c Loading commit data...
camellia256-set-decrypt-key.c Loading commit data...
camellia256-set-encrypt-key.c Loading commit data...
cast128-meta.c Loading commit data...
cast128.c Loading commit data...
cast128.h Loading commit data...
cast128_sboxes.h Loading commit data...
cbc.c Loading commit data...
cbc.h Loading commit data...
ccm-aes128.c Loading commit data...
ccm-aes192.c Loading commit data...
ccm-aes256.c Loading commit data...
ccm.c Loading commit data...
ccm.h Loading commit data...
chacha-core-internal.c Loading commit data...
chacha-crypt.c Loading commit data...
chacha-poly1305-meta.c Loading commit data...
chacha-poly1305.c Loading commit data...
chacha-poly1305.h Loading commit data...
chacha-set-key.c Loading commit data...
chacha-set-nonce.c Loading commit data...
chacha.h Loading commit data...
cnd-copy.c Loading commit data...
config.guess Loading commit data...
config.m4.in Loading commit data...
config.make.in Loading commit data...
config.sub Loading commit data...
configure.ac Loading commit data...
ctr.c Loading commit data...
ctr.h Loading commit data...
curve25519-eh-to-x.c Loading commit data...
curve25519-mul-g.c Loading commit data...
curve25519-mul.c Loading commit data...
curve25519.h Loading commit data...
der-iterator.c Loading commit data...
der2dsa.c Loading commit data...
der2rsa.c Loading commit data...
des-compat.c Loading commit data...
des-compat.h Loading commit data...
des.c Loading commit data...
des.h Loading commit data...
des3.c Loading commit data...
desCode.h Loading commit data...
descore.README Loading commit data...
desdata.c Loading commit data...
desinfo.h Loading commit data...
dsa-compat-keygen.c Loading commit data...
dsa-compat.c Loading commit data...
dsa-compat.h Loading commit data...
dsa-gen-params.c Loading commit data...
dsa-hash.c Loading commit data...
dsa-keygen.c Loading commit data...
dsa-sha1-sign.c Loading commit data...
dsa-sha1-verify.c Loading commit data...
dsa-sha256-sign.c Loading commit data...
dsa-sha256-verify.c Loading commit data...
dsa-sign.c Loading commit data...
dsa-verify.c Loading commit data...
dsa.c Loading commit data...
dsa.h Loading commit data...
dsa2sexp.c Loading commit data...
eax-aes128-meta.c Loading commit data...
eax-aes128.c Loading commit data...
eax.c Loading commit data...
eax.h Loading commit data...
ecc-192.c Loading commit data...
ecc-224.c Loading commit data...
ecc-25519.c Loading commit data...
ecc-256.c Loading commit data...
ecc-384.c Loading commit data...
ecc-521.c Loading commit data...
ecc-a-to-j.c Loading commit data...
ecc-add-eh.c Loading commit data...
ecc-add-ehh.c Loading commit data...
ecc-add-jja.c Loading commit data...
ecc-add-jjj.c Loading commit data...
ecc-curve.h Loading commit data...
ecc-dup-eh.c Loading commit data...
ecc-dup-jj.c Loading commit data...
ecc-ecdsa-sign.c Loading commit data...
ecc-ecdsa-verify.c Loading commit data...
ecc-eh-to-a.c Loading commit data...
ecc-hash.c Loading commit data...
ecc-internal.h Loading commit data...
ecc-j-to-a.c Loading commit data...
ecc-mod-arith.c Loading commit data...
ecc-mod-inv.c Loading commit data...
ecc-mod.c Loading commit data...
ecc-mul-a-eh.c Loading commit data...
ecc-mul-a.c Loading commit data...
ecc-mul-g-eh.c Loading commit data...
ecc-mul-g.c Loading commit data...
ecc-pm1-redc.c Loading commit data...
ecc-point-mul-g.c Loading commit data...
ecc-point-mul.c Loading commit data...
ecc-point.c Loading commit data...
ecc-pp1-redc.c Loading commit data...
ecc-random.c Loading commit data...
ecc-scalar.c Loading commit data...
ecc-size.c Loading commit data...
ecc.h Loading commit data...
eccdata.c Loading commit data...
ecdsa-keygen.c Loading commit data...
ecdsa-sign.c Loading commit data...
ecdsa-verify.c Loading commit data...
ecdsa.h Loading commit data...
ed25519-sha512-pubkey.c Loading commit data...
ed25519-sha512-sign.c Loading commit data...
ed25519-sha512-verify.c Loading commit data...
eddsa-compress.c Loading commit data...
eddsa-decompress.c Loading commit data...
eddsa-expand.c Loading commit data...
eddsa-hash.c Loading commit data...
eddsa-pubkey.c Loading commit data...
eddsa-sign.c Loading commit data...
eddsa-verify.c Loading commit data...
eddsa.h Loading commit data...
fat-arm.c Loading commit data...
fat-setup.h Loading commit data...
fat-x86_64.c Loading commit data...
gcm-aes.c Loading commit data...
gcm-aes128-meta.c Loading commit data...
gcm-aes128.c Loading commit data...
gcm-aes192-meta.c Loading commit data...
gcm-aes192.c Loading commit data...
gcm-aes256-meta.c Loading commit data...
gcm-aes256.c Loading commit data...
gcm-camellia128-meta.c Loading commit data...
gcm-camellia128.c Loading commit data...
gcm-camellia256-meta.c Loading commit data...
gcm-camellia256.c Loading commit data...
gcm.c Loading commit data...
gcm.h Loading commit data...
gcmdata.c Loading commit data...
getopt.c Loading commit data...
getopt.h Loading commit data...
getopt1.c Loading commit data...
getopt_int.h Loading commit data...
gmp-glue.c Loading commit data...
gmp-glue.h Loading commit data...
gosthash94-meta.c Loading commit data...
gosthash94.c Loading commit data...
gosthash94.h Loading commit data...
hmac-md5.c Loading commit data...
hmac-ripemd160.c Loading commit data...
hmac-sha1.c Loading commit data...
hmac-sha224.c Loading commit data...
hmac-sha256.c Loading commit data...
hmac-sha384.c Loading commit data...
hmac-sha512.c Loading commit data...
hmac.c Loading commit data...
hmac.h Loading commit data...
hogweed.pc.in Loading commit data...
index.html Loading commit data...
install-sh Loading commit data...
knuth-lfib.c Loading commit data...
knuth-lfib.h Loading commit data...
libhogweed.map.in Loading commit data...
libnettle.map.in Loading commit data...
list-obj-sizes.awk Loading commit data...
macros.h Loading commit data...
md2-meta.c Loading commit data...
md2.c Loading commit data...
md2.h Loading commit data...
md4-meta.c Loading commit data...
md4.c Loading commit data...
md4.h Loading commit data...
md5-compat.c Loading commit data...
md5-compat.h Loading commit data...
md5-compress.c Loading commit data...
md5-meta.c Loading commit data...
md5.c Loading commit data...
md5.h Loading commit data...
memeql-sec.c Loading commit data...
memops.h Loading commit data...
memxor-internal.h Loading commit data...
memxor.c Loading commit data...
memxor.h Loading commit data...
memxor3.c Loading commit data...
mini-gmp.c Loading commit data...
mini-gmp.h Loading commit data...
nettle-internal.c Loading commit data...
nettle-internal.h Loading commit data...
nettle-meta-aeads.c Loading commit data...
nettle-meta-armors.c Loading commit data...
nettle-meta-ciphers.c Loading commit data...
nettle-meta-hashes.c Loading commit data...
nettle-meta.h Loading commit data...
nettle-types.h Loading commit data...
nettle-write.h Loading commit data...
nettle.pc.in Loading commit data...
nettle.texinfo Loading commit data...
pbkdf2-hmac-sha1.c Loading commit data...
pbkdf2-hmac-sha256.c Loading commit data...
pbkdf2.c Loading commit data...
pbkdf2.h Loading commit data...
pgp-encode.c Loading commit data...
pgp.h Loading commit data...
pkcs1-decrypt.c Loading commit data...
pkcs1-encrypt.c Loading commit data...
pkcs1-rsa-digest.c Loading commit data...
pkcs1-rsa-md5.c Loading commit data...
pkcs1-rsa-sha1.c Loading commit data...
pkcs1-rsa-sha256.c Loading commit data...
pkcs1-rsa-sha512.c Loading commit data...
pkcs1.c Loading commit data...
pkcs1.h Loading commit data...
poly1305-aes.c Loading commit data...
poly1305-internal.c Loading commit data...
poly1305.h Loading commit data...
pss-mgf1.c Loading commit data...
pss-mgf1.h Loading commit data...
pss.c Loading commit data...
pss.h Loading commit data...
realloc.c Loading commit data...
realloc.h Loading commit data...
ripemd160-compress.c Loading commit data...
ripemd160-meta.c Loading commit data...
ripemd160.c Loading commit data...
ripemd160.h Loading commit data...
rsa-blind.c Loading commit data...
rsa-decrypt-tr.c Loading commit data...
rsa-decrypt.c Loading commit data...
rsa-encrypt.c Loading commit data...
rsa-keygen.c Loading commit data...
rsa-md5-sign-tr.c Loading commit data...
rsa-md5-sign.c Loading commit data...
rsa-md5-verify.c Loading commit data...
rsa-pkcs1-sign-tr.c Loading commit data...
rsa-pkcs1-sign.c Loading commit data...
rsa-pkcs1-verify.c Loading commit data...
rsa-pss-sha256-sign-tr.c Loading commit data...
rsa-pss-sha256-verify.c Loading commit data...
rsa-pss-sha512-sign-tr.c Loading commit data...
rsa-pss-sha512-verify.c Loading commit data...
rsa-sha1-sign-tr.c Loading commit data...
rsa-sha1-sign.c Loading commit data...
rsa-sha1-verify.c Loading commit data...
rsa-sha256-sign-tr.c Loading commit data...
rsa-sha256-sign.c Loading commit data...
rsa-sha256-verify.c Loading commit data...
rsa-sha512-sign-tr.c Loading commit data...
rsa-sha512-sign.c Loading commit data...
rsa-sha512-verify.c Loading commit data...
rsa-sign-tr.c Loading commit data...
rsa-sign.c Loading commit data...
rsa-verify.c Loading commit data...
rsa.c Loading commit data...
rsa.h Loading commit data...
rsa2openpgp.c Loading commit data...
rsa2sexp.c Loading commit data...
run-tests Loading commit data...
salsa20-128-set-key.c Loading commit data...
salsa20-256-set-key.c Loading commit data...
salsa20-core-internal.c Loading commit data...
salsa20-crypt.c Loading commit data...
salsa20-set-key.c Loading commit data...
salsa20-set-nonce.c Loading commit data...
salsa20.h Loading commit data...
salsa20r12-crypt.c Loading commit data...
sec-add-1.c Loading commit data...
sec-sub-1.c Loading commit data...
sec-tabselect.c Loading commit data...
serpent-decrypt.c Loading commit data...
serpent-encrypt.c Loading commit data...
serpent-internal.h Loading commit data...
serpent-meta.c Loading commit data...
serpent-set-key.c Loading commit data...
serpent.h Loading commit data...
sexp-format.c Loading commit data...
sexp-transport-format.c Loading commit data...
sexp-transport.c Loading commit data...
sexp.c Loading commit data...
sexp.h Loading commit data...
sexp2bignum.c Loading commit data...
sexp2dsa.c Loading commit data...
sexp2rsa.c Loading commit data...
sha-example.c Loading commit data...
sha.h Loading commit data...
sha1-compress.c Loading commit data...
sha1-meta.c Loading commit data...
sha1.c Loading commit data...
sha1.h Loading commit data...
sha2.h Loading commit data...
sha224-meta.c Loading commit data...
sha256-compress.c Loading commit data...
sha256-meta.c Loading commit data...
sha256.c Loading commit data...
sha3-224-meta.c Loading commit data...
sha3-224.c Loading commit data...
sha3-256-meta.c Loading commit data...
sha3-256.c Loading commit data...
sha3-384-meta.c Loading commit data...
sha3-384.c Loading commit data...
sha3-512-meta.c Loading commit data...
sha3-512.c Loading commit data...
sha3-permute.c Loading commit data...
sha3.c Loading commit data...
sha3.h Loading commit data...
sha384-meta.c Loading commit data...
sha512-224-meta.c Loading commit data...
sha512-256-meta.c Loading commit data...
sha512-compress.c Loading commit data...
sha512-meta.c Loading commit data...
sha512.c Loading commit data...
shadata.c Loading commit data...
texinfo.tex Loading commit data...
twofish-meta.c Loading commit data...
twofish.c Loading commit data...
twofish.h Loading commit data...
twofishdata.c Loading commit data...
umac-l2.c Loading commit data...
umac-l3.c Loading commit data...
umac-nh-n.c Loading commit data...
umac-nh.c Loading commit data...
umac-poly128.c Loading commit data...
umac-poly64.c Loading commit data...
umac-set-key.c Loading commit data...
umac.h Loading commit data...
umac128.c Loading commit data...
umac32.c Loading commit data...
umac64.c Loading commit data...
umac96.c Loading commit data...
version.c Loading commit data...
version.h.in Loading commit data...
write-be32.c Loading commit data...
write-le32.c Loading commit data...
write-le64.c Loading commit data...
yarrow.h Loading commit data...
yarrow256.c Loading commit data...
yarrow_key_event.c Loading commit data...
What is GNU 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.

GNU Nettle is free software; you can redistribute it and/or modify it
under the terms contained in the files COPYING* (see the manual for
information on how these licenses apply).

If you have downloaded a Nettle release, build it with the usual
./configure && make && make check && make install (see the INSTALL
file for further instructions).

You can also get Nettle from git, see
http://www.lysator.liu.se/~nisse/nettle/ for current instructions. In
particular, you need to run the ./.bootstrap script after checkout and
before running ./configure.

Read the manual. Mail me if you have any questions or suggestions.

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

See CONTRIBUTING.md for information on contibuting patches.


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