Steps To Follow:
This new flow follows a better security layer which includes payload as well as headers encryption-decryption.
1. Every API call will comprise of newly encrypted header_secrets and a pass_key in the headers and the encrypted payload with the response body also being encrypted using AES-256 encryption.
2. ISU team will share the Pass key, Client ID, Client Secret, API user name and Encryption Key for encrypting the Header Secrets and request-response Payload separately.
3. Every API call should comprise of two headers i.e. pass_key and header_secrets.
Parameter | Description | Data_type |
---|---|---|
header_secrets | Encrypted header_secret containing client_id, client_secret and timestamp(Epoch) | String |
pass_key | A separate pass_key for each client. | String |
4. The header_secrets is the encrypted header data which is a JSON body containing the client_id, client_secret and epoch, encrypted with an AES encryption key shared by ISU team.
5. The header_secrets JSON should contain the following data:
Parameter Key | Description | Data_type |
---|---|---|
client_id | API user’s client_id, to be provided by ISU team. | String |
client_secret | API user’s client_secret key, to be provided by ISU team. | String |
epoch | A timestamp up to seconds e.g. 1727954878 | String |
1. Sample JSON header_secrets to be encrypted:
2. Every request payload should be encrypted using the same encryption Key:
Below response client will get:
The above response payload needs to be decrypted using the same shared Encryption Key for Request-Response Payload.
Notes:
- Epoch is validated and must not be older than 5 mins.
- Header secrets must be encrypted using AES256 each time the API is consumed.
- Same key used for both payload and header secrets encryption.
- Responses are encrypted only if successful.
- Keys are client-specific.
Client Specific Keys:
Clients | Header Encryption, AES Keys | Payload Encryption and Decryption AES Keys |
---|---|---|
Client A |
|
Key a |
Client B |
|
Key b |
Client C |
|
Key c |
Client D |
|
Key d |