-
Notifications
You must be signed in to change notification settings - Fork 190
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
Profile Resolution Specification for Back-Matter Resources Only with rlinks? #1140
Comments
The As an alternative to permitting it as an option, we might consider forbidding it. It also raises a wide range of issues e.g. regarding character encodings of text-based resources (such as XML or JSON) represented in Base64. |
Profiles carrying entire Catalogs in Base64 to then import into itself does go against the intended usage pattern, but shouldn't be strictly prohibited IMO Suggestion: Change the requirement to "IF an RLink is present, it MUST be used to resolve it, otherwise do what you want" |
@stephenbanghart The model allows both rlinks [0-∞] and base64 [0-1] to appear. There is a Metaschema constraint that requires at least one of the two appear. This means that you can have either or both in a given resource. The Profile resolution spec should have well-defined behavior for utilizing any rlink or the base64 entry. In the case of the rlink, an HTTP client request can be made to retrieve a byte stream to retrieve the resource. In the base64 case, the byte stream can be generated by decoding the base64 content based on the algorithm defined in RFC 4648. Decoding of a base64 resource would also follow this RFC. The decoded base64 text MUST be considered a byte stream, just like a resolved rlink. If the implementation cannot parse either resulting byte stream, it MUST produce an error. |
Given "If the implementation cannot parse either resulting byte stream, it MUST produce an error." , I'll make a suggestion. Both of the The |
Given "If the implementation cannot parse either resulting byte stream, it MUST produce an error." , I'll make a suggestion. i think more rigorous statements are warranted. As stipulated, there can be 0-∞ In the absence of either, no "parse inability" can occur. If one or more When only In the unlikely event anyone actually is bold enough to use Since the overall paragraph mentions "retrieval" (of an |
Describe the bug
The current draft of the profile resolution spec in #1089 (and currently published on the website, before the #1089 PR) suggest that given an internal reference to a resource in the
profile
'simport
@href
, the specification states that it resolveback-matter
resource
withrlink
@href
s, but it is impliedbase64
(and its@filename
) can be ignored.OSCAL/src/specifications/profile-resolution/profile-resolution-specml.xml
Lines 289 to 316 in 7e0ec36
Who is the bug affecting?
Developers who implement a profile resolver.
What is affected by this bug?
Whether or not to properly resolve an internal reference to imports with
base64
only elements.When does this occur?
Consistently, if literally following the specification to make a conformant profile resolver.
How do we replicate the issue?
resource
with abase64
element.Expected behavior (i.e. solution)
Unclear, depends on what we decide for the specification. 🙃
Other Comments
I reviewed the spec when developing oscal-compass/compliance-trestle#1023 for oscal-compass/compliance-trestle#1019.
The text was updated successfully, but these errors were encountered: