werift 0.25.0 → 0.25.1
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/lib/common/src/binaryData.d.ts +116 -0
- package/lib/common/src/binaryData.js +421 -0
- package/lib/common/src/binaryData.js.map +1 -0
- package/lib/common/src/index.d.ts +1 -0
- package/lib/common/src/index.js +24 -0
- package/lib/common/src/index.js.map +1 -1
- package/lib/dtls/src/cipher/prf.d.ts +2 -2
- package/lib/dtls/src/cipher/prf.js +2 -2
- package/lib/dtls/src/cipher/prf.js.map +1 -1
- package/lib/dtls/src/context/cipher.js +4 -3
- package/lib/dtls/src/context/cipher.js.map +1 -1
- package/lib/dtls/src/handshake/binary.d.ts +12 -8
- package/lib/dtls/src/handshake/binary.js +3 -2
- package/lib/dtls/src/handshake/binary.js.map +1 -1
- package/lib/dtls/src/handshake/extensions/ellipticCurves.d.ts +4 -3
- package/lib/dtls/src/handshake/extensions/ellipticCurves.js +7 -6
- package/lib/dtls/src/handshake/extensions/ellipticCurves.js.map +1 -1
- package/lib/dtls/src/handshake/extensions/renegotiationIndication.d.ts +4 -3
- package/lib/dtls/src/handshake/extensions/renegotiationIndication.js +6 -6
- package/lib/dtls/src/handshake/extensions/renegotiationIndication.js.map +1 -1
- package/lib/dtls/src/handshake/extensions/signature.d.ts +7 -3
- package/lib/dtls/src/handshake/extensions/signature.js +6 -6
- package/lib/dtls/src/handshake/extensions/signature.js.map +1 -1
- package/lib/dtls/src/handshake/extensions/useSrtp.d.ts +4 -3
- package/lib/dtls/src/handshake/extensions/useSrtp.js +6 -6
- package/lib/dtls/src/handshake/extensions/useSrtp.js.map +1 -1
- package/lib/dtls/src/handshake/message/alert.d.ts +4 -3
- package/lib/dtls/src/handshake/message/alert.js +6 -6
- package/lib/dtls/src/handshake/message/alert.js.map +1 -1
- package/lib/dtls/src/handshake/message/certificate.d.ts +3 -2
- package/lib/dtls/src/handshake/message/certificate.js +5 -5
- package/lib/dtls/src/handshake/message/certificate.js.map +1 -1
- package/lib/dtls/src/handshake/message/changeCipherSpec.d.ts +3 -2
- package/lib/dtls/src/handshake/message/changeCipherSpec.js +5 -5
- package/lib/dtls/src/handshake/message/changeCipherSpec.js.map +1 -1
- package/lib/dtls/src/handshake/message/client/certificateVerify.d.ts +4 -3
- package/lib/dtls/src/handshake/message/client/certificateVerify.js +6 -6
- package/lib/dtls/src/handshake/message/client/certificateVerify.js.map +1 -1
- package/lib/dtls/src/handshake/message/client/hello.d.ts +14 -10
- package/lib/dtls/src/handshake/message/client/hello.js +9 -9
- package/lib/dtls/src/handshake/message/client/hello.js.map +1 -1
- package/lib/dtls/src/handshake/message/client/keyExchange.d.ts +3 -2
- package/lib/dtls/src/handshake/message/client/keyExchange.js +5 -5
- package/lib/dtls/src/handshake/message/client/keyExchange.js.map +1 -1
- package/lib/dtls/src/handshake/message/server/certificateRequest.d.ts +8 -4
- package/lib/dtls/src/handshake/message/server/certificateRequest.js +7 -7
- package/lib/dtls/src/handshake/message/server/certificateRequest.js.map +1 -1
- package/lib/dtls/src/handshake/message/server/hello.d.ts +9 -8
- package/lib/dtls/src/handshake/message/server/hello.js +11 -11
- package/lib/dtls/src/handshake/message/server/hello.js.map +1 -1
- package/lib/dtls/src/handshake/message/server/helloDone.d.ts +1 -1
- package/lib/dtls/src/handshake/message/server/helloDone.js +4 -4
- package/lib/dtls/src/handshake/message/server/helloDone.js.map +1 -1
- package/lib/dtls/src/handshake/message/server/helloVerifyRequest.d.ts +5 -4
- package/lib/dtls/src/handshake/message/server/helloVerifyRequest.js +5 -5
- package/lib/dtls/src/handshake/message/server/helloVerifyRequest.js.map +1 -1
- package/lib/dtls/src/handshake/message/server/keyExchange.d.ts +10 -9
- package/lib/dtls/src/handshake/message/server/keyExchange.js +11 -10
- package/lib/dtls/src/handshake/message/server/keyExchange.js.map +1 -1
- package/lib/dtls/src/handshake/random.d.ts +5 -4
- package/lib/dtls/src/handshake/random.js +6 -6
- package/lib/dtls/src/handshake/random.js.map +1 -1
- package/lib/dtls/src/record/message/fragment.d.ts +8 -7
- package/lib/dtls/src/record/message/fragment.js +10 -10
- package/lib/dtls/src/record/message/fragment.js.map +1 -1
- package/lib/dtls/src/record/message/header.d.ts +8 -7
- package/lib/dtls/src/record/message/header.js +8 -8
- package/lib/dtls/src/record/message/header.js.map +1 -1
- package/lib/dtls/src/record/message/plaintext.d.ts +1 -1
- package/lib/dtls/src/socket.d.ts +4 -4
- package/lib/dtls/src/socket.js +6 -6
- package/lib/dtls/src/socket.js.map +1 -1
- package/lib/dtls/src/util/binary.d.ts +2 -1
- package/lib/dtls/src/util/binary.js +3 -2
- package/lib/dtls/src/util/binary.js.map +1 -1
- package/lib/index.mjs +517 -210
- package/lib/nonstandard/index.mjs +500 -194
- package/lib/polyfill/dom.mjs +538 -232
- package/lib/polyfill/index.mjs +538 -232
- package/package.json +1 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"certificate.js","sourceRoot":"","sources":["../../../../../../dtls/src/handshake/message/certificate.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"certificate.js","sourceRoot":"","sources":["../../../../../../dtls/src/handshake/message/certificate.ts"],"names":[],"mappings":";;;AAAA,iDAAkD;AAElD,4DAAoE;AAEpE,sCAAsC;AACtC,oCAAyC;AAEzC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAU,CAAC;AAE7C,6BAA6B;AAC7B,6BAA6B;AAE7B,MAAa,WAAW;IAOtB,YAAmB,eAAyB;QAAhC;;;;mBAAO,eAAe;WAAU;QAN5C;;;;mBAAU,qBAAa,CAAC,cAAc;WAAC;QACvC;;;;;WAAoB;IAK2B,CAAC;IAEhD,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,WAAW,CAAC,SAAgB,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,IAAI,WAAW;QACpB,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAChD,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,UAAU;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,8BAAmB,CAC5B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAW,EAChB,CAAC,EACD,IAAI,CAAC,MAAM,EACX,IAAI,CACL,CAAC;IACJ,CAAC;;AAlCH,kCAmCC;AAhCiB;;;;WAAO;QACrB,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,kBAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;KACjE;EAFmB,CAElB","sourcesContent":["import { binaryData } from \"../../imports/common\";\n\nimport { FragmentedHandshake } from \"../../record/message/fragment\";\nimport type { Handshake } from \"../../typings/domain\";\nimport { ASN11Cert } from \"../binary\";\nimport { HandshakeType } from \"../const\";\n\nconst { decode, encode, types } = binaryData;\n\n// 7.4.2. Server Certificate\n// 7.4.6. Client Certificate\n\nexport class Certificate implements Handshake {\n msgType = HandshakeType.certificate_11;\n messageSeq?: number;\n static readonly spec = {\n certificateList: types.array(ASN11Cert, types.uint24be, \"bytes\"),\n };\n\n constructor(public certificateList: Buffer[]) {}\n\n static createEmpty() {\n return new Certificate(undefined as any);\n }\n\n static deSerialize(buf: Buffer) {\n return new Certificate(\n //@ts-ignore\n ...Object.values(decode(buf, Certificate.spec)),\n );\n }\n\n serialize() {\n return encode(this, Certificate.spec);\n }\n\n toFragment() {\n const body = this.serialize();\n return new FragmentedHandshake(\n this.msgType,\n body.length,\n this.messageSeq!,\n 0,\n body.length,\n body,\n );\n }\n}\n"]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { binaryData } from "../../imports/common";
|
|
1
2
|
export declare class ChangeCipherSpec {
|
|
2
3
|
type: number;
|
|
3
4
|
static readonly spec: {
|
|
4
|
-
type:
|
|
5
|
+
type: binaryData.NumberType;
|
|
5
6
|
};
|
|
6
7
|
constructor(type?: number);
|
|
7
8
|
static createEmpty(): ChangeCipherSpec;
|
|
8
9
|
static deSerialize(buf: Buffer): ChangeCipherSpec;
|
|
9
|
-
serialize(): Buffer<
|
|
10
|
+
serialize(): Buffer<ArrayBufferLike>;
|
|
10
11
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ChangeCipherSpec = void 0;
|
|
4
|
-
const
|
|
4
|
+
const common_1 = require("../../imports/common");
|
|
5
|
+
const { decode, encode, types } = common_1.binaryData;
|
|
5
6
|
// 7.1. Change Cipher Spec Protocol
|
|
6
7
|
class ChangeCipherSpec {
|
|
7
8
|
constructor(type = 1) {
|
|
@@ -18,11 +19,10 @@ class ChangeCipherSpec {
|
|
|
18
19
|
static deSerialize(buf) {
|
|
19
20
|
return new ChangeCipherSpec(
|
|
20
21
|
//@ts-ignore
|
|
21
|
-
...Object.values(
|
|
22
|
+
...Object.values(decode(buf, ChangeCipherSpec.spec)));
|
|
22
23
|
}
|
|
23
24
|
serialize() {
|
|
24
|
-
|
|
25
|
-
return Buffer.from(res);
|
|
25
|
+
return encode(this, ChangeCipherSpec.spec);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
exports.ChangeCipherSpec = ChangeCipherSpec;
|
|
@@ -31,7 +31,7 @@ Object.defineProperty(ChangeCipherSpec, "spec", {
|
|
|
31
31
|
configurable: true,
|
|
32
32
|
writable: true,
|
|
33
33
|
value: {
|
|
34
|
-
type:
|
|
34
|
+
type: types.uint8,
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
37
|
//# sourceMappingURL=changeCipherSpec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changeCipherSpec.js","sourceRoot":"","sources":["../../../../../../dtls/src/handshake/message/changeCipherSpec.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"changeCipherSpec.js","sourceRoot":"","sources":["../../../../../../dtls/src/handshake/message/changeCipherSpec.ts"],"names":[],"mappings":";;;AAAA,iDAAkD;AAElD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAU,CAAC;AAE7C,oCAAoC;AAEpC,MAAa,gBAAgB;IAK3B,YAAmB,OAAO,CAAC;QAAf;;;;mBAAO,IAAI;WAAI;IAAG,CAAC;IAE/B,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,gBAAgB,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,IAAI,gBAAgB;QACzB,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CACrD,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;;AApBH,4CAqBC;AApBiB;;;;WAAO;QACrB,IAAI,EAAE,KAAK,CAAC,KAAK;KAClB;EAFmB,CAElB","sourcesContent":["import { binaryData } from \"../../imports/common\";\n\nconst { decode, encode, types } = binaryData;\n\n// 7.1. Change Cipher Spec Protocol\n\nexport class ChangeCipherSpec {\n static readonly spec = {\n type: types.uint8,\n };\n\n constructor(public type = 1) {}\n\n static createEmpty() {\n return new ChangeCipherSpec();\n }\n\n static deSerialize(buf: Buffer) {\n return new ChangeCipherSpec(\n //@ts-ignore\n ...Object.values(decode(buf, ChangeCipherSpec.spec)),\n );\n }\n\n serialize() {\n return encode(this, ChangeCipherSpec.spec);\n }\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { binaryData } from "../../../imports/common";
|
|
1
2
|
import type { SignatureSchemes } from "../../../cipher/const";
|
|
2
3
|
import { FragmentedHandshake } from "../../../record/message/fragment";
|
|
3
4
|
import type { Handshake } from "../../../typings/domain";
|
|
@@ -8,12 +9,12 @@ export declare class CertificateVerify implements Handshake {
|
|
|
8
9
|
msgType: HandshakeType;
|
|
9
10
|
messageSeq?: number;
|
|
10
11
|
static readonly spec: {
|
|
11
|
-
algorithm:
|
|
12
|
-
signature:
|
|
12
|
+
algorithm: binaryData.NumberType;
|
|
13
|
+
signature: binaryData.DataType<Buffer<ArrayBufferLike>>;
|
|
13
14
|
};
|
|
14
15
|
constructor(algorithm: SignatureSchemes, signature: Buffer);
|
|
15
16
|
static createEmpty(): CertificateVerify;
|
|
16
17
|
static deSerialize(buf: Buffer): CertificateVerify;
|
|
17
|
-
serialize(): Buffer<
|
|
18
|
+
serialize(): Buffer<ArrayBufferLike>;
|
|
18
19
|
toFragment(): FragmentedHandshake;
|
|
19
20
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CertificateVerify = void 0;
|
|
4
|
-
const
|
|
4
|
+
const common_1 = require("../../../imports/common");
|
|
5
5
|
const fragment_1 = require("../../../record/message/fragment");
|
|
6
6
|
const const_1 = require("../../const");
|
|
7
|
+
const { decode, encode, types } = common_1.binaryData;
|
|
7
8
|
class CertificateVerify {
|
|
8
9
|
constructor(algorithm, signature) {
|
|
9
10
|
Object.defineProperty(this, "algorithm", {
|
|
@@ -35,14 +36,13 @@ class CertificateVerify {
|
|
|
35
36
|
return new CertificateVerify(undefined, undefined);
|
|
36
37
|
}
|
|
37
38
|
static deSerialize(buf) {
|
|
38
|
-
const res =
|
|
39
|
+
const res = decode(buf, CertificateVerify.spec);
|
|
39
40
|
return new CertificateVerify(
|
|
40
41
|
//@ts-ignore
|
|
41
42
|
...Object.values(res));
|
|
42
43
|
}
|
|
43
44
|
serialize() {
|
|
44
|
-
|
|
45
|
-
return Buffer.from(res);
|
|
45
|
+
return encode(this, CertificateVerify.spec);
|
|
46
46
|
}
|
|
47
47
|
toFragment() {
|
|
48
48
|
const body = this.serialize();
|
|
@@ -55,8 +55,8 @@ Object.defineProperty(CertificateVerify, "spec", {
|
|
|
55
55
|
configurable: true,
|
|
56
56
|
writable: true,
|
|
57
57
|
value: {
|
|
58
|
-
algorithm:
|
|
59
|
-
signature:
|
|
58
|
+
algorithm: types.uint16be,
|
|
59
|
+
signature: types.buffer(types.uint16be),
|
|
60
60
|
}
|
|
61
61
|
});
|
|
62
62
|
//# sourceMappingURL=certificateVerify.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"certificateVerify.js","sourceRoot":"","sources":["../../../../../../../dtls/src/handshake/message/client/certificateVerify.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"certificateVerify.js","sourceRoot":"","sources":["../../../../../../../dtls/src/handshake/message/client/certificateVerify.ts"],"names":[],"mappings":";;;AAAA,oDAAqD;AAGrD,+DAAuE;AAEvE,uCAA4C;AAE5C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAU,CAAC;AAE7C,MAAa,iBAAiB;IAS5B,YACS,SAA2B,EAC3B,SAAiB;QADxB;;;;mBAAO,SAAS;WAAkB;QAClC;;;;mBAAO,SAAS;WAAQ;QAV1B;;;;mBAAU,qBAAa,CAAC,qBAAqB;WAAC;QAC9C;;;;;WAAoB;IAUjB,CAAC;IAEJ,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,iBAAiB,CAAC,SAAgB,EAAE,SAAgB,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,IAAI,iBAAiB;QAC1B,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CACtB,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,UAAU;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,8BAAmB,CAC5B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAW,EAChB,CAAC,EACD,IAAI,CAAC,MAAM,EACX,IAAI,CACL,CAAC;IACJ,CAAC;;AAxCH,8CAyCC;AArCiB;;;;WAAO;QACrB,SAAS,EAAE,KAAK,CAAC,QAAQ;QACzB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;KACxC;EAHmB,CAGlB","sourcesContent":["import { binaryData } from \"../../../imports/common\";\n\nimport type { SignatureSchemes } from \"../../../cipher/const\";\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport type { Handshake } from \"../../../typings/domain\";\nimport { HandshakeType } from \"../../const\";\n\nconst { decode, encode, types } = binaryData;\n\nexport class CertificateVerify implements Handshake {\n msgType = HandshakeType.certificate_verify_15;\n messageSeq?: number;\n\n static readonly spec = {\n algorithm: types.uint16be,\n signature: types.buffer(types.uint16be),\n };\n\n constructor(\n public algorithm: SignatureSchemes,\n public signature: Buffer,\n ) {}\n\n static createEmpty() {\n return new CertificateVerify(undefined as any, undefined as any);\n }\n\n static deSerialize(buf: Buffer) {\n const res = decode(buf, CertificateVerify.spec);\n return new CertificateVerify(\n //@ts-ignore\n ...Object.values(res),\n );\n }\n\n serialize() {\n return encode(this, CertificateVerify.spec);\n }\n\n toFragment() {\n const body = this.serialize();\n return new FragmentedHandshake(\n this.msgType,\n body.length,\n this.messageSeq!,\n 0,\n body.length,\n body,\n );\n }\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { binaryData } from "../../../imports/common";
|
|
1
2
|
import { FragmentedHandshake } from "../../../record/message/fragment";
|
|
2
3
|
import type { Extension } from "../../../typings/domain";
|
|
3
4
|
import { HandshakeType } from "../../const";
|
|
@@ -19,18 +20,21 @@ export declare class ClientHello {
|
|
|
19
20
|
messageSeq: number;
|
|
20
21
|
static readonly spec: {
|
|
21
22
|
clientVersion: {
|
|
22
|
-
major:
|
|
23
|
-
minor:
|
|
23
|
+
major: binaryData.NumberType;
|
|
24
|
+
minor: binaryData.NumberType;
|
|
24
25
|
};
|
|
25
26
|
random: {
|
|
26
|
-
gmt_unix_time:
|
|
27
|
-
random_bytes:
|
|
27
|
+
gmt_unix_time: binaryData.NumberType;
|
|
28
|
+
random_bytes: binaryData.DataType<Buffer<ArrayBufferLike>>;
|
|
28
29
|
};
|
|
29
|
-
sessionId:
|
|
30
|
-
cookie:
|
|
31
|
-
cipherSuites:
|
|
32
|
-
compressionMethods:
|
|
33
|
-
extensions:
|
|
30
|
+
sessionId: binaryData.DataType<Buffer<ArrayBufferLike>>;
|
|
31
|
+
cookie: binaryData.DataType<Buffer<ArrayBufferLike>>;
|
|
32
|
+
cipherSuites: binaryData.DataType<number[]>;
|
|
33
|
+
compressionMethods: binaryData.DataType<number[]>;
|
|
34
|
+
extensions: binaryData.DataType<{
|
|
35
|
+
type: number;
|
|
36
|
+
data: Buffer<ArrayBufferLike>;
|
|
37
|
+
}[]>;
|
|
34
38
|
};
|
|
35
39
|
constructor(clientVersion: {
|
|
36
40
|
major: number;
|
|
@@ -41,6 +45,6 @@ export declare class ClientHello {
|
|
|
41
45
|
}, sessionId: Buffer, cookie: Buffer, cipherSuites: number[], compressionMethods: number[], extensions: Extension[]);
|
|
42
46
|
static createEmpty(): ClientHello;
|
|
43
47
|
static deSerialize(buf: Buffer): ClientHello;
|
|
44
|
-
serialize(): Buffer<
|
|
48
|
+
serialize(): Buffer<ArrayBufferLike>;
|
|
45
49
|
toFragment(): FragmentedHandshake;
|
|
46
50
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ClientHello = void 0;
|
|
4
|
-
const
|
|
4
|
+
const common_1 = require("../../../imports/common");
|
|
5
5
|
const fragment_1 = require("../../../record/message/fragment");
|
|
6
6
|
const binary_1 = require("../../binary");
|
|
7
7
|
const const_1 = require("../../const");
|
|
8
8
|
const random_1 = require("../../random");
|
|
9
|
+
const { decode, encode, types } = common_1.binaryData;
|
|
9
10
|
// 7.4.1.2. Client Hello
|
|
10
11
|
class ClientHello {
|
|
11
12
|
constructor(clientVersion, random, sessionId, cookie, cipherSuites, compressionMethods, extensions) {
|
|
@@ -70,11 +71,10 @@ class ClientHello {
|
|
|
70
71
|
static deSerialize(buf) {
|
|
71
72
|
return new ClientHello(
|
|
72
73
|
//@ts-ignore
|
|
73
|
-
...Object.values(
|
|
74
|
+
...Object.values(decode(buf, ClientHello.spec)));
|
|
74
75
|
}
|
|
75
76
|
serialize() {
|
|
76
|
-
|
|
77
|
-
return Buffer.from(res);
|
|
77
|
+
return encode(this, ClientHello.spec);
|
|
78
78
|
}
|
|
79
79
|
toFragment() {
|
|
80
80
|
const body = this.serialize();
|
|
@@ -87,12 +87,12 @@ Object.defineProperty(ClientHello, "spec", {
|
|
|
87
87
|
configurable: true,
|
|
88
88
|
writable: true,
|
|
89
89
|
value: {
|
|
90
|
-
clientVersion: { major:
|
|
90
|
+
clientVersion: { major: types.uint8, minor: types.uint8 },
|
|
91
91
|
random: random_1.DtlsRandom.spec,
|
|
92
|
-
sessionId:
|
|
93
|
-
cookie:
|
|
94
|
-
cipherSuites:
|
|
95
|
-
compressionMethods:
|
|
92
|
+
sessionId: types.buffer(types.uint8),
|
|
93
|
+
cookie: types.buffer(types.uint8),
|
|
94
|
+
cipherSuites: types.array(types.uint16be, types.uint16be, "bytes"),
|
|
95
|
+
compressionMethods: types.array(types.uint8, types.uint8, "bytes"),
|
|
96
96
|
extensions: binary_1.ExtensionList,
|
|
97
97
|
}
|
|
98
98
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hello.js","sourceRoot":"","sources":["../../../../../../../dtls/src/handshake/message/client/hello.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"hello.js","sourceRoot":"","sources":["../../../../../../../dtls/src/handshake/message/client/hello.ts"],"names":[],"mappings":";;;AAAA,oDAAqD;AAErD,+DAAuE;AAEvE,yCAA6C;AAC7C,uCAA4C;AAC5C,yCAA0C;AAE1C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAU,CAAC;AAE7C,yBAAyB;AAEzB,MAAa,WAAW;IAatB,YACS,aAA+C,EAC/C,MAAuD,EACvD,SAAiB,EACjB,MAAc,EACd,YAAsB,EACtB,kBAA4B,EAC5B,UAAuB;QAN9B;;;;mBAAO,aAAa;WAAkC;QACtD;;;;mBAAO,MAAM;WAAiD;QAC9D;;;;mBAAO,SAAS;WAAQ;QACxB;;;;mBAAO,MAAM;WAAQ;QACrB;;;;mBAAO,YAAY;WAAU;QAC7B;;;;mBAAO,kBAAkB;WAAU;QACnC;;;;mBAAO,UAAU;WAAa;QAnBhC;;;;mBAAU,qBAAa,CAAC,cAAc;WAAC;QACvC;;;;mBAAqB,CAAC;WAAC;IAmBpB,CAAC;IAEJ,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,WAAW,CACpB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,CACjB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,IAAI,WAAW;QACpB,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAChD,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,UAAU;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,8BAAmB,CAC5B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,CAAC,EACD,IAAI,CAAC,MAAM,EACX,IAAI,CACL,CAAC;IACJ,CAAC;;AAxDH,kCAyDC;AAtDiB;;;;WAAO;QACrB,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;QACzD,MAAM,EAAE,mBAAU,CAAC,IAAI;QACvB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QACpC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QACjC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;QAClE,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC;QAClE,UAAU,EAAE,sBAAa;KAC1B;EARmB,CAQlB","sourcesContent":["import { binaryData } from \"../../../imports/common\";\n\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport type { Extension } from \"../../../typings/domain\";\nimport { ExtensionList } from \"../../binary\";\nimport { HandshakeType } from \"../../const\";\nimport { DtlsRandom } from \"../../random\";\n\nconst { decode, encode, types } = binaryData;\n\n// 7.4.1.2. Client Hello\n\nexport class ClientHello {\n msgType = HandshakeType.client_hello_1;\n messageSeq: number = 0;\n static readonly spec = {\n clientVersion: { major: types.uint8, minor: types.uint8 },\n random: DtlsRandom.spec,\n sessionId: types.buffer(types.uint8),\n cookie: types.buffer(types.uint8),\n cipherSuites: types.array(types.uint16be, types.uint16be, \"bytes\"),\n compressionMethods: types.array(types.uint8, types.uint8, \"bytes\"),\n extensions: ExtensionList,\n };\n\n constructor(\n public clientVersion: { major: number; minor: number },\n public random: { gmt_unix_time: number; random_bytes: Buffer },\n public sessionId: Buffer,\n public cookie: Buffer,\n public cipherSuites: number[],\n public compressionMethods: number[],\n public extensions: Extension[],\n ) {}\n\n static createEmpty() {\n return new ClientHello(\n undefined as any,\n undefined as any,\n undefined as any,\n undefined as any,\n undefined as any,\n undefined as any,\n undefined as any,\n );\n }\n\n static deSerialize(buf: Buffer) {\n return new ClientHello(\n //@ts-ignore\n ...Object.values(decode(buf, ClientHello.spec)),\n );\n }\n\n serialize() {\n return encode(this, ClientHello.spec);\n }\n\n toFragment() {\n const body = this.serialize();\n return new FragmentedHandshake(\n this.msgType,\n body.length,\n this.messageSeq,\n 0,\n body.length,\n body,\n );\n }\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { binaryData } from "../../../imports/common";
|
|
1
2
|
import { FragmentedHandshake } from "../../../record/message/fragment";
|
|
2
3
|
import type { Handshake } from "../../../typings/domain";
|
|
3
4
|
import { HandshakeType } from "../../const";
|
|
@@ -6,11 +7,11 @@ export declare class ClientKeyExchange implements Handshake {
|
|
|
6
7
|
msgType: HandshakeType;
|
|
7
8
|
messageSeq?: number;
|
|
8
9
|
static readonly spec: {
|
|
9
|
-
publicKey:
|
|
10
|
+
publicKey: binaryData.DataType<Buffer<ArrayBufferLike>>;
|
|
10
11
|
};
|
|
11
12
|
constructor(publicKey: Buffer);
|
|
12
13
|
static createEmpty(): ClientKeyExchange;
|
|
13
14
|
static deSerialize(buf: Buffer): ClientKeyExchange;
|
|
14
|
-
serialize(): Buffer<
|
|
15
|
+
serialize(): Buffer<ArrayBufferLike>;
|
|
15
16
|
toFragment(): FragmentedHandshake;
|
|
16
17
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ClientKeyExchange = void 0;
|
|
4
|
-
const
|
|
4
|
+
const common_1 = require("../../../imports/common");
|
|
5
5
|
const fragment_1 = require("../../../record/message/fragment");
|
|
6
6
|
const const_1 = require("../../const");
|
|
7
|
+
const { decode, encode, types } = common_1.binaryData;
|
|
7
8
|
class ClientKeyExchange {
|
|
8
9
|
constructor(publicKey) {
|
|
9
10
|
Object.defineProperty(this, "publicKey", {
|
|
@@ -29,14 +30,13 @@ class ClientKeyExchange {
|
|
|
29
30
|
return new ClientKeyExchange(undefined);
|
|
30
31
|
}
|
|
31
32
|
static deSerialize(buf) {
|
|
32
|
-
const res =
|
|
33
|
+
const res = decode(buf, ClientKeyExchange.spec);
|
|
33
34
|
return new ClientKeyExchange(
|
|
34
35
|
//@ts-ignore
|
|
35
36
|
...Object.values(res));
|
|
36
37
|
}
|
|
37
38
|
serialize() {
|
|
38
|
-
|
|
39
|
-
return Buffer.from(res);
|
|
39
|
+
return encode(this, ClientKeyExchange.spec);
|
|
40
40
|
}
|
|
41
41
|
toFragment() {
|
|
42
42
|
const body = this.serialize();
|
|
@@ -49,7 +49,7 @@ Object.defineProperty(ClientKeyExchange, "spec", {
|
|
|
49
49
|
configurable: true,
|
|
50
50
|
writable: true,
|
|
51
51
|
value: {
|
|
52
|
-
publicKey:
|
|
52
|
+
publicKey: types.buffer(types.uint8),
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
55
|
//# sourceMappingURL=keyExchange.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyExchange.js","sourceRoot":"","sources":["../../../../../../../dtls/src/handshake/message/client/keyExchange.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"keyExchange.js","sourceRoot":"","sources":["../../../../../../../dtls/src/handshake/message/client/keyExchange.ts"],"names":[],"mappings":";;;AAAA,oDAAqD;AAErD,+DAAuE;AAEvE,uCAA4C;AAE5C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAU,CAAC;AAE7C,MAAa,iBAAiB;IAQ5B,YAAmB,SAAiB;QAAxB;;;;mBAAO,SAAS;WAAQ;QAPpC;;;;mBAAU,qBAAa,CAAC,sBAAsB;WAAC;QAC/C;;;;;WAAoB;IAMmB,CAAC;IAExC,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,iBAAiB,CAAC,SAAgB,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,IAAI,iBAAiB;QAC1B,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CACtB,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,UAAU;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,8BAAmB,CAC5B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAW,EAChB,CAAC,EACD,IAAI,CAAC,MAAM,EACX,IAAI,CACL,CAAC;IACJ,CAAC;;AApCH,8CAqCC;AAjCiB;;;;WAAO;QACrB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;KACrC;EAFmB,CAElB","sourcesContent":["import { binaryData } from \"../../../imports/common\";\n\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport type { Handshake } from \"../../../typings/domain\";\nimport { HandshakeType } from \"../../const\";\n\nconst { decode, encode, types } = binaryData;\n\nexport class ClientKeyExchange implements Handshake {\n msgType = HandshakeType.client_key_exchange_16;\n messageSeq?: number;\n\n static readonly spec = {\n publicKey: types.buffer(types.uint8),\n };\n\n constructor(public publicKey: Buffer) {}\n\n static createEmpty() {\n return new ClientKeyExchange(undefined as any);\n }\n\n static deSerialize(buf: Buffer) {\n const res = decode(buf, ClientKeyExchange.spec);\n return new ClientKeyExchange(\n //@ts-ignore\n ...Object.values(res),\n );\n }\n\n serialize() {\n return encode(this, ClientKeyExchange.spec);\n }\n\n toFragment() {\n const body = this.serialize();\n return new FragmentedHandshake(\n this.msgType,\n body.length,\n this.messageSeq!,\n 0,\n body.length,\n body,\n );\n }\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { binaryData } from "../../../imports/common";
|
|
1
2
|
import type { HashAlgorithms, SignatureAlgorithms } from "../../../cipher/const";
|
|
2
3
|
import { FragmentedHandshake } from "../../../record/message/fragment";
|
|
3
4
|
import type { Handshake } from "../../../typings/domain";
|
|
@@ -12,9 +13,12 @@ export declare class ServerCertificateRequest implements Handshake {
|
|
|
12
13
|
msgType: HandshakeType;
|
|
13
14
|
messageSeq?: number;
|
|
14
15
|
static readonly spec: {
|
|
15
|
-
certificateTypes:
|
|
16
|
-
signatures:
|
|
17
|
-
|
|
16
|
+
certificateTypes: binaryData.DataType<number[]>;
|
|
17
|
+
signatures: binaryData.DataType<{
|
|
18
|
+
hash: number;
|
|
19
|
+
signature: number;
|
|
20
|
+
}[]>;
|
|
21
|
+
authorities: binaryData.DataType<string[]>;
|
|
18
22
|
};
|
|
19
23
|
constructor(certificateTypes: number[], signatures: {
|
|
20
24
|
hash: HashAlgorithms;
|
|
@@ -22,6 +26,6 @@ export declare class ServerCertificateRequest implements Handshake {
|
|
|
22
26
|
}[], authorities: number[]);
|
|
23
27
|
static createEmpty(): ServerCertificateRequest;
|
|
24
28
|
static deSerialize(buf: Buffer): ServerCertificateRequest;
|
|
25
|
-
serialize(): Buffer<
|
|
29
|
+
serialize(): Buffer<ArrayBufferLike>;
|
|
26
30
|
toFragment(): FragmentedHandshake;
|
|
27
31
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ServerCertificateRequest = void 0;
|
|
4
|
-
const
|
|
4
|
+
const common_1 = require("../../../imports/common");
|
|
5
5
|
const fragment_1 = require("../../../record/message/fragment");
|
|
6
6
|
const binary_1 = require("../../binary");
|
|
7
7
|
const const_1 = require("../../const");
|
|
8
|
+
const { decode, encode, types } = common_1.binaryData;
|
|
8
9
|
// 7.4.4. Certificate Request
|
|
9
10
|
class ServerCertificateRequest {
|
|
10
11
|
constructor(certificateTypes, signatures, authorities) {
|
|
@@ -45,11 +46,10 @@ class ServerCertificateRequest {
|
|
|
45
46
|
static deSerialize(buf) {
|
|
46
47
|
return new ServerCertificateRequest(
|
|
47
48
|
//@ts-ignore
|
|
48
|
-
...Object.values(
|
|
49
|
+
...Object.values(decode(buf, ServerCertificateRequest.spec)));
|
|
49
50
|
}
|
|
50
51
|
serialize() {
|
|
51
|
-
|
|
52
|
-
return Buffer.from(res);
|
|
52
|
+
return encode(this, ServerCertificateRequest.spec);
|
|
53
53
|
}
|
|
54
54
|
toFragment() {
|
|
55
55
|
const body = this.serialize();
|
|
@@ -62,9 +62,9 @@ Object.defineProperty(ServerCertificateRequest, "spec", {
|
|
|
62
62
|
configurable: true,
|
|
63
63
|
writable: true,
|
|
64
64
|
value: {
|
|
65
|
-
certificateTypes:
|
|
66
|
-
signatures:
|
|
67
|
-
authorities:
|
|
65
|
+
certificateTypes: types.array(binary_1.ClientCertificateType, types.uint8, "bytes"),
|
|
66
|
+
signatures: types.array(binary_1.SignatureHashAlgorithm, types.uint16be, "bytes"),
|
|
67
|
+
authorities: types.array(binary_1.DistinguishedName, types.uint16be, "bytes"),
|
|
68
68
|
}
|
|
69
69
|
});
|
|
70
70
|
//# sourceMappingURL=certificateRequest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"certificateRequest.js","sourceRoot":"","sources":["../../../../../../../dtls/src/handshake/message/server/certificateRequest.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"certificateRequest.js","sourceRoot":"","sources":["../../../../../../../dtls/src/handshake/message/server/certificateRequest.ts"],"names":[],"mappings":";;;AAAA,oDAAqD;AAMrD,+DAAuE;AAEvE,yCAIsB;AACtB,uCAA4C;AAE5C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAU,CAAC;AAE7C,8BAA8B;AAE9B,MAAa,wBAAwB;IASnC,YACS,gBAA0B,EAC1B,UAGJ,EACI,WAAqB;QAL5B;;;;mBAAO,gBAAgB;WAAU;QACjC;;;;mBAAO,UAAU;WAGd;QACH;;;;mBAAO,WAAW;WAAU;QAd9B;;;;mBAAU,qBAAa,CAAC,sBAAsB;WAAC;QAC/C;;;;;WAAoB;IAcjB,CAAC;IAEJ,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,wBAAwB,CACjC,SAAgB,EAChB,SAAgB,EAChB,SAAgB,CACjB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,IAAI,wBAAwB;QACjC,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAC7D,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,MAAM,CAAC,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,UAAU;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,8BAAmB,CAC5B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAW,EAChB,CAAC,EACD,IAAI,CAAC,MAAM,EACX,IAAI,CACL,CAAC;IACJ,CAAC;;AA/CH,4DAgDC;AA7CiB;;;;WAAO;QACrB,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,8BAAqB,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC;QAC1E,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,+BAAsB,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;QACxE,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,0BAAiB,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;KACrE;EAJmB,CAIlB","sourcesContent":["import { binaryData } from \"../../../imports/common\";\n\nimport type {\n HashAlgorithms,\n SignatureAlgorithms,\n} from \"../../../cipher/const\";\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport type { Handshake } from \"../../../typings/domain\";\nimport {\n ClientCertificateType,\n DistinguishedName,\n SignatureHashAlgorithm,\n} from \"../../binary\";\nimport { HandshakeType } from \"../../const\";\n\nconst { decode, encode, types } = binaryData;\n\n// 7.4.4. Certificate Request\n\nexport class ServerCertificateRequest implements Handshake {\n msgType = HandshakeType.certificate_request_13;\n messageSeq?: number;\n static readonly spec = {\n certificateTypes: types.array(ClientCertificateType, types.uint8, \"bytes\"),\n signatures: types.array(SignatureHashAlgorithm, types.uint16be, \"bytes\"),\n authorities: types.array(DistinguishedName, types.uint16be, \"bytes\"),\n };\n\n constructor(\n public certificateTypes: number[],\n public signatures: {\n hash: HashAlgorithms;\n signature: SignatureAlgorithms;\n }[],\n public authorities: number[],\n ) {}\n\n static createEmpty() {\n return new ServerCertificateRequest(\n undefined as any,\n undefined as any,\n undefined as any,\n );\n }\n\n static deSerialize(buf: Buffer) {\n return new ServerCertificateRequest(\n //@ts-ignore\n ...Object.values(decode(buf, ServerCertificateRequest.spec)),\n );\n }\n\n serialize() {\n return encode(this, ServerCertificateRequest.spec);\n }\n\n toFragment() {\n const body = this.serialize();\n return new FragmentedHandshake(\n this.msgType,\n body.length,\n this.messageSeq!,\n 0,\n body.length,\n body,\n );\n }\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { binaryData } from "../../../imports/common";
|
|
1
2
|
import type { CipherSuites } from "../../../cipher/const";
|
|
2
3
|
import { FragmentedHandshake } from "../../../record/message/fragment";
|
|
3
4
|
import type { Extension, Handshake, Random, Version } from "../../../typings/domain";
|
|
@@ -13,20 +14,20 @@ export declare class ServerHello implements Handshake {
|
|
|
13
14
|
messageSeq?: number;
|
|
14
15
|
static readonly spec: {
|
|
15
16
|
serverVersion: {
|
|
16
|
-
major:
|
|
17
|
-
minor:
|
|
17
|
+
major: binaryData.NumberType;
|
|
18
|
+
minor: binaryData.NumberType;
|
|
18
19
|
};
|
|
19
20
|
random: {
|
|
20
|
-
gmt_unix_time:
|
|
21
|
-
random_bytes:
|
|
21
|
+
gmt_unix_time: binaryData.NumberType;
|
|
22
|
+
random_bytes: binaryData.DataType<Buffer<ArrayBufferLike>>;
|
|
22
23
|
};
|
|
23
|
-
sessionId:
|
|
24
|
-
cipherSuite:
|
|
25
|
-
compressionMethod:
|
|
24
|
+
sessionId: binaryData.DataType<Buffer<ArrayBufferLike>>;
|
|
25
|
+
cipherSuite: binaryData.NumberType;
|
|
26
|
+
compressionMethod: binaryData.NumberType;
|
|
26
27
|
};
|
|
27
28
|
constructor(serverVersion: Version, random: Random, sessionId: Buffer, cipherSuite: CipherSuites, compressionMethod: number, extensions: Extension[]);
|
|
28
29
|
static createEmpty(): ServerHello;
|
|
29
30
|
static deSerialize(buf: Buffer): ServerHello;
|
|
30
|
-
serialize(): Buffer<
|
|
31
|
+
serialize(): Buffer<ArrayBufferLike>;
|
|
31
32
|
toFragment(): FragmentedHandshake;
|
|
32
33
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ServerHello = void 0;
|
|
4
|
-
const
|
|
4
|
+
const common_1 = require("../../../imports/common");
|
|
5
5
|
const fragment_1 = require("../../../record/message/fragment");
|
|
6
6
|
const binary_1 = require("../../binary");
|
|
7
7
|
const const_1 = require("../../const");
|
|
8
8
|
const random_1 = require("../../random");
|
|
9
|
+
const { decode, encode, types } = common_1.binaryData;
|
|
9
10
|
// 7.4.1.3. Server Hello
|
|
10
11
|
class ServerHello {
|
|
11
12
|
constructor(serverVersion, random, sessionId, cipherSuite, compressionMethod, extensions) {
|
|
@@ -62,7 +63,7 @@ class ServerHello {
|
|
|
62
63
|
return new ServerHello(undefined, undefined, undefined, undefined, undefined, undefined);
|
|
63
64
|
}
|
|
64
65
|
static deSerialize(buf) {
|
|
65
|
-
const res =
|
|
66
|
+
const res = decode(buf, ServerHello.spec);
|
|
66
67
|
const cls = new ServerHello(
|
|
67
68
|
//@ts-ignore
|
|
68
69
|
...Object.values(res));
|
|
@@ -70,18 +71,17 @@ class ServerHello {
|
|
|
70
71
|
if (expect.length < buf.length) {
|
|
71
72
|
return new ServerHello(
|
|
72
73
|
//@ts-ignore
|
|
73
|
-
...Object.values(
|
|
74
|
+
...Object.values(decode(buf, { ...ServerHello.spec, extensions: binary_1.ExtensionList })));
|
|
74
75
|
}
|
|
75
76
|
return cls;
|
|
76
77
|
}
|
|
77
78
|
serialize() {
|
|
78
|
-
|
|
79
|
-
?
|
|
80
|
-
:
|
|
79
|
+
return this.extensions === undefined
|
|
80
|
+
? encode(this, ServerHello.spec)
|
|
81
|
+
: encode(this, {
|
|
81
82
|
...ServerHello.spec,
|
|
82
83
|
extensions: binary_1.ExtensionList,
|
|
83
|
-
})
|
|
84
|
-
return Buffer.from(res);
|
|
84
|
+
});
|
|
85
85
|
}
|
|
86
86
|
toFragment() {
|
|
87
87
|
const body = this.serialize();
|
|
@@ -96,9 +96,9 @@ Object.defineProperty(ServerHello, "spec", {
|
|
|
96
96
|
value: {
|
|
97
97
|
serverVersion: binary_1.ProtocolVersion,
|
|
98
98
|
random: random_1.DtlsRandom.spec,
|
|
99
|
-
sessionId:
|
|
100
|
-
cipherSuite:
|
|
101
|
-
compressionMethod:
|
|
99
|
+
sessionId: types.buffer(types.uint8),
|
|
100
|
+
cipherSuite: types.uint16be,
|
|
101
|
+
compressionMethod: types.uint8,
|
|
102
102
|
}
|
|
103
103
|
});
|
|
104
104
|
//# sourceMappingURL=hello.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hello.js","sourceRoot":"","sources":["../../../../../../../dtls/src/handshake/message/server/hello.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"hello.js","sourceRoot":"","sources":["../../../../../../../dtls/src/handshake/message/server/hello.ts"],"names":[],"mappings":";;;AAAA,oDAAqD;AAGrD,+DAAuE;AAOvE,yCAA8D;AAC9D,uCAA4C;AAC5C,yCAA0C;AAE1C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAU,CAAC;AAE7C,yBAAyB;AAEzB,MAAa,WAAW;IAWtB,YACS,aAAsB,EACtB,MAAc,EACd,SAAiB,EACjB,WAAyB,EACzB,iBAAyB,EACzB,UAAuB;QAL9B;;;;mBAAO,aAAa;WAAS;QAC7B;;;;mBAAO,MAAM;WAAQ;QACrB;;;;mBAAO,SAAS;WAAQ;QACxB;;;;mBAAO,WAAW;WAAc;QAChC;;;;mBAAO,iBAAiB;WAAQ;QAChC;;;;mBAAO,UAAU;WAAa;QAhBhC;;;;mBAAU,qBAAa,CAAC,cAAc;WAAC;QACvC;;;;;WAAoB;IAgBjB,CAAC;IAEJ,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,WAAW,CACpB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,CACjB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,WAAW;QACzB,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CACtB,CAAC;QACF,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,IAAI,WAAW;YACpB,YAAY;YACZ,GAAG,MAAM,CAAC,MAAM,CACd,MAAM,CAAC,GAAG,EAAE,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,sBAAa,EAAE,CAAC,CAChE,CACF,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,UAAU,KAAK,SAAS;YAClC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;YAChC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;gBACX,GAAG,WAAW,CAAC,IAAI;gBACnB,UAAU,EAAE,sBAAa;aAC1B,CAAC,CAAC;IACT,CAAC;IAED,UAAU;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,8BAAmB,CAC5B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAW,EAChB,CAAC,EACD,IAAI,CAAC,MAAM,EACX,IAAI,CACL,CAAC;IACJ,CAAC;;AApEH,kCAqEC;AAlEiB;;;;WAAO;QACrB,aAAa,EAAE,wBAAe;QAC9B,MAAM,EAAE,mBAAU,CAAC,IAAI;QACvB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QACpC,WAAW,EAAE,KAAK,CAAC,QAAQ;QAC3B,iBAAiB,EAAE,KAAK,CAAC,KAAK;KAC/B;EANmB,CAMlB","sourcesContent":["import { binaryData } from \"../../../imports/common\";\n\nimport type { CipherSuites } from \"../../../cipher/const\";\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport type {\n Extension,\n Handshake,\n Random,\n Version,\n} from \"../../../typings/domain\";\nimport { ExtensionList, ProtocolVersion } from \"../../binary\";\nimport { HandshakeType } from \"../../const\";\nimport { DtlsRandom } from \"../../random\";\n\nconst { decode, encode, types } = binaryData;\n\n// 7.4.1.3. Server Hello\n\nexport class ServerHello implements Handshake {\n msgType = HandshakeType.server_hello_2;\n messageSeq?: number;\n static readonly spec = {\n serverVersion: ProtocolVersion,\n random: DtlsRandom.spec,\n sessionId: types.buffer(types.uint8),\n cipherSuite: types.uint16be,\n compressionMethod: types.uint8,\n };\n\n constructor(\n public serverVersion: Version,\n public random: Random,\n public sessionId: Buffer,\n public cipherSuite: CipherSuites,\n public compressionMethod: number,\n public extensions: Extension[],\n ) {}\n\n static createEmpty() {\n return new ServerHello(\n undefined as any,\n undefined as any,\n undefined as any,\n undefined as any,\n undefined as any,\n undefined as any,\n );\n }\n\n static deSerialize(buf: Buffer) {\n const res = decode(buf, ServerHello.spec);\n const cls = new ServerHello(\n //@ts-ignore\n ...Object.values(res),\n );\n const expect = cls.serialize();\n if (expect.length < buf.length) {\n return new ServerHello(\n //@ts-ignore\n ...Object.values(\n decode(buf, { ...ServerHello.spec, extensions: ExtensionList }),\n ),\n );\n }\n return cls;\n }\n\n serialize() {\n return this.extensions === undefined\n ? encode(this, ServerHello.spec)\n : encode(this, {\n ...ServerHello.spec,\n extensions: ExtensionList,\n });\n }\n\n toFragment() {\n const body = this.serialize();\n return new FragmentedHandshake(\n this.msgType,\n body.length,\n this.messageSeq!,\n 0,\n body.length,\n body,\n );\n }\n}\n"]}
|
|
@@ -7,6 +7,6 @@ export declare class ServerHelloDone implements Handshake {
|
|
|
7
7
|
static readonly spec: {};
|
|
8
8
|
static createEmpty(): ServerHelloDone;
|
|
9
9
|
static deSerialize(buf: Buffer): ServerHelloDone;
|
|
10
|
-
serialize(): Buffer<
|
|
10
|
+
serialize(): Buffer<ArrayBufferLike>;
|
|
11
11
|
toFragment(): FragmentedHandshake;
|
|
12
12
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ServerHelloDone = void 0;
|
|
4
|
-
const
|
|
4
|
+
const common_1 = require("../../../imports/common");
|
|
5
5
|
const fragment_1 = require("../../../record/message/fragment");
|
|
6
6
|
const const_1 = require("../../const");
|
|
7
|
+
const { decode, encode } = common_1.binaryData;
|
|
7
8
|
// 7.4.5. Server Hello Done
|
|
8
9
|
class ServerHelloDone {
|
|
9
10
|
constructor() {
|
|
@@ -26,11 +27,10 @@ class ServerHelloDone {
|
|
|
26
27
|
static deSerialize(buf) {
|
|
27
28
|
return new ServerHelloDone(
|
|
28
29
|
//@ts-ignore
|
|
29
|
-
...Object.values(
|
|
30
|
+
...Object.values(decode(buf, ServerHelloDone.spec)));
|
|
30
31
|
}
|
|
31
32
|
serialize() {
|
|
32
|
-
|
|
33
|
-
return Buffer.from(res);
|
|
33
|
+
return encode(this, ServerHelloDone.spec);
|
|
34
34
|
}
|
|
35
35
|
toFragment() {
|
|
36
36
|
const body = this.serialize();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helloDone.js","sourceRoot":"","sources":["../../../../../../../dtls/src/handshake/message/server/helloDone.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"helloDone.js","sourceRoot":"","sources":["../../../../../../../dtls/src/handshake/message/server/helloDone.ts"],"names":[],"mappings":";;;AAAA,oDAAqD;AAErD,+DAAuE;AAEvE,uCAA4C;AAE5C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAU,CAAC;AAEtC,4BAA4B;AAE5B,MAAa,eAAe;IAA5B;QACE;;;;mBAAU,qBAAa,CAAC,oBAAoB;WAAC;QAC7C;;;;;WAAoB;IA6BtB,CAAC;IA1BC,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,eAAe,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,IAAI,eAAe;QACxB,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CACpD,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,UAAU;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,8BAAmB,CAC5B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAW,EAChB,CAAC,EACD,IAAI,CAAC,MAAM,EACX,IAAI,CACL,CAAC;IACJ,CAAC;;AA9BH,0CA+BC;AA5BiB;;;;WAAO,EAAE;EAAL,CAAM","sourcesContent":["import { binaryData } from \"../../../imports/common\";\n\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport type { Handshake } from \"../../../typings/domain\";\nimport { HandshakeType } from \"../../const\";\n\nconst { decode, encode } = binaryData;\n\n// 7.4.5. Server Hello Done\n\nexport class ServerHelloDone implements Handshake {\n msgType = HandshakeType.server_hello_done_14;\n messageSeq?: number;\n static readonly spec = {};\n\n static createEmpty() {\n return new ServerHelloDone();\n }\n\n static deSerialize(buf: Buffer) {\n return new ServerHelloDone(\n //@ts-ignore\n ...Object.values(decode(buf, ServerHelloDone.spec)),\n );\n }\n\n serialize() {\n return encode(this, ServerHelloDone.spec);\n }\n\n toFragment() {\n const body = this.serialize();\n return new FragmentedHandshake(\n this.msgType,\n body.length,\n this.messageSeq!,\n 0,\n body.length,\n body,\n );\n }\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { binaryData } from "../../../imports/common";
|
|
1
2
|
import { FragmentedHandshake } from "../../../record/message/fragment";
|
|
2
3
|
import type { Handshake } from "../../../typings/domain";
|
|
3
4
|
import { HandshakeType } from "../../const";
|
|
@@ -11,10 +12,10 @@ export declare class ServerHelloVerifyRequest implements Handshake {
|
|
|
11
12
|
messageSeq?: number;
|
|
12
13
|
static readonly spec: {
|
|
13
14
|
serverVersion: {
|
|
14
|
-
major:
|
|
15
|
-
minor:
|
|
15
|
+
major: binaryData.NumberType;
|
|
16
|
+
minor: binaryData.NumberType;
|
|
16
17
|
};
|
|
17
|
-
cookie:
|
|
18
|
+
cookie: binaryData.DataType<Buffer<ArrayBufferLike>>;
|
|
18
19
|
};
|
|
19
20
|
constructor(serverVersion: {
|
|
20
21
|
major: number;
|
|
@@ -22,7 +23,7 @@ export declare class ServerHelloVerifyRequest implements Handshake {
|
|
|
22
23
|
}, cookie: Buffer);
|
|
23
24
|
static createEmpty(): ServerHelloVerifyRequest;
|
|
24
25
|
static deSerialize(buf: Buffer): ServerHelloVerifyRequest;
|
|
25
|
-
serialize(): Buffer<
|
|
26
|
+
serialize(): Buffer<ArrayBufferLike>;
|
|
26
27
|
get version(): {
|
|
27
28
|
major: number;
|
|
28
29
|
minor: number;
|