@blocklet/util 0.8.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +9 -0
- package/dist/index.js +48 -0
- package/package.json +38 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
declare function verifyDownloadToken({ blockletDid, downloadToken, storePublicKey, serverDid, serverPublicKey, serverSignature, }: {
|
|
2
|
+
blockletDid: string;
|
|
3
|
+
downloadToken: string;
|
|
4
|
+
storePublicKey: string;
|
|
5
|
+
serverDid: string;
|
|
6
|
+
serverPublicKey: string;
|
|
7
|
+
serverSignature: string;
|
|
8
|
+
}): Promise<void>;
|
|
9
|
+
export { verifyDownloadToken };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.verifyDownloadToken = void 0;
|
|
16
|
+
const jwt_1 = require("@arcblock/jwt");
|
|
17
|
+
const did_1 = require("@arcblock/did");
|
|
18
|
+
const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
|
|
19
|
+
function verifyDownloadToken({ blockletDid, downloadToken, storePublicKey, serverDid, serverPublicKey, serverSignature, }) {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
if ((0, isEmpty_1.default)(downloadToken)) {
|
|
22
|
+
throw new Error('downloadToken must be provided');
|
|
23
|
+
}
|
|
24
|
+
if (!(0, jwt_1.verify)(downloadToken, storePublicKey)) {
|
|
25
|
+
throw new Error('downloadToken is invalid');
|
|
26
|
+
}
|
|
27
|
+
const payloadFromStoreSignature = (0, jwt_1.decode)(downloadToken, true);
|
|
28
|
+
if (payloadFromStoreSignature.serverDid !== serverDid) {
|
|
29
|
+
throw new Error('serverDid mismatch');
|
|
30
|
+
}
|
|
31
|
+
if (payloadFromStoreSignature.blockletDid !== blockletDid) {
|
|
32
|
+
throw new Error('blockletDid mismatch');
|
|
33
|
+
}
|
|
34
|
+
if ((0, isEmpty_1.default)(serverPublicKey)) {
|
|
35
|
+
throw new Error('serverPublicKey must be provided');
|
|
36
|
+
}
|
|
37
|
+
if (!(0, did_1.isFromPublicKey)(serverDid, serverPublicKey)) {
|
|
38
|
+
throw new Error('serverDid and serverPublicKey mismatch');
|
|
39
|
+
}
|
|
40
|
+
if ((0, isEmpty_1.default)(serverSignature)) {
|
|
41
|
+
throw new Error('serverSignature must be provided');
|
|
42
|
+
}
|
|
43
|
+
if (!(0, jwt_1.verify)(serverSignature, serverPublicKey)) {
|
|
44
|
+
throw new Error('serverSignature is invalid');
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
exports.verifyDownloadToken = verifyDownloadToken;
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@blocklet/util",
|
|
3
|
+
"version": "0.8.55",
|
|
4
|
+
"author": "skypesky ye",
|
|
5
|
+
"license": "ISC",
|
|
6
|
+
"description": "",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"typings": "dist/index.d.ts",
|
|
9
|
+
"publishConfig": {
|
|
10
|
+
"access": "public"
|
|
11
|
+
},
|
|
12
|
+
"files": [
|
|
13
|
+
"dist"
|
|
14
|
+
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"test": "jest",
|
|
17
|
+
"lint": "eslint src tests",
|
|
18
|
+
"lint:fix": "yarn lint --fix",
|
|
19
|
+
"coverage": "npm run test -- --coverage",
|
|
20
|
+
"prebuild": "rm -fr dist",
|
|
21
|
+
"build": "tsc"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@arcblock/eslint-config-ts": "^0.2.2",
|
|
25
|
+
"@types/jest": "^28.1.3",
|
|
26
|
+
"eslint": "^8.18.0",
|
|
27
|
+
"jest": "^28.1.1",
|
|
28
|
+
"ts-jest": "^28.0.5",
|
|
29
|
+
"typescript": "~4.4.0"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@arcblock/did": "^1.17.0",
|
|
33
|
+
"@arcblock/jwt": "^1.17.0",
|
|
34
|
+
"@ocap/wallet": "^1.17.0",
|
|
35
|
+
"lodash": "^4.17.21"
|
|
36
|
+
},
|
|
37
|
+
"gitHead": "e862435f1064f5b3c7e4485b2a7af99d0cce6292"
|
|
38
|
+
}
|