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.
Files changed (80) hide show
  1. package/lib/common/src/binaryData.d.ts +116 -0
  2. package/lib/common/src/binaryData.js +421 -0
  3. package/lib/common/src/binaryData.js.map +1 -0
  4. package/lib/common/src/index.d.ts +1 -0
  5. package/lib/common/src/index.js +24 -0
  6. package/lib/common/src/index.js.map +1 -1
  7. package/lib/dtls/src/cipher/prf.d.ts +2 -2
  8. package/lib/dtls/src/cipher/prf.js +2 -2
  9. package/lib/dtls/src/cipher/prf.js.map +1 -1
  10. package/lib/dtls/src/context/cipher.js +4 -3
  11. package/lib/dtls/src/context/cipher.js.map +1 -1
  12. package/lib/dtls/src/handshake/binary.d.ts +12 -8
  13. package/lib/dtls/src/handshake/binary.js +3 -2
  14. package/lib/dtls/src/handshake/binary.js.map +1 -1
  15. package/lib/dtls/src/handshake/extensions/ellipticCurves.d.ts +4 -3
  16. package/lib/dtls/src/handshake/extensions/ellipticCurves.js +7 -6
  17. package/lib/dtls/src/handshake/extensions/ellipticCurves.js.map +1 -1
  18. package/lib/dtls/src/handshake/extensions/renegotiationIndication.d.ts +4 -3
  19. package/lib/dtls/src/handshake/extensions/renegotiationIndication.js +6 -6
  20. package/lib/dtls/src/handshake/extensions/renegotiationIndication.js.map +1 -1
  21. package/lib/dtls/src/handshake/extensions/signature.d.ts +7 -3
  22. package/lib/dtls/src/handshake/extensions/signature.js +6 -6
  23. package/lib/dtls/src/handshake/extensions/signature.js.map +1 -1
  24. package/lib/dtls/src/handshake/extensions/useSrtp.d.ts +4 -3
  25. package/lib/dtls/src/handshake/extensions/useSrtp.js +6 -6
  26. package/lib/dtls/src/handshake/extensions/useSrtp.js.map +1 -1
  27. package/lib/dtls/src/handshake/message/alert.d.ts +4 -3
  28. package/lib/dtls/src/handshake/message/alert.js +6 -6
  29. package/lib/dtls/src/handshake/message/alert.js.map +1 -1
  30. package/lib/dtls/src/handshake/message/certificate.d.ts +3 -2
  31. package/lib/dtls/src/handshake/message/certificate.js +5 -5
  32. package/lib/dtls/src/handshake/message/certificate.js.map +1 -1
  33. package/lib/dtls/src/handshake/message/changeCipherSpec.d.ts +3 -2
  34. package/lib/dtls/src/handshake/message/changeCipherSpec.js +5 -5
  35. package/lib/dtls/src/handshake/message/changeCipherSpec.js.map +1 -1
  36. package/lib/dtls/src/handshake/message/client/certificateVerify.d.ts +4 -3
  37. package/lib/dtls/src/handshake/message/client/certificateVerify.js +6 -6
  38. package/lib/dtls/src/handshake/message/client/certificateVerify.js.map +1 -1
  39. package/lib/dtls/src/handshake/message/client/hello.d.ts +14 -10
  40. package/lib/dtls/src/handshake/message/client/hello.js +9 -9
  41. package/lib/dtls/src/handshake/message/client/hello.js.map +1 -1
  42. package/lib/dtls/src/handshake/message/client/keyExchange.d.ts +3 -2
  43. package/lib/dtls/src/handshake/message/client/keyExchange.js +5 -5
  44. package/lib/dtls/src/handshake/message/client/keyExchange.js.map +1 -1
  45. package/lib/dtls/src/handshake/message/server/certificateRequest.d.ts +8 -4
  46. package/lib/dtls/src/handshake/message/server/certificateRequest.js +7 -7
  47. package/lib/dtls/src/handshake/message/server/certificateRequest.js.map +1 -1
  48. package/lib/dtls/src/handshake/message/server/hello.d.ts +9 -8
  49. package/lib/dtls/src/handshake/message/server/hello.js +11 -11
  50. package/lib/dtls/src/handshake/message/server/hello.js.map +1 -1
  51. package/lib/dtls/src/handshake/message/server/helloDone.d.ts +1 -1
  52. package/lib/dtls/src/handshake/message/server/helloDone.js +4 -4
  53. package/lib/dtls/src/handshake/message/server/helloDone.js.map +1 -1
  54. package/lib/dtls/src/handshake/message/server/helloVerifyRequest.d.ts +5 -4
  55. package/lib/dtls/src/handshake/message/server/helloVerifyRequest.js +5 -5
  56. package/lib/dtls/src/handshake/message/server/helloVerifyRequest.js.map +1 -1
  57. package/lib/dtls/src/handshake/message/server/keyExchange.d.ts +10 -9
  58. package/lib/dtls/src/handshake/message/server/keyExchange.js +11 -10
  59. package/lib/dtls/src/handshake/message/server/keyExchange.js.map +1 -1
  60. package/lib/dtls/src/handshake/random.d.ts +5 -4
  61. package/lib/dtls/src/handshake/random.js +6 -6
  62. package/lib/dtls/src/handshake/random.js.map +1 -1
  63. package/lib/dtls/src/record/message/fragment.d.ts +8 -7
  64. package/lib/dtls/src/record/message/fragment.js +10 -10
  65. package/lib/dtls/src/record/message/fragment.js.map +1 -1
  66. package/lib/dtls/src/record/message/header.d.ts +8 -7
  67. package/lib/dtls/src/record/message/header.js +8 -8
  68. package/lib/dtls/src/record/message/header.js.map +1 -1
  69. package/lib/dtls/src/record/message/plaintext.d.ts +1 -1
  70. package/lib/dtls/src/socket.d.ts +4 -4
  71. package/lib/dtls/src/socket.js +6 -6
  72. package/lib/dtls/src/socket.js.map +1 -1
  73. package/lib/dtls/src/util/binary.d.ts +2 -1
  74. package/lib/dtls/src/util/binary.js +3 -2
  75. package/lib/dtls/src/util/binary.js.map +1 -1
  76. package/lib/index.mjs +517 -210
  77. package/lib/nonstandard/index.mjs +500 -194
  78. package/lib/polyfill/dom.mjs +538 -232
  79. package/lib/polyfill/index.mjs +538 -232
  80. package/package.json +1 -2
@@ -1 +1 @@
1
- {"version":3,"file":"certificate.js","sourceRoot":"","sources":["../../../../../../dtls/src/handshake/message/certificate.ts"],"names":[],"mappings":";;;AAAA,2DAAkE;AAElE,4DAAoE;AAEpE,sCAAsC;AACtC,oCAAyC;AAEzC,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,IAAA,oBAAM,EAAC,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAChD,CAAC;IACJ,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,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;;AAnCH,kCAoCC;AAjCiB;;;;WAAO;QACrB,eAAe,EAAE,mBAAK,CAAC,KAAK,CAAC,kBAAS,EAAE,mBAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;KACjE;EAFmB,CAElB","sourcesContent":["import { decode, encode, types } from \"@shinyoshiaki/binary-data\";\n\nimport { FragmentedHandshake } from \"../../record/message/fragment\";\nimport type { Handshake } from \"../../typings/domain\";\nimport { ASN11Cert } from \"../binary\";\nimport { HandshakeType } from \"../const\";\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 const res = encode(this, Certificate.spec).slice();\n return Buffer.from(res);\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
+ {"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: number;
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<ArrayBuffer>;
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 binary_data_1 = require("@shinyoshiaki/binary-data");
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((0, binary_data_1.decode)(buf, ChangeCipherSpec.spec)));
22
+ ...Object.values(decode(buf, ChangeCipherSpec.spec)));
22
23
  }
23
24
  serialize() {
24
- const res = (0, binary_data_1.encode)(this, ChangeCipherSpec.spec).slice();
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: binary_data_1.types.uint8,
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,2DAAkE;AAElE,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,IAAA,oBAAM,EAAC,GAAG,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CACrD,CAAC;IACJ,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;;AArBH,4CAsBC;AArBiB;;;;WAAO;QACrB,IAAI,EAAE,mBAAK,CAAC,KAAK;KAClB;EAFmB,CAElB","sourcesContent":["import { decode, encode, types } from \"@shinyoshiaki/binary-data\";\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 const res = encode(this, ChangeCipherSpec.spec).slice();\n return Buffer.from(res);\n }\n}\n"]}
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: number;
12
- signature: any;
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<ArrayBuffer>;
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 binary_data_1 = require("@shinyoshiaki/binary-data");
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 = (0, binary_data_1.decode)(buf, CertificateVerify.spec);
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
- const res = (0, binary_data_1.encode)(this, CertificateVerify.spec).slice();
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: binary_data_1.types.uint16be,
59
- signature: binary_data_1.types.buffer(binary_data_1.types.uint16be),
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,2DAAkE;AAGlE,+DAAuE;AAEvE,uCAA4C;AAE5C,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,IAAA,oBAAM,EAAC,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,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACzD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,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;;AAzCH,8CA0CC;AAtCiB;;;;WAAO;QACrB,SAAS,EAAE,mBAAK,CAAC,QAAQ;QACzB,SAAS,EAAE,mBAAK,CAAC,MAAM,CAAC,mBAAK,CAAC,QAAQ,CAAC;KACxC;EAHmB,CAGlB","sourcesContent":["import { decode, encode, types } from \"@shinyoshiaki/binary-data\";\n\nimport type { SignatureSchemes } from \"../../../cipher/const\";\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport type { Handshake } from \"../../../typings/domain\";\nimport { HandshakeType } from \"../../const\";\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 const res = encode(this, CertificateVerify.spec).slice();\n return Buffer.from(res);\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
+ {"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: number;
23
- minor: number;
23
+ major: binaryData.NumberType;
24
+ minor: binaryData.NumberType;
24
25
  };
25
26
  random: {
26
- gmt_unix_time: number;
27
- random_bytes: any;
27
+ gmt_unix_time: binaryData.NumberType;
28
+ random_bytes: binaryData.DataType<Buffer<ArrayBufferLike>>;
28
29
  };
29
- sessionId: any;
30
- cookie: any;
31
- cipherSuites: any;
32
- compressionMethods: any;
33
- extensions: any;
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<ArrayBuffer>;
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 binary_data_1 = require("@shinyoshiaki/binary-data");
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((0, binary_data_1.decode)(buf, ClientHello.spec)));
74
+ ...Object.values(decode(buf, ClientHello.spec)));
74
75
  }
75
76
  serialize() {
76
- const res = (0, binary_data_1.encode)(this, ClientHello.spec).slice();
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: binary_data_1.types.uint8, minor: binary_data_1.types.uint8 },
90
+ clientVersion: { major: types.uint8, minor: types.uint8 },
91
91
  random: random_1.DtlsRandom.spec,
92
- sessionId: binary_data_1.types.buffer(binary_data_1.types.uint8),
93
- cookie: binary_data_1.types.buffer(binary_data_1.types.uint8),
94
- cipherSuites: binary_data_1.types.array(binary_data_1.types.uint16be, binary_data_1.types.uint16be, "bytes"),
95
- compressionMethods: binary_data_1.types.array(binary_data_1.types.uint8, binary_data_1.types.uint8, "bytes"),
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,2DAAkE;AAElE,+DAAuE;AAEvE,yCAA6C;AAC7C,uCAA4C;AAC5C,yCAA0C;AAE1C,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,IAAA,oBAAM,EAAC,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAChD,CAAC;IACJ,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,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;;AAzDH,kCA0DC;AAvDiB;;;;WAAO;QACrB,aAAa,EAAE,EAAE,KAAK,EAAE,mBAAK,CAAC,KAAK,EAAE,KAAK,EAAE,mBAAK,CAAC,KAAK,EAAE;QACzD,MAAM,EAAE,mBAAU,CAAC,IAAI;QACvB,SAAS,EAAE,mBAAK,CAAC,MAAM,CAAC,mBAAK,CAAC,KAAK,CAAC;QACpC,MAAM,EAAE,mBAAK,CAAC,MAAM,CAAC,mBAAK,CAAC,KAAK,CAAC;QACjC,YAAY,EAAE,mBAAK,CAAC,KAAK,CAAC,mBAAK,CAAC,QAAQ,EAAE,mBAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;QAClE,kBAAkB,EAAE,mBAAK,CAAC,KAAK,CAAC,mBAAK,CAAC,KAAK,EAAE,mBAAK,CAAC,KAAK,EAAE,OAAO,CAAC;QAClE,UAAU,EAAE,sBAAa;KAC1B;EARmB,CAQlB","sourcesContent":["import { decode, encode, types } from \"@shinyoshiaki/binary-data\";\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\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 const res = encode(this, ClientHello.spec).slice();\n return Buffer.from(res);\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
+ {"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: any;
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<ArrayBuffer>;
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 binary_data_1 = require("@shinyoshiaki/binary-data");
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 = (0, binary_data_1.decode)(buf, ClientKeyExchange.spec);
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
- const res = (0, binary_data_1.encode)(this, ClientKeyExchange.spec).slice();
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: binary_data_1.types.buffer(binary_data_1.types.uint8),
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,2DAAkE;AAElE,+DAAuE;AAEvE,uCAA4C;AAE5C,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,IAAA,oBAAM,EAAC,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,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACzD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,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;;AArCH,8CAsCC;AAlCiB;;;;WAAO;QACrB,SAAS,EAAE,mBAAK,CAAC,MAAM,CAAC,mBAAK,CAAC,KAAK,CAAC;KACrC;EAFmB,CAElB","sourcesContent":["import { decode, encode, types } from \"@shinyoshiaki/binary-data\";\n\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport type { Handshake } from \"../../../typings/domain\";\nimport { HandshakeType } from \"../../const\";\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 const res = encode(this, ClientKeyExchange.spec).slice();\n return Buffer.from(res);\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
+ {"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: any;
16
- signatures: any;
17
- authorities: any;
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<ArrayBuffer>;
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 binary_data_1 = require("@shinyoshiaki/binary-data");
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((0, binary_data_1.decode)(buf, ServerCertificateRequest.spec)));
49
+ ...Object.values(decode(buf, ServerCertificateRequest.spec)));
49
50
  }
50
51
  serialize() {
51
- const res = (0, binary_data_1.encode)(this, ServerCertificateRequest.spec).slice();
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: binary_data_1.types.array(binary_1.ClientCertificateType, binary_data_1.types.uint8, "bytes"),
66
- signatures: binary_data_1.types.array(binary_1.SignatureHashAlgorithm, binary_data_1.types.uint16be, "bytes"),
67
- authorities: binary_data_1.types.array(binary_1.DistinguishedName, binary_data_1.types.uint16be, "bytes"),
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,2DAAkE;AAMlE,+DAAuE;AAEvE,yCAIsB;AACtB,uCAA4C;AAE5C,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,IAAA,oBAAM,EAAC,GAAG,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAC7D,CAAC;IACJ,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAChE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,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;;AAhDH,4DAiDC;AA9CiB;;;;WAAO;QACrB,gBAAgB,EAAE,mBAAK,CAAC,KAAK,CAAC,8BAAqB,EAAE,mBAAK,CAAC,KAAK,EAAE,OAAO,CAAC;QAC1E,UAAU,EAAE,mBAAK,CAAC,KAAK,CAAC,+BAAsB,EAAE,mBAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;QACxE,WAAW,EAAE,mBAAK,CAAC,KAAK,CAAC,0BAAiB,EAAE,mBAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;KACrE;EAJmB,CAIlB","sourcesContent":["import { decode, encode, types } from \"@shinyoshiaki/binary-data\";\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\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 const res = encode(this, ServerCertificateRequest.spec).slice();\n return Buffer.from(res);\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
+ {"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: number;
17
- minor: number;
17
+ major: binaryData.NumberType;
18
+ minor: binaryData.NumberType;
18
19
  };
19
20
  random: {
20
- gmt_unix_time: number;
21
- random_bytes: any;
21
+ gmt_unix_time: binaryData.NumberType;
22
+ random_bytes: binaryData.DataType<Buffer<ArrayBufferLike>>;
22
23
  };
23
- sessionId: any;
24
- cipherSuite: number;
25
- compressionMethod: number;
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<ArrayBuffer>;
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 binary_data_1 = require("@shinyoshiaki/binary-data");
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 = (0, binary_data_1.decode)(buf, ServerHello.spec);
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((0, binary_data_1.decode)(buf, { ...ServerHello.spec, extensions: binary_1.ExtensionList })));
74
+ ...Object.values(decode(buf, { ...ServerHello.spec, extensions: binary_1.ExtensionList })));
74
75
  }
75
76
  return cls;
76
77
  }
77
78
  serialize() {
78
- const res = this.extensions === undefined
79
- ? (0, binary_data_1.encode)(this, ServerHello.spec).slice()
80
- : (0, binary_data_1.encode)(this, {
79
+ return this.extensions === undefined
80
+ ? encode(this, ServerHello.spec)
81
+ : encode(this, {
81
82
  ...ServerHello.spec,
82
83
  extensions: binary_1.ExtensionList,
83
- }).slice();
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: binary_data_1.types.buffer(binary_data_1.types.uint8),
100
- cipherSuite: binary_data_1.types.uint16be,
101
- compressionMethod: binary_data_1.types.uint8,
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,2DAAkE;AAGlE,+DAAuE;AAOvE,yCAA8D;AAC9D,uCAA4C;AAC5C,yCAA0C;AAE1C,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,IAAA,oBAAM,EAAC,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,IAAA,oBAAM,EAAC,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,MAAM,GAAG,GACP,IAAI,CAAC,UAAU,KAAK,SAAS;YAC3B,CAAC,CAAC,IAAA,oBAAM,EAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;YACxC,CAAC,CAAC,IAAA,oBAAM,EAAC,IAAI,EAAE;gBACX,GAAG,WAAW,CAAC,IAAI;gBACnB,UAAU,EAAE,sBAAa;aAC1B,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,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;;AAtEH,kCAuEC;AApEiB;;;;WAAO;QACrB,aAAa,EAAE,wBAAe;QAC9B,MAAM,EAAE,mBAAU,CAAC,IAAI;QACvB,SAAS,EAAE,mBAAK,CAAC,MAAM,CAAC,mBAAK,CAAC,KAAK,CAAC;QACpC,WAAW,EAAE,mBAAK,CAAC,QAAQ;QAC3B,iBAAiB,EAAE,mBAAK,CAAC,KAAK;KAC/B;EANmB,CAMlB","sourcesContent":["import { decode, encode, types } from \"@shinyoshiaki/binary-data\";\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\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 const res =\n this.extensions === undefined\n ? encode(this, ServerHello.spec).slice()\n : encode(this, {\n ...ServerHello.spec,\n extensions: ExtensionList,\n }).slice();\n return Buffer.from(res);\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
+ {"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<ArrayBuffer>;
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 binary_data_1 = require("@shinyoshiaki/binary-data");
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((0, binary_data_1.decode)(buf, ServerHelloDone.spec)));
30
+ ...Object.values(decode(buf, ServerHelloDone.spec)));
30
31
  }
31
32
  serialize() {
32
- const res = (0, binary_data_1.encode)(this, ServerHelloDone.spec).slice();
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,2DAA2D;AAE3D,+DAAuE;AAEvE,uCAA4C;AAE5C,4BAA4B;AAE5B,MAAa,eAAe;IAA5B;QACE;;;;mBAAU,qBAAa,CAAC,oBAAoB;WAAC;QAC7C;;;;;WAAoB;IA8BtB,CAAC;IA3BC,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,IAAA,oBAAM,EAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CACpD,CAAC;IACJ,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACvD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,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/BH,0CAgCC;AA7BiB;;;;WAAO,EAAE;EAAL,CAAM","sourcesContent":["import { decode, encode } from \"@shinyoshiaki/binary-data\";\n\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport type { Handshake } from \"../../../typings/domain\";\nimport { HandshakeType } from \"../../const\";\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 const res = encode(this, ServerHelloDone.spec).slice();\n return Buffer.from(res);\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
+ {"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: number;
15
- minor: number;
15
+ major: binaryData.NumberType;
16
+ minor: binaryData.NumberType;
16
17
  };
17
- cookie: any;
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<ArrayBuffer>;
26
+ serialize(): Buffer<ArrayBufferLike>;
26
27
  get version(): {
27
28
  major: number;
28
29
  minor: number;