From 71fe7f9bb0b597990dee5cf5257a70324a140fb8 Mon Sep 17 00:00:00 2001
From: Manu Sporny
A proof that describes its purpose helps prevent it from being misused for some
-other purpose.
+other purpose. [=Proof purposes=] enable [=verifiers=] to know the
+intent of the creator of a proof so a message cannot be accidentally abused for
+another purpose. For example, a message signed for the purpose of merely making an
+assertion (perhaps intended to be widely shared) being abused as a
+message to authenticate to a service or take some action (such as invoking a
+capability to do something).
-Add a mention of JWK's `key_ops` parameter and WebCrypto's
-`KeyUsage` restrictions; explain that Proof Purpose serves a
-different goal and allows for finer-grained restrictions.
-
+It is important to note that [=proof purposes=] are a different mechanism from
+the `key_ops` restrictions in [[[?RFC7517]]], the `KeyUsage` restriction in the
+[[[?WEBCRYPTOAPI]]] and the [[[?RFC5280]]]. [=Proof purposes=] are expressions
+on why a [=proof=] was created and its intended domain of usage whereas the
+other mechanisms mentioned are intended to limit what a private key can be used
+to do. A [=proof purpose=] "travels" with the [=proof=] while a key restriction
+does not.
@@ -1077,39 +1078,34 @@ Proof Purposes
-Dave Longley suggested that proof purposes enable verifiers to know what the
-proof creator's intent was so the message can't be accidentally abused for
-another purpose, e.g., a message signed for the purpose of merely making an
-assertion (and thus perhaps intended to be widely shared) being abused as a
-message to authenticate to a service or take some action (invoke a capability).
-It's a goal to keep the number of them limited to as few categories as are
-really needed to accomplish this goal.
+ Proof Purposes
-Note: The Authorization Capabilities [[?ZCAP]] specification defines additional -proof purposes for that use case, such as `capabilityInvocation` and -`capabilityDelegation`. -