From 4081d3c57f999bf80fd2fdb6b76235997d611cbe Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Mon, 31 Mar 2014 21:34:07 -0400 Subject: [PATCH 1/3] Update bip-0070.mediawiki Slightly re-worded description of the signature field in PaymentRequest The previous phrasing confused me and I had to check the Bitcoin Core source code to see what it was expecting for a signature. --- bip-0070.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0070.mediawiki b/bip-0070.mediawiki index 44611188..39888391 100644 --- a/bip-0070.mediawiki +++ b/bip-0070.mediawiki @@ -118,7 +118,7 @@ A PaymentRequest is PaymentDetails optionally tied to a merchant's identity: |- | serialized_payment_details || A protocol-buffer serialized PaymentDetails message. |- -| signature || digital signature over a hash of the protocol buffer serialized variation of the PaymentRequest message, where signature is a zero-byte array and fields are serialized in numerical order (all current protocol buffer implementations serialize fields in numerical order), using the public key in pki_data. +| signature || digital signature over a hash of the protocol buffer serialized variation of the PaymentRequest message, with all fields serialized in numerical order (all current protocol buffer implementations serialize fields in numerical order) and signed using the public key in pki_data. Before serialization, the signature field must be set to a zero-byte placeholder. |} When a Bitcoin wallet application receives a PaymentRequest, it must authorize payment by doing the following: From 3cbf3d7c030851e67b261e3a561b5490aaf7b8ab Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Sat, 26 Apr 2014 20:26:22 -0400 Subject: [PATCH 2/3] Update bip-0070.mediawiki Change "zero-byte placeholder" to "empty string" --- bip-0070.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0070.mediawiki b/bip-0070.mediawiki index 39888391..778b80fe 100644 --- a/bip-0070.mediawiki +++ b/bip-0070.mediawiki @@ -118,7 +118,7 @@ A PaymentRequest is PaymentDetails optionally tied to a merchant's identity: |- | serialized_payment_details || A protocol-buffer serialized PaymentDetails message. |- -| signature || digital signature over a hash of the protocol buffer serialized variation of the PaymentRequest message, with all fields serialized in numerical order (all current protocol buffer implementations serialize fields in numerical order) and signed using the public key in pki_data. Before serialization, the signature field must be set to a zero-byte placeholder. +| signature || digital signature over a hash of the protocol buffer serialized variation of the PaymentRequest message, with all fields serialized in numerical order (all current protocol buffer implementations serialize fields in numerical order) and signed using the public key in pki_data. Before serialization, the signature field must be set to an empty string. |} When a Bitcoin wallet application receives a PaymentRequest, it must authorize payment by doing the following: From 917838608c08b80ac1a6a9f2ba9e40453aa0bc6c Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Mon, 28 Apr 2014 14:56:30 -0400 Subject: [PATCH 3/3] Update bip-0070.mediawiki Revised final sentence of signature field description. --- bip-0070.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0070.mediawiki b/bip-0070.mediawiki index 778b80fe..5bfb12bb 100644 --- a/bip-0070.mediawiki +++ b/bip-0070.mediawiki @@ -118,7 +118,7 @@ A PaymentRequest is PaymentDetails optionally tied to a merchant's identity: |- | serialized_payment_details || A protocol-buffer serialized PaymentDetails message. |- -| signature || digital signature over a hash of the protocol buffer serialized variation of the PaymentRequest message, with all fields serialized in numerical order (all current protocol buffer implementations serialize fields in numerical order) and signed using the public key in pki_data. Before serialization, the signature field must be set to an empty string. +| signature || digital signature over a hash of the protocol buffer serialized variation of the PaymentRequest message, with all fields serialized in numerical order (all current protocol buffer implementations serialize fields in numerical order) and signed using the public key in pki_data. Before serialization, the signature field must be set to an empty value so that the field is included in the signed PaymentRequest hash but contains no data. |} When a Bitcoin wallet application receives a PaymentRequest, it must authorize payment by doing the following: