{"schema_version":1,"metadata":{"branch":"current","release":"7.9","architecture":"amd64","generated_at":"2026-09-09T04:04:41.004595+00:00","source_url":"https://cdn.openbsd.org/pub/OpenBSD/snapshots/packages/amd64/sqlports-7.55.tgz","source_sha256":"fcdbba1b9df747882aa9bab4af20ebec8dac10655069c90f1cd4145c06e1235e","package_count":12031,"source_kind":"sqlports"},"package":{"name":"nettle-4.0p0","path":"security/nettle","url":"/packages/current/security/nettle/","comment":"cryptographic library","homepage":"http://www.lysator.liu.se/~nisse/nettle/","maintainer":"Antoine Jacoutot <ajacoutot@openbsd.org>","description":"Nettle is a cryptographic library that is designed to fit easily in more\nor less any context: In crypto toolkits for object-oriented languages\n(C++, Python, Pike, ...), in applications like LSH or GNUPG, or even in\nkernel space. In most contexts, you need more than the basic\ncryptographic algorithms, you also need some way to keep track of\navailable algorithms, their properties and variants. You often have some\nalgorithm selection process, often dictated by a protocol you want to\nimplement.\n\nAnd as the requirements of applications differ in subtle and not so\nsubtle ways, an API that fits one application well can be a pain to use\nin a different context. And that is why there are so many different\ncryptographic libraries around.\n\nNettle tries to avoid this problem by doing one thing, the low-level\ncrypto stuff, and providing a simple but general interface to it.\nIn particular, Nettle doesn't do algorithm selection. It doesn't do\nmemory allocation. It doesn't do any I/O.\n\nThe idea is that one can build several application and context specific\ninterfaces on top of Nettle, and share the code, test cases, benchmarks,\ndocumentation, etc. Examples are the Nettle module for the Pike\nlanguage, and LSH, which both use an object-oriented abstraction on top\nof the library.\n","package_architecture":"amd64","stem":"nettle","readme":null,"dependencies":[{"path":"devel/gmp","type":"library","package_spec":"","url":"/packages/current/devel/gmp/"},{"path":"devel/metaauto","type":"build","package_spec":"","url":"/packages/current/devel/metaauto/"},{"path":"devel/autoconf/2.72","type":"build","package_spec":"","url":"/packages/current/devel/autoconf/2.72/"},{"path":"devel/gmake","type":"build","package_spec":"","url":"/packages/current/devel/gmake/"},{"path":"devel/dwz","type":"build","package_spec":"","url":"/packages/current/devel/dwz/"}],"reverse_dependencies":{"count":11,"url":"/packages/data/61/6115dd18b0bd4cfb4b07b3ca6daef40d2bc050c74a80beedf6176fa00e15ebce.json"},"categories":["security","devel"],"flavors":[],"only_for_architectures":["aarch64","amd64","arm","i386","mips64","mips64el","powerpc","powerpc64","riscv64","sparc64","alpha","hppa"],"not_for_architectures":[]}}
