|
2 | 2 | coding: utf-8
|
3 | 3 |
|
4 | 4 | title: Crypto-Conditions
|
5 |
| -docname: draft-thomas-crypto-conditions-02 |
| 5 | +docname: draft-thomas-crypto-conditions-03 |
6 | 6 | category: std
|
7 | 7 |
|
8 | 8 | pi: [toc, sortrefs, symrefs, comments]
|
@@ -50,6 +50,7 @@ author:
|
50 | 50 | uri: https://www.ripple.com
|
51 | 51 |
|
52 | 52 | normative:
|
| 53 | + RFC3986: |
53 | 54 | RFC3280:
|
54 | 55 | RFC4055:
|
55 | 56 | RFC4648:
|
@@ -173,7 +174,7 @@ Each condition type uses one or more cryptographic primitives such as digest or
|
173 | 174 | To verify that a given implementation can verify a fulfillment for a given condition, implementations MUST ensure they are able to validate fulfillments of all types indicated in the subtypes field of a compound condition. If an implementation encounters an unknown type it MUST reject the condition as it will almost certainly be unable to validate the fulfillment.
|
174 | 175 |
|
175 | 176 | ## Multi-Signature
|
176 |
| -Crypto-conditions can abstract away many of the details of multi-sign. When a party provides a condition, other parties can treat it opaquely and do not need to know about its internal structure. That allows parties to define arbitrary multi-signature setups without breaking compatibility. That said, it is important that implementations must inspect the ypes and subtypes of any crypto-conditions they encounter to ensure they do not pass on a condition they will not be able to verify at a later stage. |
| 177 | +Crypto-conditions can abstract away many of the details of multi-sign. When a party provides a condition, other parties can treat it opaquely and do not need to know about its internal structure. That allows parties to define arbitrary multi-signature setups without breaking compatibility. That said, it is important that implementations must inspect the types and subtypes of any crypto-conditions they encounter to ensure they do not pass on a condition they will not be able to verify at a later stage. |
177 | 178 |
|
178 | 179 | In many instances protocol designers can use crypto-conditions as a drop-in replacement for public key signature algorithms and add multi-signature support to their protocols without adding any additional complexity.
|
179 | 180 |
|
@@ -866,7 +867,13 @@ The cost parameter is the cost of the condition that is represented by the URI.
|
866 | 867 |
|
867 | 868 | ### Parameter: Subtypes (subtypes)
|
868 | 869 |
|
869 |
| -The subtypes parameter indicates the types of conditions that are subtypes of the condition represented by the URI. The value MUST be a comma seperated list of names from the [Crypto-Condition Type Registry](#crypto-conditions-type-registry) and SHOULD not include the type of the root crypto-condition. i.e. The value of the fpt parameter should not appear in the list of types provided as the value of the subtypes parameter. |
| 870 | +The subtypes parameter indicates the types of conditions that are subtypes of the condition represented by the URI. The value MUST be a comma seperated list of names from the [Crypto-Condition Type Registry](#crypto-conditions-type-registry). |
| 871 | + |
| 872 | +The list MUST exclude the type of the root crypto-condition. i.e. The value of the fpt parameter should not appear in the list of types provided as the value of the subtypes parameter. |
| 873 | + |
| 874 | +The list MUST be ordered by the type id value of each type, in ascending order. i.e. preimage-sha-256 MUST appear before prefix-sha-256. |
| 875 | + |
| 876 | +The commas in the list should be treated as reserved characters per [RFC3986](#RFC3986)and not be percent encoded when used as list delimiters in the subtypes parameter. |
870 | 877 |
|
871 | 878 | # Example Condition
|
872 | 879 |
|
|
0 commit comments