-
Notifications
You must be signed in to change notification settings - Fork 183
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UUID version 5 support #1131
Comments
Does it really need to be any particular version? From an interoperability point of view, its essentially opaque identifier. There could be reasons for a particular kind of UUID (e.g. to avoid revealing information), but those are perhaps more aligned to be specified in a domain profile rather than in OSCAL. |
I would very much like to be able to encode i.e. a namespace, issuer, document and revision into the generated UUID. This allows to quickly identify changed or equal documents. As described in RFC4122, this requires a version 3 or 5 UUID. Since v3 uses a MD5 hash, the use of v5 would be preferable. |
You could also encode those using |
From RFC4122, the UUID versions are:
This leaves versions 4 and 5 as great candidates for use. I believe we should support both anywhere a UUID is allowed in OSCAL. |
I think the collision on MD5 is less relevant. There are known attacks against MD5, but the chance of an accidental collision is still very low. Its far more likely that someone will cut'n'paste a UUID (of any version) as part of a document header and forget to change it. I still think it would be easier to just drop the version part and let people use whatever works for them. It'll also be future proof (when we decide SHA-1 isn't enough for every purpose and there is a version 6 or 7. |
If a version 3 uuid is ok, then a version 5 uuid provides the same capability with less issues. @bradh Why not just use a version 5 uuid instead? |
I think we're at cross-purposes here. I'm completely supportive of having version 5 support. However if someone wants to generate version 3 (say because their tools don't do version 5), I don't see that hurts anything. Equally, if someone has a use for version 1 node+time basis, that is OK too. I struggle to come up with a use of version 2, but I don't think that a version 2 UUID is going to cause interoperability problems* if someone wanted to use it. It just seems unnecessary to restrict the version at the OSCAL core level. *If there is an interoperability problem with consumers checking the UUID structure, then version 5 is possibly also a problem, and this would need to be kicked to 2.x. I really don't see it happening though. |
…solves usnistgov/OSCAL#1132. Resolves usnistgov/OSCAL#1131. Resolves usnistgov/OSCAL#1003.
User Story:
As an OSCAL content creator, I'd like to use a version 5 UUID to generate a deterministic document level UUID in OSCAL. The current OSCAL UUID data type only allows a version 4 uuid to be used.
Goals:
Dependencies:
None.
Acceptance Criteria
{The items above are general acceptance criteria for all User Stories. Please describe anything else that must be completed for this issue to be considered resolved.}
The text was updated successfully, but these errors were encountered: