Encrypt with an Ethereum private key
Manipulating private keys must be done with care. Losing them can lead to a loss of data, privacy or non-repudiation safety!
For an introduction to Encryption and Decryption in Request Network, see Private Requests using Encryption
A request can be encrypted to make its details private to selected stakeholders. In this guide, we won't explain how encryption is managed under the hood. We will mention encryption or decryption of requests with payers and payees keys. Although in practice, we will use an intermediate symmetric key. See more details on github.
The transaction layer manages the encryption, see more details on the Request Protocol section.
To manipulate encrypted requests you need a CipherProvider (recommended) or DecryptionProvider (deprecated). Both of them require direct access to the private key. They're best suited for backends.
EthereumPrivateKeyCipherProvider: Provides both encryption and decryption utilities.
EthereumPrivateKeyDecryptionProvider (deprecated) provides only decryption utilities.
Create an encrypted request
EthereumPrivateKeyCipherProvider
See on Github.
Then you can create an encrypted request:
Note: You must give at least one encryption key you can decrypt with the decryption provider. Otherwise, an error will be triggered after the creation.
EthereumPrivateKeyDecryptionProvider
EthereumPrivateKeyDecryptionProvider is deprecated in favor of EthereumPrivateKeyCipherProvider
Get invoice information from its request ID
Let's step back for a second: the requester sent a request that he encrypted with the payer's public key, as well as with his own, to retrieve it later. This is an essential and typical example, but a request can be encrypted with many keys to give access to its status and details.
If the decryption provider knows a private key matching one of the keys used at the creation, it can decrypt it. Like a clear request you can get it from its request id.
Accepting/canceling an invoice information
Like a clear request, you can update it if the decryption provider is instantiated with a matching private key.
Enabling/Disabling Decryption
Checking Capabilities
Last updated