libmd(7)
π libmd β Message Digest functions from BSD systems π
okay bestie, sit DOWN, because this one is literally the glue holding a bunch of BSD-flavored crypto code together, and you're gonna love her.
β¨ NAME β¨
libmd β Message Digest functions from BSD systems, and she's serving compatibility, she's serving portability, she's serving range. π
πΈ DESCRIPTION πΈ
so like, the libmd library hands you all the message digest functions that BSD systems just have β either chilling in their libc or hanging out in their own libmd libraries β and which other systems (looking at you, GNU systems π) are justβ¦ missing. the whole point? making it easier to port projects with strong BSD origins without needing to embed the exact same code over and over again in every single project. not me copy-pasting my own homework forty times, no ma'am, we are DONE with that era. π«Ά
the library also provides a compatibility interface for the Aladding Enterprises MD5 implementation β but here's the tea: that interface is NOT exposed by default, specifically to avoid polluting the namespace. we're tidy in this house. β¨ to actually get at it, you need to define the LIBMD_MD5_ALADDIN pre-processor variable. that's the unlock code, bestie. π
also!! the library provides a pkgconf(1) entry named libmd. so if you're out here fighting with build flags, pkgconf has you. iykyk. π
π₯ ALGORITHMS π₯
the library supports the following message digest algorithms β and it's a whole roster, she's stacked:
MD2MD4MD5RIPEMD-160SHA-1SHA-2(SHA-224,SHA-256,SHA-384,SHA-512/224,SHA-512/256,SHA-512)SHA-3(SHA3-224,SHA3-256,SHA3-384,SHA3-512,SHAKE-128,SHAKE-256)
not a single one missing. we ate. π
π HEADERS π
the libmd library provides compatibility with various BSD headers and interfaces, so no matter which BSD your code escaped from, there's a little home for it here. π
π Compatibility with NetBSD and OpenBSD
these following headers are provided for compatibility with NetBSD and OpenBSD:
<md2.h><md4.h><md5.h><rmd160.h><sha1.h><sha2.h>
π¦ Compatibility with NetBSD
this following header is provided for compatibility with NetBSD:
<sha3.h>
β Compatibility with FreeBSD and DragonFly
these following headers are provided for compatibility with FreeBSD and DragonFly:
<ripemd.h><sha.h><sha256.h><sha512.h>
π SEE ALSO π
go read these next, bestie, they're the main characters of this whole situation:
π HISTORY π
okay storytime, because the lore here is genuinely iconic. πβ¨
the libmd project started in the Debian GNU/kFreeBSD port as part of the libbsd library, as a way to ease porting code from FreeBSD to the GNU-based system. she was born out of necessity, a true humble beginnings arc. π₯Ή
then β glow up β it was subsequently split into a project created on Hadrons.Org (mirrored on FreeDesktop.Org) for other distributions and projects to use, and further extended to match the other BSD interfaces. she said "i'm not just one distro's girl, i'm everyone's girl." π
and now? it is now distributed as part of most non-BSD distributions. periodt. she made it. π
and that's the whole vibe, bestie π β this one came to us from Debian, dated Jul 11, 2022, and it's still out here carrying BSD message digests across the whole ecosystem. mwah, no notes. πβ¨
π¦ where this page comes from
- arch rolling: libmd 1.3.0-1 Β· BSD-3-Clause AND BSD-2-Clause AND ISC AND Beerware AND CC-PDM-1.0
- epel 10: libmd 1.3.0-1.el10_3 Β· BSD-2-Clause AND BSD-3-Clause AND ISC AND Beerware AND LicenseRef-Fedora-Public-Domain
- epel 9: libmd 1.3.0-1.el9 Β· BSD-2-Clause AND BSD-3-Clause AND ISC AND Beerware AND LicenseRef-Fedora-Public-Domain
- fedora 43: libmd 1.3.0-1.fc43 Β· BSD-2-Clause AND BSD-3-Clause AND ISC AND Beerware AND LicenseRef-Fedora-Public-Domain
- fedora 43: libmd 1.3.0-1.fc43 Β· BSD-2-Clause AND BSD-3-Clause AND ISC AND Beerware AND LicenseRef-Fedora-Public-Domain
- fedora 44: libmd 1.3.0-1.fc44 Β· BSD-2-Clause AND BSD-3-Clause AND ISC AND Beerware AND LicenseRef-Fedora-Public-Domain
- fedora 44: libmd 1.3.0-1.fc44 Β· BSD-2-Clause AND BSD-3-Clause AND ISC AND Beerware AND LicenseRef-Fedora-Public-Domain
- nixpkgs unstable: libmd 1.3.0
- Copyright Β© 2021-2022 Guillem Jover <guillem@hadrons.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms