Register Public Key
;TLDR
- Download script generate.sh
- Run script
generate public_key.pub private_key.pem
- Upload via API using Postman
Guide
Before starting encryption development, Partners should have their own pair of private key and public key. Partners could generate their keys using openssl
as our toolkit for encryption, please download install this toolkit if you didn't have it yet. Make sure the version is 1.1.1 or newer. You can check using this command:
> openssl version
OpenSSL 1.1.1 11 Sep 2018
You can refer for full documentation here. Specifically for generating the RSA private key you can use this command:
openssl genrsa -out <generated_private_key_file> 2048
The partner should save this private key securely and never reveal to any other party. If necessary, you can generate new private key and re-submit the new public key to OpenAPI again.
For generating public key you can use this command:
openssl rsa -in <private_key_file> -pubout -out <generated_public _key_file>
This generated public key file will be submited to OpenAPI that will be use for use when encrypting the data when being sent to partner side. When partner submit this public key, it means partner ready to start their development for encryption implementation.
For other alternative, you can use our downloaded script to generate your public key and private key. You can download the script here. Then you can run the script using this command (use sudo if necessary):
chmod +x generate.sh
./generate.sh <public_key> <private_key>
Submit Public Key
After generating private key and public key, you can upload your public key to API using postman. For another improvement we will provide proper public key management in Developer Console.
The next step you can start to learn about Creating Request Signature and How to Decrypt Message.
Register Public Key using API
If you want to upload or update public key yourself you can use this endpoint below
post
/v1/fs/:fs_id/register?upload=1
With the following parameters:
Parameter | Type | Required | Location | Description |
---|---|---|---|---|
fs_id | integer | required | path | Fulfillment service id. |
upload | integer | required | query | When upload, value should be 1 |
public_key | file | required | form data | Attached Public Key using multipart/form-data |
Example request
This example can't be constructed manually without Postman or any kind of application that support upload multipart form data file.
curl -X POST \
'https://fs.tokopedia.net/v1/fs/13398/register?upload=1' \
-H 'Authorization: Bearer JhgtdgUAQ5OJIrQMJjCiHA'
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
-F public_key=@/home/nakama/testcase/public.txt