-
Notifications
You must be signed in to change notification settings - Fork 0
/
signature.js
27 lines (19 loc) · 11.1 KB
/
signature.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const verifySignature = require('./dist/utility/verifySignature')
const sodium = require('libsodium-wrappers')
const header = "Signature keyId=\"ondc.vistar.solutions|99429f24-ec9f-4c47-8035-8e43be8cb0ef|ed25519\",algorithm=\"ed25519\",created=\"1686243060\",expires=\"1686246660\",headers=\"(created) (expires) digest\",signature=\"CB81y6kNQfaXOX7jSwqjex4C/5iz99WIMggZF/ucngfvXhOArSNAL5dC2VGfJE6m+d0hLPjYnFVhrX9m8WnlCg==\""
const body = JSON.stringify({ "context": { "domain": "FIS10", "location": { "city": { "code": "std:080" }, "country": { "code": "IND" } }, "action": "on_search", "bpp_uri": "https://ondc.vistar.solutions/v1/bpp/", "bpp_id": "vistar.com", "version": "1.0.0", "message_id": "cb4d7f5f-25e3-47bf-961e-5fcb66c39151", "timestamp": "2023-06-08T16:51:00.612Z", "transaction_id": "deb21424-5bd6-480c-ac47-66a72e9f68bb", "ttl": "PT30S", "bap_id": "b2b.mintickets.xyz", "bap_uri": "https://3799-2405-201-c014-88f8-9d33-9cec-7569-c63a.in.ngrok.io/bap" }, "message": { "catalog": { "fulfillments": [{ "id": "F1", "type": "ONLINE_EMAIL_SMS" }], "descriptor": { "name": "Vistar", "symbol": "https://giftcard.com/images/1-image", "short_desc": "Vistar one stop solution for seller to sell gift card for seller", "long_desc": "Vistar one stop solution for seller to sell gift card for seller", "images": ["https://www.vistar.com/sites/Vistar/images/logo.jpg"] }, "providers": [{ "id": "48e5d0f1-6255-4f22-8b06-ed16951aa4ec", "ttl": "P1D", "time": { "label": "enable", "timestamp": "2023-06-08T16:51:00.658Z" }, "descriptor": { "name": "Meri Savings", "symbol": "https://giftcard.com/images/1-image", "short_desc": "Online Gift Card Store", "long_desc": "Online Gift Card Store", "images": ["https://giftcard.com/images/store-image"] }, "categories": [{ "id": "C1", "descriptor": { "code": "ONLINE" } }, { "id": "C1", "descriptor": { "code": "ONLINE" } }, { "id": "C1", "descriptor": { "code": "ONLINE" } }, { "id": "C1", "descriptor": { "code": "ONLINE" } }, { "id": "C1", "descriptor": { "code": "ONLINE" } }, { "id": "C1", "descriptor": { "code": "ONLINE" } }, { "id": "C1", "descriptor": { "code": "ONLINE" } }, { "id": "C1", "descriptor": { "code": "ONLINE" } }, { "id": "C1", "descriptor": { "code": "ONLINE" } }, { "id": "C1", "descriptor": { "code": "ONLINE" } }], "items": [{ "id": "ee83233a-0a02-4a11-9373-dace61e113ae", "descriptor": { "name": "Cleartrip Gift Card", "short_desc": "Cleartrip e-Gift Cards make for a perfect present. Whether it’s proposing a family holiday, an employee incentive, reliving a honeymoon, or delving into adventure with friends,.", "long_desc": "Cleartrip e-Gift Cards make for a perfect present. Whether it’s proposing a family holiday, an employee incentive, reliving a honeymoon, or delving into adventure with friends,.", "images": ["https://meribachatassets.s3.ap-south-1.amazonaws.com/mbimages/ebc3a4026a6620f971213c3a742de4c6f1b88e7e004c932f82851261e1a162e5.jpg"] }, "price": { "currency": "INR", "minimum_value": "1000", "maximum_value": "10000" }, "tags": [{ "descriptor": { "code": "BRAND_DETAILS" }, "list": [{ "descriptor": { "code": "BRAND_NAME" }, "value": "Cleartrip" }] }], "category_ids": ["C1"], "fulfillment_ids": ["F1"] }, { "id": "b88e30b4-72b6-4ef8-a488-007f308f5c89", "descriptor": { "name": "ITC Hotels Gift Card", "short_desc": "Give the gift of indigenous experiences to someone special that they’ll treasure for life. \r\nITC Hotels Gift Card offers you a gateway to create long lasting memories.", "long_desc": "Give the gift of indigenous experiences to someone special that they’ll treasure for life. \r\nITC Hotels Gift Card offers you a gateway to create long lasting memories.", "images": ["https://meribachatassets.s3.ap-south-1.amazonaws.com/mbimages/a6a5fd956f186456d07d49decd3d6d0227fb00525fd75963225eab569fd7704b.jpg"] }, "price": { "currency": "INR", "minimum_value": "1000", "maximum_value": "10000" }, "tags": [{ "descriptor": { "code": "BRAND_DETAILS" }, "list": [{ "descriptor": { "code": "BRAND_NAME" }, "value": "ITC Hotels" }] }], "category_ids": ["C1"], "fulfillment_ids": ["F1"] }, { "id": "c3d9cf07-46ad-4c5d-997f-b5df955e5a76", "descriptor": { "name": "Health and Glow Gift Card", "short_desc": "Experience the essence of authentic and original ayurveda from a line or homegrown ayurvedic products from Kama Ayurveda.", "long_desc": "Experience the essence of authentic and original ayurveda from a line or homegrown ayurvedic products from Kama Ayurveda.", "images": ["https://meribachatassets.s3.ap-south-1.amazonaws.com/mbimages/bc2432cf2dcf532dac92870b42b5e49e862a92239e9a7b6d9cf9be2b8182e417.webp"] }, "price": { "currency": "INR", "minimum_value": "1000", "maximum_value": "10000" }, "tags": [{ "descriptor": { "code": "BRAND_DETAILS" }, "list": [{ "descriptor": { "code": "BRAND_NAME" }, "value": "Health and Glow" }] }], "category_ids": ["C1"], "fulfillment_ids": ["F1"] }, { "id": "4426f5a5-994e-4263-bc3d-dade1037c542", "descriptor": { "name": "Kama Ayurveda Gift Card", "short_desc": "Experience the essence of authentic and original ayurveda from a line or homegrown ayurvedic products from Kama Ayurveda.", "long_desc": "Experience the essence of authentic and original ayurveda from a line or homegrown ayurvedic products from Kama Ayurveda.", "images": ["https://meribachatassets.s3.ap-south-1.amazonaws.com/mbimages/cd90f56ff82b94e750be3c96b9b9c555b497507993c3c1210523f61895cc6839.jpg"] }, "price": { "currency": "INR", "minimum_value": "1000", "maximum_value": "10000" }, "tags": [{ "descriptor": { "code": "BRAND_DETAILS" }, "list": [{ "descriptor": { "code": "BRAND_NAME" }, "value": "Kama Ayurveda" }] }], "category_ids": ["C1"], "fulfillment_ids": ["F1"] }, { "id": "b93b0d2a-6d98-4f02-9e59-d2c20a99ebcc", "descriptor": { "name": "Reliance Smart Point Gift Card", "short_desc": "Smart Point is your neighborhood supermarket from Reliance.", "long_desc": "Smart Point is your neighborhood supermarket from Reliance. This chain of retail stores offers daily essentials and loads more at easily accessible prices.", "images": ["https://meribachatassets.s3.ap-south-1.amazonaws.com/mbimages/2635a35a2e94a3fdfc3afb4e0e940095443de2bddc23f1aee7deea3a62e867b6.png"] }, "price": { "currency": "INR", "minimum_value": "1000", "maximum_value": "10000" }, "tags": [{ "descriptor": { "code": "BRAND_DETAILS" }, "list": [{ "descriptor": { "code": "BRAND_NAME" }, "value": "Reliance" }] }], "category_ids": ["C1"], "fulfillment_ids": ["F1"] }, { "id": "69732157-b326-4b31-94bc-364cb8c20afe", "descriptor": { "name": "The Body Shop Gift Card", "short_desc": "Enhance your natural beauty with The Body Shop's cruelty-free range with exclusively inducted 100% vegetarian and over 60% vegan products.", "long_desc": "Enhance your natural beauty with The Body Shop's cruelty-free range with exclusively inducted 100% vegetarian and over 60% vegan products.", "images": ["https://meribachatassets.s3.ap-south-1.amazonaws.com/mbimages/c20bdac0dfe6685011828326f75d00dbf9efe8d625b46ce97af2588684cd3e5a.jpg"] }, "price": { "currency": "INR", "minimum_value": "1000", "maximum_value": "10000" }, "tags": [{ "descriptor": { "code": "BRAND_DETAILS" }, "list": [{ "descriptor": { "code": "BRAND_NAME" }, "value": "The Body Shop" }] }], "category_ids": ["C1"], "fulfillment_ids": ["F1"] }, { "id": "8a8d93ef-b501-44c9-9611-67c2eed5f3ca", "descriptor": { "name": "Westside Gift Card", "short_desc": "Westside is a one-stop shop for every fashion fix. When the brand opened their first store, their sole focus was clothing.", "long_desc": "Westside is a one-stop shop for every fashion fix. When the brand opened their first store, their sole focus was clothing.", "images": ["https://meribachatassets.s3.ap-south-1.amazonaws.com/mbimages/61c10ace21cc83fc53b6354b518acc6361bd4bb15c1fd6e7747d83827e712f64.jpg"] }, "price": { "currency": "INR", "minimum_value": "1000", "maximum_value": "10000" }, "tags": [{ "descriptor": { "code": "BRAND_DETAILS" }, "list": [{ "descriptor": { "code": "BRAND_NAME" }, "value": "Westside" }] }], "category_ids": ["C1"], "fulfillment_ids": ["F1"] }, { "id": "ff23dd34-05f1-41cc-a9af-ddf702986096", "descriptor": { "name": "Ajio Gift Card", "short_desc": "With the trendiest, freshest, and most unique styles from across India and the world, AJIO invites you to express your personal style fearlessly, and with a confidence and optimism that cannot be easily shaken.", "long_desc": "With the trendiest, freshest, and most unique styles from across India and the world, AJIO invites you to express your personal style fearlessly, and with a confidence and optimism that cannot be easily shaken.", "images": ["https://meribachatassets.s3.ap-south-1.amazonaws.com/mbimages/c9f5724669011f3432c66d6afa44cb8f8aa6e7875121e6a0318e02d8a795d535.png"] }, "price": { "currency": "INR", "minimum_value": "1000", "maximum_value": "10000" }, "tags": [{ "descriptor": { "code": "BRAND_DETAILS" }, "list": [{ "descriptor": { "code": "BRAND_NAME" }, "value": "Ajio" }] }], "category_ids": ["C1"], "fulfillment_ids": ["F1"] }, { "id": "bf6506a7-5ff8-47da-8d5a-c3c029414264", "descriptor": { "name": "Amazon Gift Card", "short_desc": "Amazon Shopping Voucher is just what you need if you want to shop on a budget. Amazon Shopping Vouchers help you buy hundreds of products at amazing discounts.", "long_desc": "Amazon Shopping Voucher is just what you need if you want to shop on a budget. Amazon Shopping Vouchers help you buy hundreds of products at amazing discounts.", "images": ["https://meribachatassets.s3.ap-south-1.amazonaws.com/mbimages/d492c6c8e8a203bb5a1a25e0731f710e9ed7db2be732775054e2573896d47b1c.jpeg"] }, "price": { "currency": "INR", "minimum_value": "1000", "maximum_value": "10000" }, "tags": [{ "descriptor": { "code": "BRAND_DETAILS" }, "list": [{ "descriptor": { "code": "BRAND_NAME" }, "value": "Amazon" }] }], "category_ids": ["C1"], "fulfillment_ids": ["F1"] }, { "id": "7b22a03b-b65a-4411-b9dd-3af2c5da99b3", "descriptor": { "name": "Swiggy Gift Card", "short_desc": "Swiggy is an on-demand food delivery platform that brings food from neighborhood restaurants directly to customers' doors. It is the largest food delivery service in India, with 125,000 restaurants", "long_desc": "Swiggy is an on-demand food delivery platform that brings food from neighborhood restaurants directly to customers' doors. It is the largest food delivery service in India, with 125,000 restaurants", "images": ["https://meribachatassets.s3.ap-south-1.amazonaws.com/mbimages/8bfb86ab127e262ff9d16db7cf02303648e9d8776438102fbe32494b2a313123.webp"] }, "price": { "currency": "INR", "minimum_value": "1000", "maximum_value": "10000" }, "tags": [{ "descriptor": { "code": "BRAND_DETAILS" }, "list": [{ "descriptor": { "code": "BRAND_NAME" }, "value": "Swiggy" }] }], "category_ids": ["C1"], "fulfillment_ids": ["F1"] }] }] } } })
const created = '1686243060'
const updated = '1686246660'
const signingKey = process.env.SIGNING_KEY
verifySignature.createSigningString(body, created, updated)
.then(({ signing_string }) => {
console.log(signing_string)
const sign = sodium.to_base64(sodium.crypto_sign_detached(
signing_string,
sodium.from_base64(signingKey, sodium.base64_variants.ORIGINAL)
), sodium.base64_variants.ORIGINAL)
console.log({ sign })
});
verifySignature.verifySignature(header, JSON.parse(body)).then((req) => {
console.log(req)
})