Skip to content
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

Ordering of subtypes and query string parameters in URI form #4

Closed
adrianhopebailie opened this issue Jan 9, 2017 · 7 comments
Closed

Comments

@adrianhopebailie
Copy link
Contributor

The URI form of conditions should probably define some rules for determining equality. A direct string comparison is not appropriate because there are no rules that define the order of URI query strings nor the order of the subtypes.

The RFC should be explicit that URI normalization and comparison follow the rules as defined in RFC 3986 and the tests should folllow these rules for testing too

@justmoon
Copy link
Contributor

justmoon commented Jan 9, 2017

I'd prefer having a standard canonicalization, so that you can just string compare. That way you can also use it as an index.

Although I'm starting to think it would be better to just index it using the DER which is already canonical.

@adrianhopebailie
Copy link
Contributor Author

Although I'm starting to think it would be better to just index it using the DER which is already canonical.

+1 - URI comparisons is already well defined, I'd prefer to leverage it rather than force people to treat the URI as a string.

We may find that has advantages in future

@adrianhopebailie
Copy link
Contributor Author

There is no standard for arrays as query string parameter values. We have gone with a comma separated list for the subtypes parameter which means we should either define a strict ordering or say that ordering must be ignored when comparing.

@adrianhopebailie
Copy link
Contributor Author

I propose a strict ordering to allow for string based matching on query string parameters which would work for any generic URI matching algorithms

sappenin added a commit to sappenin/crypto-conditions that referenced this issue Jul 22, 2017
* Changes in crypto-conditions.md:
  * Clarify ordering of all parameters in condition URIs
  * Add examples for parameter ordering in condition URIs
  * Fix broken parser values in author’s portion of “NIST - Recommendation for Key Management”
  * Add special formatting to URI parameter names like `fmt` and `cost`, etc.
* Changes in README.md
  * Fix typo in grunt kramdown command.
@sappenin
Copy link
Collaborator

sappenin commented Jul 22, 2017

I have created a PR (#25) that further clarifies the canonical ordering that we all seem to have agreed upon in this issue, including the ordering of subtype values as well as the ordering of all query-params in the URI.

@sappenin
Copy link
Collaborator

sappenin commented Aug 5, 2017

Bump...

sappenin added a commit to interledger-deprecated/java-crypto-conditions that referenced this issue Aug 12, 2017
* Fixes test vectors to accomadate (rfcs/crypto-conditions#4)
* Adds improved test coverage for RFC test vectors.
@adrianhopebailie
Copy link
Contributor Author

Resolved in #25

sappenin added a commit to interledger-deprecated/java-crypto-conditions that referenced this issue Sep 19, 2017
* Fix Build Tests
* Remove gradle in favor of maven.
* Update pom for Nexus staging and deploy.
* Fix test coverage and artifact generation.
* Fix Checkstyle checks.
* Remove HexDump.java
* Update README
* Add new Tests and Test Vectors
* Fixes test vectors to accomadate (rfcs/crypto-conditions#4)
* Adds improved test coverage for RFC test vectors.
* Fix URI ordering for test vector
* Update guava
* Improve ignored threshold test.
* Made all Conditions Immutable.
* Made all Fulfillments Immutable.
* Extracted encoding and URI generation to classes external to main Condition and Fulfillment classes.
* Misc formatting improvements.
* Add and cleanuip Javadoc
* Update all fulfillments to be immutable
* Limit Guava to test scope only…
* Enable paremeterized RSA signature tests
* Introduce Base Fulfillment
* Fix equals, hashcode, and toString for all fulfillments.
* Remove TODOs
* Fix Checkstyle Errors
* Reduce the number of default threads for test purposes
sappenin added a commit that referenced this issue Sep 26, 2017
* Fixes #4 (Ordering of subtypes and query string parameters).
* Fix various typos.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants