Skip to content

Commit e3a155c

Browse files
author
Matt David
committed
- Change EC Keys to use SEC encoding
- Update identifier default to also include epoch time to great a more unique identifier
1 parent 45f5c56 commit e3a155c

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

bip-0075.mediawiki

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ message InvoiceRequest {
105105
{| class="wikitable"
106106
! Field Name !! Description
107107
|-
108-
| sender_public_key || Sender's EC public key
108+
| sender_public_key || Sender's SEC-encoded EC public key
109109
|-
110110
| amount || amount is integer-number-of-satoshis (default: 0)
111111
|-
@@ -158,7 +158,7 @@ message ProtocolMessage {
158158
|-
159159
|status_message || Human-readable Payment Protocol status message
160160
|-
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)
162162
|}
163163

164164
===Versioning===
@@ -193,13 +193,13 @@ message EncryptedProtocolMessage {
193193
|-
194194
| encrypted_message || AES-256-GCM Encrypted (as defined in BIP75) Payment Protocol Message
195195
|-
196-
| receiver_public_key || Receiver's DER-encoded EC Public Key
196+
| receiver_public_key || Receiver's SEC-encoded EC Public Key
197197
|-
198-
| sender_public_key || Sender's DER-encoded EC Public Key
198+
| sender_public_key || Sender's SEC-encoded EC Public Key
199199
|-
200200
| nonce || Microseconds since epoch
201201
|-
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)
203203
|-
204204
| status_message || Human-readable Payment Protocol status message
205205
|-
@@ -362,7 +362,7 @@ When either '''status_code''' OR '''status_message''' are present, the AES-256 G
362362
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:
363363
# 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]
364364
# 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]
366366
# Address Service Public Key Exposure
367367
368368
==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
376376
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.
377377

378378
==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.
380381
* 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.
381382
* All OpenPGP certificates must follow [[https://tools.ietf.org/html/rfc4880|RFC4880]], sections 5.5 and 12.1.
382383

0 commit comments

Comments
 (0)