Manticore is the Go library of offensive and defensive security primitives that underpins the tools built by The Manticore Project. This v1.0.1 release is a round of minor improvements: no new tool, no breaking change, just rounding out two areas of the library that the tools lean on the most. In this release I focused on the UUID package and the LDAP package.
UUID generation
Identifiers turn up everywhere in security tooling. Active Directory objects, RPC interface bindings, and many Windows structures are addressed by UUIDs, and when you build or test against those systems you frequently need to generate identifiers of a specific version rather than just a random one. A library that only produces UUID v4 leaves you reaching for handwritten byte-twiddling whenever a particular version is required.
This release fills in the missing versions. I implemented UUID v1 (the time-and-node based variant), UUID v2 (the DCE Security variant, which was also a fix for a tracked issue), and UUID v8 (the custom, application-defined layout introduced in the newer specification). I also went back over the v2 implementation and improved it after the initial pass. Having v1, v2, v4, and v8 generation available from a single package means the rest of Manticore, and the tools sitting on top of it, can produce identifiers that match exactly what a given protocol or service expects.
LDAP improvements
The LDAP package is one of the most heavily used parts of Manticore: every tool that authenticates to and queries Active Directory goes through it. Two changes here make it easier and safer to work with.
First, I improved the documentation and the LDAP functions themselves. Clearer documentation on a shared package directly reduces the chance of misusing it across the many tools that depend on it, which matters when those tools are writing changes back to a live directory.
Second, I improved the OverwriteAttributeValues() modify helper. Overwriting attribute values is one of the more consequential LDAP operations (it is the mechanism behind setting delegation attributes, SPNs, and other security-relevant fields), so making this helper more reliable improves the tools that perform those modifications.