You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: bip-0075.mediawiki
+10-9Lines changed: 10 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -105,7 +105,7 @@ message InvoiceRequest {
105
105
{| class="wikitable"
106
106
! Field Name !! Description
107
107
|-
108
-
| sender_public_key || Sender's EC public key
108
+
| sender_public_key || Sender's SEC-encoded EC public key
109
109
|-
110
110
| amount || amount is integer-number-of-satoshis (default: 0)
111
111
|-
@@ -141,7 +141,7 @@ message ProtocolMessage {
141
141
required ProtocolMessageType message_type = 3;
142
142
required bytes serialized_message = 4;
143
143
optional string status_message = 5;
144
-
optional bytes identifier = 6;
144
+
required bytes identifier = 6;
145
145
}
146
146
</pre>
147
147
@@ -158,7 +158,7 @@ message ProtocolMessage {
158
158
|-
159
159
|status_message || Human-readable Payment Protocol status message
160
160
|-
161
-
|identifier || Unique key to identify this entire exchange on the server. SHA256 of initial serialized InvoiceRequest SHOULD be used by default
161
+
|identifier || Unique key to identify this entire exchange on the server. Default value SHOULD be SHA256(Serialized Initial InvoiceRequest + Current Epoch Time in Seconds as a String)
| encrypted_message || AES-256-GCM Encrypted (as defined in BIP75) Payment Protocol Message
195
195
|-
196
-
| receiver_public_key || Receiver's DER-encoded EC Public Key
196
+
| receiver_public_key || Receiver's SEC-encoded EC Public Key
197
197
|-
198
-
| sender_public_key || Sender's DER-encoded EC Public Key
198
+
| sender_public_key || Sender's SEC-encoded EC Public Key
199
199
|-
200
200
| nonce || Microseconds since epoch
201
201
|-
202
-
| identifier || Unique key to identify this entire exchange on the server. SHA256 of initial serialized InvoiceRequest SHOULD be used by default
202
+
| identifier || Unique key to identify this entire exchange on the server. Default value SHOULD be SHA256(Serialized Initial InvoiceRequest + Current Epoch Time in Seconds as a String)
203
203
|-
204
204
| status_message || Human-readable Payment Protocol status message
205
205
|-
@@ -362,7 +362,7 @@ When either '''status_code''' OR '''status_message''' are present, the AES-256 G
362
362
Initial public key retrieval for [[#InvoiceRequest|InvoiceRequest]] encryption via [[#EncryptedProtocolMessage|EncryptedProtocolMessage]] encapsulation can be done in a number of ways including, but not limited to, the following:
363
363
# Wallet Name public key asset type resolution - DNSSEC-validated name resolution returns Base64 encoded DER-formatted EC public key via TXT Record [https://www.ietf.org/rfc/rfc5480.txt RFC 5480]
364
364
# Key Server lookup - Key Server lookup (similar to PGP's pgp.mit.edu) based on key server identifier (i.e., e-mail address) returns Base64 encoded DER-formatted EC public key [https://www.ietf.org/rfc/rfc5480.txt RFC 5480]
365
-
# QR Code - Use of QR-code to encode DER-formatted EC public key [https://www.ietf.org/rfc/rfc5480.txt RFC 5480]
365
+
# QR Code - Use of QR-code to encode SEC-formatted EC public key [https://www.ietf.org/rfc/rfc5480.txt RFC 5480]
366
366
# Address Service Public Key Exposure
367
367
368
368
==Payment / PaymentACK Messages with a HTTP Store & Forward Server==
@@ -376,7 +376,8 @@ If a Store & Forward server wishes to protect themselves from spam or abuse, the
376
376
Clients SHOULD keep in mind Receivers can broadcast a transaction without returning an ACK. If a Payment message needs to be updated, it SHOULD include at least one input referenced in the original transaction to prevent the Receiver from broadcasting both transactions and getting paid twice.
377
377
378
378
==Public Key & Signature Encoding==
379
-
* All EC public keys ('''sender_public_key''', '''receiver_public_key''') or x.509 certificates included in any message defined in this BIP MUST be DER [ITU.X690.1994] encoded.
379
+
* All x.509 certificates included in any message defined in this BIP MUST be DER [ITU.X690.1994] encoded.
380
+
* All EC public keys ('''sender_public_key''', '''receiver_public_key''') in any message defined in this BIP MUST be [[SECP256k1|http://www.secg.org/sec2-v2.pdf]] ECDSA Public Key ECPoints encoded using [[SEC 2.3.3 Encoding|http://www.secg.org/sec1-v2.pdf]]. Encoding MAY be compressed.
380
381
* All ECC signatures included in any message defined in this BIP MUST use the SHA-256 hashing algorithm and MUST be DER [ITU.X690.1994] encoded.
381
382
* All OpenPGP certificates must follow [[https://tools.ietf.org/html/rfc4880|RFC4880]], sections 5.5 and 12.1.
optional bytes identifier = 6; // Unique key to identify this entire exchange on the server. SHA256 of initial serialized InvoiceRequest SHOULD be used by default
73
+
required bytes identifier = 6; // Unique key to identify this entire exchange on the server. Default value SHOULD be SHA256(Serialized Initial InvoiceRequest + Current Epoch Time in Seconds as a String)
required uint64 nonce = 7; // Microseconds since epoch
84
-
optional bytes identifier = 8; // Unique key to identify this entire exchange on the server. SHA256 of initial serialized InvoiceRequest SHOULD be used by default
84
+
required bytes identifier = 8; // Unique key to identify this entire exchange on the server. Default value SHOULD be SHA256(Serialized Initial InvoiceRequest + Current Epoch Time in Seconds as a String)
0 commit comments