Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BIP75 Simplification and Enhancements #385

Merged
merged 16 commits into from
May 19, 2016
Merged

Conversation

techguy613
Copy link
Contributor

This update for BIP75 makes the following changes:

  • Remove duplicate, encrypted versions of each Payment Protocol message
  • Add encapsulating messages that allow for both plaintext and encrypted messaging as well as status messaging within the protocol
  • Change the AES-256 mode to GCM (from CBC), and including status_code || status_message as Additional Authenticated Data in the GCM cipher
  • Update use of ECDH X-point to instead use SHA256(ECDH().x) to match up with the libsecp256k1 implementation of ECDH)

These changes aim to make the protocol much easier to implement on both the client and store & forward server sides.

Matt David and others added 13 commits March 29, 2016 15:49
- Add Updated Messages section to describe the status_code and status_message
- Separated Message and Communication Errors into Payment Protocol Errors and Communication Errors
- Add first draft Payment Protocol error codes
- Update InvoiceRequest Message Creation description amount example to return Payment Protocol error in the case of an issue with the amount.
- Remove status_code and status_message from individual Payment Protocol messages
- Remove EncryptedInvoiceRequest, EncryptedPaymentRequest, EncryptedPayment and EncryptedPaymentACK messages from protobuf definition file
- Add ProtocolMessageType enum and ProtocolMessageType and EncryptedProtocolMesssage messages to bip-0075/paymentrequest.proto definition file
- Update BIP75 text to remove old individual message encryption paths and include new encapsulating messages for self-contained PaymentProtocol communication (including errors) over various transport layers
- Add initial list of status codes
- Update BIP75 to use AES-256-GCM and remove message hash as GCM mode provides authenticated encryption
- Update ECDH calculation to use SHA256 hash of ECDH's X point instead of the raw X point itself
- Add requirement of additional authenticated data in the case that either status_code and/or status_message are in use
- Recommit mistakently deleted encrypted invoicerequest flow diagram
Updated S&F suggestions, some other tweaks and typos.
@techguy613 techguy613 changed the title BIP75 Simplication BIP75 Simplification and Enhancements May 6, 2016
@luke-jr
Copy link
Member

luke-jr commented May 7, 2016

Can you merge this with the master branch please?

# Conflicts:
#	bip-0075.mediawiki
@techguy613
Copy link
Contributor Author

Master merged 👍

@techguy613
Copy link
Contributor Author

techguy613 commented May 9, 2016

Hey @luke-jr, can you please wait to merge this PR (if you were going to merge it soon?). I need to work on one more thing that I'm realizing needs a little bit of a revamp. Thanks!

@techguy613 techguy613 changed the title BIP75 Simplification and Enhancements BIP75 Simplification and Enhancements [WIP] May 10, 2016
@luke-jr
Copy link
Member

luke-jr commented May 10, 2016

Next time just close and reopen the PR ;)

@techguy613 techguy613 changed the title BIP75 Simplification and Enhancements [WIP] BIP75 Simplification and Enhancements May 11, 2016
@techguy613
Copy link
Contributor Author

Next time I will definitely close and re-open, but for now we're ready to go! 👍 Thanks @luke-jr

@techguy613
Copy link
Contributor Author

Hey @luke-jr! There hasn't been much talk about this PR on the list outside of the announcement. What is the current status of (or issues holding up) merging the PR? Thanks sir!

@luke-jr
Copy link
Member

luke-jr commented May 19, 2016

Missed your previous comment. ;)

@luke-jr luke-jr merged commit ad9fc9c into bitcoin:master May 19, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants