@netacea/akamai 4.5.6 → 5.0.2
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/CHANGELOG.md +16 -0
- package/dist/package.json +7 -5
- package/dist/src/Akamai.d.ts +11 -9
- package/dist/src/Akamai.js +41 -18
- package/dist/src/Akamai.js.map +1 -1
- package/dist/src/CachedEncryption.d.ts +12 -0
- package/dist/src/CachedEncryption.js +62 -0
- package/dist/src/CachedEncryption.js.map +1 -0
- package/dist/src/encoding.d.ts +5 -0
- package/dist/src/encoding.js +26 -0
- package/dist/src/encoding.js.map +1 -0
- package/dist/src/hash.d.ts +1 -1
- package/dist/src/hash.js +12 -6
- package/dist/src/hash.js.map +1 -1
- package/dist/src/jwe.d.ts +9 -0
- package/dist/src/jwe.js +127 -0
- package/dist/src/jwe.js.map +1 -0
- package/package.json +7 -5
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 5.0.2 (2023-03-27)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @netacea/akamai
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## 5.0.1 (2023-03-27)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @netacea/akamai
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
## 4.5.6 (2023-03-24)
|
|
7
23
|
|
|
8
24
|
**Note:** Version bump only for package @netacea/akamai
|
package/dist/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@netacea/akamai",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.2",
|
|
4
4
|
"description": "Netacea Akamai CDN Integration",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
|
-
"test": "npm run test:unit && npm run test:integration",
|
|
8
|
+
"test": "npm run test:unit && npm run test:integration:no-clean",
|
|
9
9
|
"test:integration": "npx nyc -r=lcov -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './tests/*.test.ts'",
|
|
10
|
+
"test:integration:no-clean": "npx nyc --no-clean -r=lcov -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './tests/*.test.ts'",
|
|
10
11
|
"test:unit": "npx nyc -r=lcov -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './unit_tests/*.test.ts'",
|
|
11
12
|
"test:regression": "npx nyc -r=lcov -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './regression_tests/*.test.ts'",
|
|
12
13
|
"lint": "npx eslint . --ext ts",
|
|
@@ -19,8 +20,8 @@
|
|
|
19
20
|
},
|
|
20
21
|
"license": "ISC",
|
|
21
22
|
"dependencies": {
|
|
22
|
-
"@netacea/netaceaintegrationbase": "^1.16.
|
|
23
|
-
"@netacea/netaceaintegrationtestrunner": "^1.7.
|
|
23
|
+
"@netacea/netaceaintegrationbase": "^1.16.8",
|
|
24
|
+
"@netacea/netaceaintegrationtestrunner": "^1.7.8",
|
|
24
25
|
"buffer": "^6.0.3",
|
|
25
26
|
"jssha": "^3.3.0"
|
|
26
27
|
},
|
|
@@ -50,6 +51,7 @@
|
|
|
50
51
|
"fetch": "^1.1.0",
|
|
51
52
|
"form-data": "^4.0.0",
|
|
52
53
|
"http-status-codes": "^2.2.0",
|
|
54
|
+
"jose": "^4.13.1",
|
|
53
55
|
"json2csv": "^5.0.7",
|
|
54
56
|
"node-fetch": "^2.6.1",
|
|
55
57
|
"nyc": "^15.1.0",
|
|
@@ -62,5 +64,5 @@
|
|
|
62
64
|
"tslib": "^2.0.3",
|
|
63
65
|
"typescript": "^4.0.3"
|
|
64
66
|
},
|
|
65
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "107c33b2c716c7ed9b9af3b599941f00d7dec51a"
|
|
66
68
|
}
|
package/dist/src/Akamai.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="@types/akamai-edgeworkers" />
|
|
2
2
|
import { InjectResponse, ComposeResultResponse, MakeRequestArgs, MakeRequestResponse, MitigateResponse, NetaceaBaseArgs, NetaceaMitigationType, NetaceaIngestType, NetaceaLogVersion, NetaceaMitigationResponse, IngestArgs, WebLog, V2WebLog, FindBestMitigationResponse, APICallResponse, NetaceaResponseBase, ProcessMitigateRequestArgs, NetaceaWorker } from '@netacea/netaceaintegrationbase';
|
|
3
|
+
import { CachedEncryption } from './CachedEncryption';
|
|
3
4
|
export interface ResponseProperties {
|
|
4
5
|
headers: Record<string, string>;
|
|
5
6
|
body?: string | undefined;
|
|
@@ -31,13 +32,15 @@ export default class Akamai implements NetaceaWorker<RequestArgs, Response> {
|
|
|
31
32
|
protected readonly captchaSiteKey?: string;
|
|
32
33
|
protected readonly captchaSecretKey?: string;
|
|
33
34
|
protected readonly logVersion: NetaceaLogVersion;
|
|
34
|
-
protected readonly encryptedCookies: string[];
|
|
35
35
|
protected ingestType: NetaceaIngestType;
|
|
36
36
|
protected mitigationType: NetaceaMitigationType;
|
|
37
|
-
enableMitigationProxyPass: boolean;
|
|
38
|
-
enableIngestProxyPass: boolean;
|
|
39
|
-
useSecretKeyFromAkamaiVariable: boolean;
|
|
40
|
-
useApiKeyFromAkamaiVariable: boolean;
|
|
37
|
+
protected enableMitigationProxyPass: boolean;
|
|
38
|
+
protected enableIngestProxyPass: boolean;
|
|
39
|
+
protected useSecretKeyFromAkamaiVariable: boolean;
|
|
40
|
+
protected useApiKeyFromAkamaiVariable: boolean;
|
|
41
|
+
protected cookieEncryptionKey: string | undefined;
|
|
42
|
+
protected cachedEncryption?: CachedEncryption;
|
|
43
|
+
protected encryptedCookies: string[];
|
|
41
44
|
constructor(args: AkamaiConstructorArgs);
|
|
42
45
|
requestHandler(request: EW.IngressClientRequest): Promise<void>;
|
|
43
46
|
private logToDataStream;
|
|
@@ -63,11 +66,12 @@ export default class Akamai implements NetaceaWorker<RequestArgs, Response> {
|
|
|
63
66
|
private getMitigationResponse;
|
|
64
67
|
private getMitHeaders;
|
|
65
68
|
private createAkamaiMitata;
|
|
66
|
-
private buildAkamaiCookieFromValues;
|
|
67
69
|
protected createMitata(clientIP: string, userId: string | undefined, match: number, mitigate: number, captcha: number, maxAge?: number, expiry?: number | undefined): Promise<string>;
|
|
68
70
|
protected verifyCaptcha(request: EW.IngressClientRequest): Promise<void>;
|
|
69
|
-
protected filterCookies(response: EW.EgressClientResponse): void
|
|
71
|
+
protected filterCookies(response: EW.EgressClientResponse): Promise<void>;
|
|
70
72
|
protected removeNetaceaHeaders(response: EW.EgressClientResponse): void;
|
|
73
|
+
protected encryptCookieValue(cookieValue: string): Promise<string>;
|
|
74
|
+
protected decryptCookieValue(encryptedCookieValue: string): Promise<string>;
|
|
71
75
|
runMitigation(args: RequestArgs): Promise<NetaceaMitigationResponse<Response>>;
|
|
72
76
|
protected readCookie(cookieName: string, cookies: string | string[] | null | undefined): Promise<string | undefined>;
|
|
73
77
|
protected callIngest(args: IngestArgs): Promise<void>;
|
|
@@ -90,7 +94,5 @@ export default class Akamai implements NetaceaWorker<RequestArgs, Response> {
|
|
|
90
94
|
protected processMitigateRequest(args: ProcessMitigateRequestArgs): Promise<ComposeResultResponse>;
|
|
91
95
|
protected setIngestOnlyMitataCookie(userId: string | undefined): Promise<NetaceaResponseBase>;
|
|
92
96
|
protected processIngest(args: RequestArgs): Promise<NetaceaResponseBase>;
|
|
93
|
-
protected encryptCookieValue(cookieValue: string): Promise<string>;
|
|
94
|
-
protected decryptCookieValue(encryptedCookieValue: string): Promise<string>;
|
|
95
97
|
}
|
|
96
98
|
export {};
|
package/dist/src/Akamai.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { NetaceaMitigationType, matchMitataCookie, NetaceaIngestType,
|
|
2
|
-
import {
|
|
1
|
+
import { NetaceaMitigationType, matchMitataCookie, NetaceaIngestType, NetaceaLogVersion, correctTimeout, dictionary, safeParseInt, ingestIgnoredIpValue } from '@netacea/netaceaintegrationbase';
|
|
2
|
+
import { checkMitataCookie, createMitataCookie, generateId } from './mitataCookie';
|
|
3
|
+
import { CachedEncryption } from './CachedEncryption';
|
|
3
4
|
import * as pack from '../package.json';
|
|
4
5
|
import { httpRequest } from 'http-request';
|
|
5
6
|
import { logger } from 'log';
|
|
@@ -16,9 +17,9 @@ function configureMitataExpiry(mitigationType, expirySeconds) {
|
|
|
16
17
|
}
|
|
17
18
|
export default class Akamai {
|
|
18
19
|
constructor(args) {
|
|
19
|
-
this.encryptedCookies = [];
|
|
20
20
|
this.enableMitigationProxyPass = true;
|
|
21
21
|
this.enableIngestProxyPass = true;
|
|
22
|
+
this.encryptedCookies = [];
|
|
22
23
|
const { apiKey, secretKey, timeout = 3000, mitigationServiceUrl = 'https://mitigations.netacea.net', ingestServiceUrl = 'https://ingest.netacea.net', mitigationType = NetaceaMitigationType.INGEST, captchaSiteKey, captchaSecretKey, ingestType = NetaceaIngestType.HTTP, kinesis, logVersion, mitataCookieExpirySeconds, netaceaCookieExpirySeconds, netaceaCookieName, netaceaCaptchaCookieName } = args;
|
|
23
24
|
this.apiKey = apiKey ?? '';
|
|
24
25
|
this.secretKey = secretKey ?? '';
|
|
@@ -50,7 +51,6 @@ export default class Akamai {
|
|
|
50
51
|
this.ingestType = args.ingestType ?? DEFAULT_INGEST_TYPE;
|
|
51
52
|
this.useSecretKeyFromAkamaiVariable = !Boolean(args.secretKey);
|
|
52
53
|
this.useApiKeyFromAkamaiVariable = !Boolean(args.apiKey);
|
|
53
|
-
checkMitataCookie(warmupCookie.cookie, warmupCookie.clientIP, warmupCookie.secretKey);
|
|
54
54
|
}
|
|
55
55
|
async requestHandler(request) {
|
|
56
56
|
this.initConfiguration(request);
|
|
@@ -91,6 +91,7 @@ export default class Akamai {
|
|
|
91
91
|
if (this.useSecretKeyFromAkamaiVariable) {
|
|
92
92
|
this.secretKey = request.getVariable('PMUSER_NETACEA_SECRET_KEY') ?? '';
|
|
93
93
|
}
|
|
94
|
+
this.cookieEncryptionKey = request.getVariable('PMUSER_NETACEA_ENCRYPTION_KEY');
|
|
94
95
|
}
|
|
95
96
|
configureApiEndpoints(request) {
|
|
96
97
|
const mitigationServiceUrlVar = request.getVariable('PMUSER_NETACEA_MITIGATION_URL');
|
|
@@ -118,12 +119,21 @@ export default class Akamai {
|
|
|
118
119
|
const fetchedCaptchaCookieName = request.getVariable('PMUSER_NETACEA_CAPT_COOKIE_NAME');
|
|
119
120
|
this.netaceaCookieName = fetchedCookieName ?? this.netaceaCookieName;
|
|
120
121
|
this.netaceaCaptchaCookieName = fetchedCaptchaCookieName ?? this.netaceaCaptchaCookieName;
|
|
122
|
+
this.encryptedCookies = [
|
|
123
|
+
this.netaceaCookieName,
|
|
124
|
+
this.netaceaCaptchaCookieName
|
|
125
|
+
];
|
|
121
126
|
}
|
|
122
127
|
initConfiguration(request) {
|
|
123
128
|
this.populateKeys(request);
|
|
124
129
|
this.configureApiEndpoints(request);
|
|
125
130
|
this.configureIngestAndMitigationTypes(request);
|
|
126
131
|
this.configureCookieNames(request);
|
|
132
|
+
if (this.cookieEncryptionKey !== undefined && this.cookieEncryptionKey !== '') {
|
|
133
|
+
this.cachedEncryption = new CachedEncryption({
|
|
134
|
+
encryptionKey: this.cookieEncryptionKey ?? ''
|
|
135
|
+
});
|
|
136
|
+
}
|
|
127
137
|
}
|
|
128
138
|
async handleMitResult(request) {
|
|
129
139
|
const mitResult = await this.runMitigation(request);
|
|
@@ -309,7 +319,7 @@ export default class Akamai {
|
|
|
309
319
|
this.initConfiguration(request);
|
|
310
320
|
const isCaptchaPost = this.isUrlCaptchaPost(request.path, request.method);
|
|
311
321
|
if (isCaptchaPost) {
|
|
312
|
-
this.filterCookies(response);
|
|
322
|
+
await this.filterCookies(response);
|
|
313
323
|
}
|
|
314
324
|
const protoMitata = isCaptchaPost
|
|
315
325
|
? this.buildProtoMitataFromNetaceaHeaders(request, response)
|
|
@@ -398,10 +408,7 @@ export default class Akamai {
|
|
|
398
408
|
}
|
|
399
409
|
const mitataCode = [match, mitigate, captcha].join('');
|
|
400
410
|
const mitataValue = await createMitataCookie(clientIP, userId, mitataExpiry, this.secretKey, mitataCode);
|
|
401
|
-
return this.
|
|
402
|
-
}
|
|
403
|
-
buildAkamaiCookieFromValues(cookieName, value, maxAge, path = '/') {
|
|
404
|
-
return `${cookieName}=${value}; Max-Age=${maxAge}; Path=${path}`;
|
|
411
|
+
return await this.buildCookieFromValues(this.netaceaCookieName, mitataValue, maxAge, '/');
|
|
405
412
|
}
|
|
406
413
|
async createMitata(clientIP, userId, match, mitigate, captcha, maxAge = 86400, expiry = undefined) {
|
|
407
414
|
const AkamaiCookieObj = {
|
|
@@ -428,11 +435,21 @@ export default class Akamai {
|
|
|
428
435
|
request.setHeader('x-netacea-userid', userId);
|
|
429
436
|
request.route({ origin: 'mitigations' });
|
|
430
437
|
}
|
|
431
|
-
filterCookies(response) {
|
|
438
|
+
async filterCookies(response) {
|
|
432
439
|
const resCookies = response.getHeader('set-cookie');
|
|
433
|
-
const mitataCaptchaCookie = resCookies
|
|
440
|
+
const mitataCaptchaCookie = resCookies
|
|
441
|
+
?.find(cookie => cookie.startsWith('_mitatacaptcha='));
|
|
434
442
|
if (mitataCaptchaCookie !== undefined) {
|
|
435
|
-
|
|
443
|
+
const setCookiePayload = mitataCaptchaCookie
|
|
444
|
+
.slice(mitataCaptchaCookie.indexOf('=') + 1);
|
|
445
|
+
let [captchaCookieValue, ...attributes] = setCookiePayload.split(/; ?/);
|
|
446
|
+
if (this.cachedEncryption !== undefined) {
|
|
447
|
+
captchaCookieValue = await this.cachedEncryption.encrypt(captchaCookieValue);
|
|
448
|
+
}
|
|
449
|
+
response.setHeader('set-cookie', [
|
|
450
|
+
`${this.netaceaCaptchaCookieName}=${captchaCookieValue}`,
|
|
451
|
+
...attributes
|
|
452
|
+
].join('; '));
|
|
436
453
|
}
|
|
437
454
|
}
|
|
438
455
|
removeNetaceaHeaders(response) {
|
|
@@ -444,6 +461,18 @@ export default class Akamai {
|
|
|
444
461
|
response.removeHeader('x-netacea-mitatacaptcha-expiry');
|
|
445
462
|
response.removeHeader('x-netacea-mitatacaptcha-value');
|
|
446
463
|
}
|
|
464
|
+
async encryptCookieValue(cookieValue) {
|
|
465
|
+
if (this.cachedEncryption !== undefined) {
|
|
466
|
+
return await this.cachedEncryption.encrypt(cookieValue);
|
|
467
|
+
}
|
|
468
|
+
return cookieValue;
|
|
469
|
+
}
|
|
470
|
+
async decryptCookieValue(encryptedCookieValue) {
|
|
471
|
+
if (this.cachedEncryption !== undefined) {
|
|
472
|
+
return await this.cachedEncryption.decrypt(encryptedCookieValue);
|
|
473
|
+
}
|
|
474
|
+
return encryptedCookieValue;
|
|
475
|
+
}
|
|
447
476
|
async runMitigation(args) {
|
|
448
477
|
try {
|
|
449
478
|
switch (this.mitigationType) {
|
|
@@ -833,11 +862,5 @@ export default class Akamai {
|
|
|
833
862
|
setCookie: []
|
|
834
863
|
};
|
|
835
864
|
}
|
|
836
|
-
async encryptCookieValue(cookieValue) {
|
|
837
|
-
return cookieValue;
|
|
838
|
-
}
|
|
839
|
-
async decryptCookieValue(encryptedCookieValue) {
|
|
840
|
-
return encryptedCookieValue;
|
|
841
|
-
}
|
|
842
865
|
}
|
|
843
866
|
//# sourceMappingURL=Akamai.js.map
|
package/dist/src/Akamai.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Akamai.js","sourceRoot":"","sources":["../../src/Akamai.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Akamai.js","sourceRoot":"","sources":["../../src/Akamai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class CachedEncryption {
|
|
2
|
+
private encryptionKey;
|
|
3
|
+
private cache;
|
|
4
|
+
constructor(args: {
|
|
5
|
+
encryptionKey: string;
|
|
6
|
+
cacheMaxSize?: number;
|
|
7
|
+
});
|
|
8
|
+
getCacheSize(): number;
|
|
9
|
+
private memoizeFn;
|
|
10
|
+
encrypt(plaintext: string): Promise<string>;
|
|
11
|
+
decrypt(jwe: string): Promise<string>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { createJWE, decryptJWE } from './jwe';
|
|
2
|
+
class Cache {
|
|
3
|
+
constructor(maxSize) {
|
|
4
|
+
this.maxSize = maxSize;
|
|
5
|
+
this.cachedItems = [];
|
|
6
|
+
}
|
|
7
|
+
getCacheSize() {
|
|
8
|
+
return this.cachedItems.length;
|
|
9
|
+
}
|
|
10
|
+
delete(key) {
|
|
11
|
+
this.cachedItems = this.cachedItems
|
|
12
|
+
.filter(item => item.key !== key);
|
|
13
|
+
}
|
|
14
|
+
add(key, value) {
|
|
15
|
+
this.delete(key);
|
|
16
|
+
this.cachedItems.push({ key, value });
|
|
17
|
+
if (this.cachedItems.length > this.maxSize) {
|
|
18
|
+
this.cachedItems.shift();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
get(key) {
|
|
22
|
+
return this.cachedItems
|
|
23
|
+
.find(item => item.key === key);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export class CachedEncryption {
|
|
27
|
+
constructor(args) {
|
|
28
|
+
this.encryptionKey = args.encryptionKey;
|
|
29
|
+
this.cache = new Cache(args.cacheMaxSize ?? 5);
|
|
30
|
+
}
|
|
31
|
+
getCacheSize() {
|
|
32
|
+
return this.cache.getCacheSize();
|
|
33
|
+
}
|
|
34
|
+
async memoizeFn(cacheKey, fn) {
|
|
35
|
+
const cachedValue = this.cache.get(cacheKey);
|
|
36
|
+
if (cachedValue !== undefined) {
|
|
37
|
+
return cachedValue.value;
|
|
38
|
+
}
|
|
39
|
+
const result = await fn();
|
|
40
|
+
this.cache.add(cacheKey, result);
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
async encrypt(plaintext) {
|
|
44
|
+
const cacheKey = `encrypt::${plaintext}`;
|
|
45
|
+
return await this.memoizeFn(cacheKey, async () => {
|
|
46
|
+
return await createJWE({
|
|
47
|
+
plaintext,
|
|
48
|
+
secret: this.encryptionKey
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
async decrypt(jwe) {
|
|
53
|
+
const cacheKey = `encrypt::${jwe}`;
|
|
54
|
+
return await this.memoizeFn(cacheKey, async () => {
|
|
55
|
+
return await decryptJWE({
|
|
56
|
+
jwe,
|
|
57
|
+
secret: this.encryptionKey
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=CachedEncryption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CachedEncryption.js","sourceRoot":"","sources":["../../src/CachedEncryption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAU7C,MAAM,KAAK;IAIT,YAAa,OAAe;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;IACvB,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA;IAChC,CAAC;IAEM,MAAM,CAAE,GAAW;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW;aAChC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;IACrC,CAAC;IAEM,GAAG,CAAE,GAAW,EAAE,KAAQ;QAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;QACrC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE;YAC1C,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;SACzB;IACH,CAAC;IAEM,GAAG,CAAE,GAAW;QACrB,OAAO,IAAI,CAAC,WAAW;aACpB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;IACnC,CAAC;CACF;AAED,MAAM,OAAO,gBAAgB;IAI3B,YAAa,IAGZ;QACC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAA;IAChD,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAA;IAClC,CAAC;IAEO,KAAK,CAAC,SAAS,CAAE,QAAgB,EAAE,EAAyB;QAClE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC5C,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,OAAO,WAAW,CAAC,KAAK,CAAA;SACzB;QACD,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAA;QACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAChC,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,OAAO,CAAE,SAAiB;QAC9B,MAAM,QAAQ,GAAG,YAAY,SAAS,EAAE,CAAA;QACxC,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC/C,OAAO,MAAM,SAAS,CAAC;gBACrB,SAAS;gBACT,MAAM,EAAE,IAAI,CAAC,aAAa;aAC3B,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAE,GAAW;QACxB,MAAM,QAAQ,GAAG,YAAY,GAAG,EAAE,CAAA;QAClC,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC/C,OAAO,MAAM,UAAU,CAAC;gBACtB,GAAG;gBACH,MAAM,EAAE,IAAI,CAAC,aAAa;aAC3B,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Buffer } from 'buffer/';
|
|
2
|
+
export declare function base64UrlToBase64(str: string): string;
|
|
3
|
+
export declare function base64ToBase64Url(base64: string): string;
|
|
4
|
+
export declare function bufferFromBase64Url(s: string): Buffer;
|
|
5
|
+
export declare function toBase64Url(s: string | ArrayBuffer, encoding?: string): string;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Buffer } from 'buffer/';
|
|
2
|
+
export function base64UrlToBase64(str) {
|
|
3
|
+
return str
|
|
4
|
+
.replace(/-/g, '+')
|
|
5
|
+
.replace(/_/g, '/');
|
|
6
|
+
}
|
|
7
|
+
export function base64ToBase64Url(base64) {
|
|
8
|
+
return base64
|
|
9
|
+
.replace(/\+/g, '-')
|
|
10
|
+
.replace(/\//g, '_')
|
|
11
|
+
.replace(/=/g, '');
|
|
12
|
+
}
|
|
13
|
+
export function bufferFromBase64Url(s) {
|
|
14
|
+
return Buffer.from(base64UrlToBase64(s), 'base64');
|
|
15
|
+
}
|
|
16
|
+
export function toBase64Url(s, encoding) {
|
|
17
|
+
if (typeof s === 'string' && encoding === undefined) {
|
|
18
|
+
throw new Error('Encoding should be provided to convert strings.');
|
|
19
|
+
}
|
|
20
|
+
const buffer = typeof s === 'string'
|
|
21
|
+
? Buffer.from(s, encoding)
|
|
22
|
+
: Buffer.from(s);
|
|
23
|
+
const base64 = buffer.toString('base64');
|
|
24
|
+
return base64ToBase64Url(base64);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=encoding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAEhC,MAAM,UAAU,iBAAiB,CAAE,GAAW;IAC5C,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAE,MAAc;IAC/C,OAAO,MAAM;SACV,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAE,CAAS;IAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,WAAW,CAAE,CAAuB,EAAE,QAAiB;IACrE,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE;QACnD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;KACnE;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,QAAQ;QAClC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC;QAC1B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAElB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACxC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAA;AAClC,CAAC"}
|
package/dist/src/hash.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function sha256Hmac(value: Uint8Array,
|
|
1
|
+
export declare function sha256Hmac(value: Uint8Array, secret: string | Uint8Array): Promise<Uint8Array>;
|
|
2
2
|
export declare function isValidSha256Hmac(signature: Uint8Array, data: Uint8Array, secret: string): Promise<boolean>;
|
package/dist/src/hash.js
CHANGED
|
@@ -1,24 +1,30 @@
|
|
|
1
1
|
import { TextEncoder } from './akamaiEncoding';
|
|
2
2
|
import crypto from './akamaiCrypto';
|
|
3
3
|
import JsSHA from 'jssha';
|
|
4
|
-
|
|
4
|
+
function toBytes(key) {
|
|
5
|
+
if (typeof key === 'string') {
|
|
6
|
+
return new TextEncoder().encode(key);
|
|
7
|
+
}
|
|
8
|
+
return key;
|
|
9
|
+
}
|
|
10
|
+
export async function sha256Hmac(value, secret) {
|
|
5
11
|
const shaObj = new JsSHA('SHA-256', 'UINT8ARRAY', {
|
|
6
12
|
hmacKey: {
|
|
7
|
-
value:
|
|
8
|
-
format: '
|
|
13
|
+
value: toBytes(secret),
|
|
14
|
+
format: 'UINT8ARRAY'
|
|
9
15
|
}
|
|
10
16
|
});
|
|
11
17
|
shaObj.update(value);
|
|
12
18
|
return shaObj.getHash('UINT8ARRAY');
|
|
13
19
|
}
|
|
14
|
-
async function getSubtleCryptoHmacKey(
|
|
15
|
-
return await crypto.subtle.importKey('raw',
|
|
20
|
+
async function getSubtleCryptoHmacKey(key) {
|
|
21
|
+
return await crypto.subtle.importKey('raw', key, {
|
|
16
22
|
name: 'HMAC',
|
|
17
23
|
hash: 'SHA-256'
|
|
18
24
|
}, false, ['sign', 'verify']);
|
|
19
25
|
}
|
|
20
26
|
export async function isValidSha256Hmac(signature, data, secret) {
|
|
21
|
-
const key = await getSubtleCryptoHmacKey(secret);
|
|
27
|
+
const key = await getSubtleCryptoHmacKey(toBytes(secret));
|
|
22
28
|
return await crypto.subtle.verify('HMAC', key, signature, data);
|
|
23
29
|
}
|
|
24
30
|
//# sourceMappingURL=hash.js.map
|
package/dist/src/hash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,MAAM,MAAM,gBAAgB,CAAA;AACnC,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,MAAM,MAAM,gBAAgB,CAAA;AACnC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,SAAS,OAAO,CAAE,GAAwB;IACxC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;KACrC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAE,KAAiB,EAAE,MAA2B;IAC9E,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE;QAChD,OAAO,EAAE;YACP,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;YACtB,MAAM,EAAE,YAAY;SACrB;KACF,CAAC,CAAA;IAEF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpB,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;AACrC,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAE,GAAe;IACpD,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAClC,KAAK,EACL,GAAG,EACH;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;KAChB,EACD,KAAK,EACL,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAqB,EACrB,IAAgB,EAChB,MAAc;IAEd,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAEzD,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAC/B,MAAM,EACN,GAAG,EACH,SAAS,EACT,IAAI,CACL,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function createJWE({ plaintext, secret, ivBase64Url }: {
|
|
2
|
+
plaintext: string;
|
|
3
|
+
secret: string;
|
|
4
|
+
ivBase64Url?: string;
|
|
5
|
+
}): Promise<string>;
|
|
6
|
+
export declare function decryptJWE({ jwe, secret }: {
|
|
7
|
+
jwe: string;
|
|
8
|
+
secret: string;
|
|
9
|
+
}): Promise<string>;
|
package/dist/src/jwe.js
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import crypto from './akamaiCrypto';
|
|
2
|
+
import { TextEncoder, TextDecoder } from './akamaiEncoding';
|
|
3
|
+
import { sha256Hmac } from './hash';
|
|
4
|
+
import { toBase64Url, bufferFromBase64Url } from './encoding';
|
|
5
|
+
const keySize = 128;
|
|
6
|
+
const protectedHeaderB64URL = toBase64Url(JSON.stringify({
|
|
7
|
+
alg: 'dir',
|
|
8
|
+
enc: 'A128CBC-HS256'
|
|
9
|
+
}), 'utf-8');
|
|
10
|
+
const protectedHeaderBytes = new TextEncoder().encode(protectedHeaderB64URL);
|
|
11
|
+
async function importCBCKey(encKey) {
|
|
12
|
+
return await crypto.subtle.importKey('raw', encKey, { name: 'AES-CBC' }, false, ['encrypt', 'decrypt']);
|
|
13
|
+
}
|
|
14
|
+
function createIVforCBC() {
|
|
15
|
+
const iv = new Uint8Array(16);
|
|
16
|
+
crypto.getRandomValues(iv);
|
|
17
|
+
return iv;
|
|
18
|
+
}
|
|
19
|
+
async function encryptAESCBC(iv, key, data) {
|
|
20
|
+
const encrypted = await crypto.subtle.encrypt({
|
|
21
|
+
name: 'AES-CBC',
|
|
22
|
+
length: keySize,
|
|
23
|
+
iv
|
|
24
|
+
}, key, data);
|
|
25
|
+
return new Uint8Array(encrypted);
|
|
26
|
+
}
|
|
27
|
+
async function decryptAESCBC(iv, key, data) {
|
|
28
|
+
const decrypted = await crypto.subtle.decrypt({
|
|
29
|
+
name: 'AES-CBC',
|
|
30
|
+
length: keySize,
|
|
31
|
+
iv
|
|
32
|
+
}, key, data);
|
|
33
|
+
return new Uint8Array(decrypted);
|
|
34
|
+
}
|
|
35
|
+
export async function createJWE({ plaintext, secret, ivBase64Url }) {
|
|
36
|
+
const secretBytes = bufferFromBase64Url(secret);
|
|
37
|
+
const encKey = secretBytes.subarray(keySize >> 3);
|
|
38
|
+
const macKey = secretBytes.subarray(0, keySize >> 3);
|
|
39
|
+
const cryptoKey = await importCBCKey(encKey);
|
|
40
|
+
const iv = ivBase64Url !== undefined
|
|
41
|
+
? bufferFromBase64Url(ivBase64Url)
|
|
42
|
+
: createIVforCBC();
|
|
43
|
+
const plaintextBytes = new TextEncoder().encode(plaintext);
|
|
44
|
+
const encryptedBytes = await encryptAESCBC(iv, cryptoKey, plaintextBytes);
|
|
45
|
+
const ivBytes = new Uint8Array(iv);
|
|
46
|
+
const macData = concatMacData(protectedHeaderBytes, ivBytes, encryptedBytes);
|
|
47
|
+
const macBytes = await signMac(macData, macKey);
|
|
48
|
+
return [
|
|
49
|
+
protectedHeaderB64URL,
|
|
50
|
+
'',
|
|
51
|
+
toBase64Url(iv),
|
|
52
|
+
toBase64Url(encryptedBytes),
|
|
53
|
+
toBase64Url(macBytes)
|
|
54
|
+
].join('.');
|
|
55
|
+
}
|
|
56
|
+
function parseJWE(jwe) {
|
|
57
|
+
const parts = jwe.split('.');
|
|
58
|
+
if (parts.length !== 5) {
|
|
59
|
+
throw new Error(`JWE should have 5 parts, got ${parts.length}`);
|
|
60
|
+
}
|
|
61
|
+
const [header, key, iv, payload, mac] = parts;
|
|
62
|
+
return {
|
|
63
|
+
header,
|
|
64
|
+
key,
|
|
65
|
+
iv,
|
|
66
|
+
payload,
|
|
67
|
+
mac
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export async function decryptJWE({ jwe, secret }) {
|
|
71
|
+
const secretBytes = bufferFromBase64Url(secret);
|
|
72
|
+
const encKey = secretBytes.subarray(keySize >> 3);
|
|
73
|
+
const macKey = secretBytes.subarray(0, keySize >> 3);
|
|
74
|
+
const { header, iv, payload, mac } = parseJWE(jwe);
|
|
75
|
+
if (header !== protectedHeaderB64URL) {
|
|
76
|
+
throw new Error('Incorrect JWE header');
|
|
77
|
+
}
|
|
78
|
+
const ivBytes = bufferFromBase64Url(iv);
|
|
79
|
+
const payloadBytes = new Uint8Array(bufferFromBase64Url(payload));
|
|
80
|
+
const protectedHeaderBytes = new TextEncoder().encode(header);
|
|
81
|
+
const macData = concatMacData(protectedHeaderBytes, ivBytes, payloadBytes);
|
|
82
|
+
const macBytes = await signMac(macData, macKey);
|
|
83
|
+
if (toBase64Url(macBytes) !== mac) {
|
|
84
|
+
throw new Error('MAC does not match JWE data');
|
|
85
|
+
}
|
|
86
|
+
const cryptoKey = await importCBCKey(encKey);
|
|
87
|
+
const decryptedBytes = await decryptAESCBC(ivBytes, cryptoKey, payloadBytes);
|
|
88
|
+
return new TextDecoder().decode(decryptedBytes);
|
|
89
|
+
}
|
|
90
|
+
async function signMac(macData, macKey) {
|
|
91
|
+
const sig = await sha256Hmac(macData, macKey);
|
|
92
|
+
return sig.slice(0, keySize >> 3);
|
|
93
|
+
}
|
|
94
|
+
function concatMacData(protectedHeaderBytes, ivBytes, encryptedBytes) {
|
|
95
|
+
return concat([
|
|
96
|
+
protectedHeaderBytes,
|
|
97
|
+
ivBytes,
|
|
98
|
+
encryptedBytes,
|
|
99
|
+
uint64be(protectedHeaderBytes.length << 3)
|
|
100
|
+
]);
|
|
101
|
+
}
|
|
102
|
+
const MAX_INT32 = 2 ** 32;
|
|
103
|
+
function concat(buffers) {
|
|
104
|
+
const size = buffers.reduce((acc, { length }) => acc + length, 0);
|
|
105
|
+
const buf = new Uint8Array(size);
|
|
106
|
+
let i = 0;
|
|
107
|
+
buffers.forEach(buffer => {
|
|
108
|
+
buf.set(buffer, i);
|
|
109
|
+
i += buffer.length;
|
|
110
|
+
});
|
|
111
|
+
return buf;
|
|
112
|
+
}
|
|
113
|
+
function writeUInt32BE(buf, value, offset) {
|
|
114
|
+
if (value < 0 || value >= MAX_INT32) {
|
|
115
|
+
throw new RangeError(`value must be >= 0 and <= ${MAX_INT32 - 1}. Received ${value}`);
|
|
116
|
+
}
|
|
117
|
+
buf.set([value >>> 24, value >>> 16, value >>> 8, value & 0xff], offset);
|
|
118
|
+
}
|
|
119
|
+
function uint64be(value) {
|
|
120
|
+
const high = Math.floor(value / MAX_INT32);
|
|
121
|
+
const low = value % MAX_INT32;
|
|
122
|
+
const buf = new Uint8Array(8);
|
|
123
|
+
writeUInt32BE(buf, high, 0);
|
|
124
|
+
writeUInt32BE(buf, low, 4);
|
|
125
|
+
return buf;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=jwe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwe.js","sourceRoot":"","sources":["../../src/jwe.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@netacea/akamai",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.2",
|
|
4
4
|
"description": "Netacea Akamai CDN Integration",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
|
-
"test": "npm run test:unit && npm run test:integration",
|
|
8
|
+
"test": "npm run test:unit && npm run test:integration:no-clean",
|
|
9
9
|
"test:integration": "npx nyc -r=lcov -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './tests/*.test.ts'",
|
|
10
|
+
"test:integration:no-clean": "npx nyc --no-clean -r=lcov -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './tests/*.test.ts'",
|
|
10
11
|
"test:unit": "npx nyc -r=lcov -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './unit_tests/*.test.ts'",
|
|
11
12
|
"test:regression": "npx nyc -r=lcov -r=html -r=text tape -r ts-node/register -r tsconfig-paths/register './regression_tests/*.test.ts'",
|
|
12
13
|
"lint": "npx eslint . --ext ts",
|
|
@@ -19,8 +20,8 @@
|
|
|
19
20
|
},
|
|
20
21
|
"license": "ISC",
|
|
21
22
|
"dependencies": {
|
|
22
|
-
"@netacea/netaceaintegrationbase": "^1.16.
|
|
23
|
-
"@netacea/netaceaintegrationtestrunner": "^1.7.
|
|
23
|
+
"@netacea/netaceaintegrationbase": "^1.16.8",
|
|
24
|
+
"@netacea/netaceaintegrationtestrunner": "^1.7.8",
|
|
24
25
|
"buffer": "^6.0.3",
|
|
25
26
|
"jssha": "^3.3.0"
|
|
26
27
|
},
|
|
@@ -50,6 +51,7 @@
|
|
|
50
51
|
"fetch": "^1.1.0",
|
|
51
52
|
"form-data": "^4.0.0",
|
|
52
53
|
"http-status-codes": "^2.2.0",
|
|
54
|
+
"jose": "^4.13.1",
|
|
53
55
|
"json2csv": "^5.0.7",
|
|
54
56
|
"node-fetch": "^2.6.1",
|
|
55
57
|
"nyc": "^15.1.0",
|
|
@@ -62,5 +64,5 @@
|
|
|
62
64
|
"tslib": "^2.0.3",
|
|
63
65
|
"typescript": "^4.0.3"
|
|
64
66
|
},
|
|
65
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "107c33b2c716c7ed9b9af3b599941f00d7dec51a"
|
|
66
68
|
}
|