mirror of
https://github.com/Stichting-MINIX-Research-Foundation/pkgsrc-ng.git
synced 2025-08-03 09:48:00 -04:00
24 lines
1.3 KiB
Plaintext
24 lines
1.3 KiB
Plaintext
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.
|