Nettle es una biblioteca criptográfica diseñada para adaptarse fácilmente a una amplia gama de herramientas y aplicaciones. Comenzó como una colección de funciones criptográficas de bajo nivel de lsh en 2001. [2] Desde junio de 2009 (versión 2.0) Nettle es un paquete GNU. [3]
Desde la versión 3, nettle proporciona el cifrado de bloque AES (un subconjunto de Rijndael) (con optimizaciones de ensamblaje para x86 y sparc), el cifrado de flujo ARCFOUR (también conocido como RC4) (con ensamblaje x86 y sparc), el cifrado de flujo ARCTWO (también conocido como RC2), BLOWFISH , CAMELLIA (con optimizaciones de ensamblaje x86 y x86_64), los cifrados de bloque CAST-128 , DES y 3DES , el cifrado de flujo ChaCha (con ensamblaje para x86_64), GOSTHASH94 , los compendios MD2 , MD4 y MD5 (con ensamblaje x86) , la función de derivación de clave PBKDF2 , los códigos de autenticación de mensajes POLY1305 (con ensamblaje para x86_64) y UMAC , RIPEMD160 , el cifrado de flujo Salsa20 (con ensamblaje para x86_64 y ARM), el cifrado de bloque SERPENT . cifrado (con ensamblaje para x86_64), SHA-1 (con ensamblaje para x86, x86_64 y ARM), los resúmenes SHA-2 (SHA-224, SHA-256, SHA-384 y SHA-512), SHA-3 (un subconjunto de la familia de resúmenes Keccak), el cifrado de bloques TWOFISH , los algoritmos de clave pública RSA , DSA y ECDSA , el pRNG de Yarrow . La versión 3.1 introdujo soporte para operaciones Curve25519 y EdDSA . [4] Los algoritmos de clave pública utilizan GMP . [5]
Nettle es utilizado por GnuTLS .
Una API que se adapta bien a una aplicación puede no funcionar bien en un contexto diferente, lo que da lugar a una proliferación de bibliotecas criptográficas diseñadas para aplicaciones particulares. Nettle es un intento de evitar este problema haciendo una cosa (la criptografía de bajo nivel) y proporcionando una interfaz simple y general para ella. En particular, Nettle no realiza selección de algoritmos, asignación de memoria ni ninguna E/S. Por lo tanto, Nettle pretende proporcionar una biblioteca criptográfica básica sobre la que se puedan construir numerosas interfaces específicas para aplicaciones y contextos. El código, los casos de prueba, los puntos de referencia, la documentación, etc. de estas interfaces se pueden compartir sin tener que replicar el código criptográfico de Nettle. [6]
Nettle se encuentra bajo una licencia dual que comprende la Licencia Pública General GNU versión 2 o posterior y la Licencia Pública General Reducida GNU versión 3 o posterior. Algunos archivos individuales están licenciados bajo licencias más permisivas o en el dominio público . Los avisos de copyright en la parte superior de los archivos fuente de la biblioteca definen con precisión el estado de la licencia de archivos particulares. [7]
El manual de Nettle "es de dominio público" y puede usarse y reproducirse libremente. [8]