1
0
mirror of https://github.com/bitcoin/bips.git synced 2025-05-12 12:03:29 +00:00

Fix local anchors and links

This commit is contained in:
Matt David 2015-12-04 11:26:32 -08:00
parent 2c8bc2392b
commit 543409c7f7

View File

@ -101,17 +101,17 @@ The new ReturnPaymentRequest message is an encapsulating message that allows the
===Overview===
# Sender [[#ir-creation creates]] InvoiceRequest
# Sender [[#ir-creation|creates]] InvoiceRequest
# Sender transmits InvoiceRequest to Receiver
# Receiver [[#ir-validation validates]] InvoiceRequest
# Receiver [[#ir-validation|validates]] InvoiceRequest
# Receiver creates PaymentRequest
# Receiver [[#rpr-creation-encryption encrypts]] the PaymentRequest
# Receiver [[#rpr-creation-encryption creates]] ReturnPaymentRequest (containing an encrypted PaymentRequest)
# Receiver [[#rpr-creation-encryption|encrypts]] the PaymentRequest
# Receiver [[#rpr-creation-encryption|creates]] ReturnPaymentRequest (containing an encrypted PaymentRequest)
# Receiver transmits ReturnPaymentRequest to Sender
# Sender validates ReturnPaymentRequest
# Sender [[#rpr-validation-pr-decryption decrypts and validates]] encrypted PaymentRequest
# Sender [[#rpr-validation-pr-decryption|decrypts and validates]] encrypted PaymentRequest
<span id="ir-creation"></span>
{{anchor|ir-creation}}
===InvoiceRequest Message Creation===
* Create an InvoiceRequest message
@ -124,7 +124,7 @@ The new ReturnPaymentRequest message is an encapsulating message that allows the
** Set pki_data as it would be set in BIP-0070 (see [Certificates](https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki#Certificates) section)
** Sign InvoiceRequest with signature == "" using the X509 Certificate's private key
<span id="ir-validation"></span>
{{anchor|ir-validation}}
===InvoiceRequest Validation===
* Validate sender_public_key is a valid EC public key
@ -132,7 +132,7 @@ The new ReturnPaymentRequest message is an encapsulating message that allows the
* If pki_type is None, InvoiceRequest is VALID
* If pki_type is x509+sha256 and signature is valid for the serialized InvoiceRequest where signature is set to "", InvoiceRequest is VALID
<span id="rpr-creation-encryption"></span>
{{anchor|rpr-creation-encryption}}
===ReturnPaymentRequest Message Creation and PaymentRequest Encryption===
* Encrypt the serialized PaymentRequest using AES-256-CBC setup as described in [[#ECDH-AES-Setup ECDH Point Generation and AES-256 (CBC Mode) Setup]]
@ -142,7 +142,7 @@ The new ReturnPaymentRequest message is an encapsulating message that allows the
* Set ephemeral_public_key to the public key of an EC keypair created using the secret point's X value.
* Set payment_request_hash to generated SHA256 hash of the serialized PaymentRequest (without encryption)
<span id="rpr-validation-pr-decryption"></span>
{{anchor|rpr-validation-pr-decryption}}
===ReturnPaymentRequest Validation and Decryption===
* Validate ephemeral_public_key matches public key of an EC keypair created using the secret point's X value.
@ -150,7 +150,7 @@ The new ReturnPaymentRequest message is an encapsulating message that allows the
* Validate payment_request_hash matches SHA256 of the decrypted, serialized PaymentRequest
* Deserialize the serialized PaymentRequest
<span id="ECDH-AES-Setup"></span>
{{anchor|ECDH-AES-Setup}}
===ECDH Point Generation and AES-256 (CBC Mode) Setup===
* Generate the '''secret point''' using [https://en.wikipedia.org/wiki/Elliptic_curve_DiffieHellman ECDH] using the local entity's private key and the remote entity's public key as inputs.