werift 0.18.13 → 0.18.15

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 (252) hide show
  1. package/lib/common/src/binary.js.map +1 -1
  2. package/lib/common/src/index.d.ts +0 -1
  3. package/lib/common/src/index.js +0 -1
  4. package/lib/common/src/index.js.map +1 -1
  5. package/lib/dtls/src/client.js.map +1 -1
  6. package/lib/dtls/src/context/cipher.js +1 -1
  7. package/lib/dtls/src/context/cipher.js.map +1 -1
  8. package/lib/dtls/src/context/dtls.js.map +1 -1
  9. package/lib/dtls/src/context/transport.js.map +1 -1
  10. package/lib/dtls/src/flight/client/flight1.js.map +1 -1
  11. package/lib/dtls/src/flight/client/flight5.js.map +1 -1
  12. package/lib/dtls/src/flight/flight.js +1 -1
  13. package/lib/dtls/src/flight/flight.js.map +1 -1
  14. package/lib/dtls/src/flight/server/flight4.js.map +1 -1
  15. package/lib/dtls/src/flight/server/flight6.js.map +1 -1
  16. package/lib/dtls/src/handshake/extensions/ellipticCurves.js +1 -1
  17. package/lib/dtls/src/handshake/extensions/ellipticCurves.js.map +1 -1
  18. package/lib/dtls/src/handshake/extensions/extendedMasterSecret.js +1 -1
  19. package/lib/dtls/src/handshake/extensions/extendedMasterSecret.js.map +1 -1
  20. package/lib/dtls/src/handshake/extensions/renegotiationIndication.js +1 -1
  21. package/lib/dtls/src/handshake/extensions/renegotiationIndication.js.map +1 -1
  22. package/lib/dtls/src/handshake/extensions/signature.js +1 -1
  23. package/lib/dtls/src/handshake/extensions/signature.js.map +1 -1
  24. package/lib/dtls/src/handshake/extensions/useSrtp.js +1 -1
  25. package/lib/dtls/src/handshake/extensions/useSrtp.js.map +1 -1
  26. package/lib/dtls/src/handshake/message/alert.js +1 -1
  27. package/lib/dtls/src/handshake/message/alert.js.map +1 -1
  28. package/lib/dtls/src/handshake/message/certificate.js +1 -1
  29. package/lib/dtls/src/handshake/message/certificate.js.map +1 -1
  30. package/lib/dtls/src/handshake/message/changeCipherSpec.js +1 -1
  31. package/lib/dtls/src/handshake/message/changeCipherSpec.js.map +1 -1
  32. package/lib/dtls/src/handshake/message/client/certificateVerify.js +1 -1
  33. package/lib/dtls/src/handshake/message/client/certificateVerify.js.map +1 -1
  34. package/lib/dtls/src/handshake/message/client/hello.js +1 -1
  35. package/lib/dtls/src/handshake/message/client/hello.js.map +1 -1
  36. package/lib/dtls/src/handshake/message/client/keyExchange.js +1 -1
  37. package/lib/dtls/src/handshake/message/client/keyExchange.js.map +1 -1
  38. package/lib/dtls/src/handshake/message/finished.js.map +1 -1
  39. package/lib/dtls/src/handshake/message/server/certificateRequest.js +1 -1
  40. package/lib/dtls/src/handshake/message/server/certificateRequest.js.map +1 -1
  41. package/lib/dtls/src/handshake/message/server/hello.js +1 -1
  42. package/lib/dtls/src/handshake/message/server/hello.js.map +1 -1
  43. package/lib/dtls/src/handshake/message/server/helloDone.js +1 -1
  44. package/lib/dtls/src/handshake/message/server/helloDone.js.map +1 -1
  45. package/lib/dtls/src/handshake/message/server/helloVerifyRequest.js +1 -1
  46. package/lib/dtls/src/handshake/message/server/helloVerifyRequest.js.map +1 -1
  47. package/lib/dtls/src/handshake/message/server/keyExchange.js +1 -1
  48. package/lib/dtls/src/handshake/message/server/keyExchange.js.map +1 -1
  49. package/lib/dtls/src/handshake/random.js +1 -1
  50. package/lib/dtls/src/handshake/random.js.map +1 -1
  51. package/lib/dtls/src/record/message/fragment.js +1 -1
  52. package/lib/dtls/src/record/message/fragment.js.map +1 -1
  53. package/lib/dtls/src/record/message/header.js +2 -2
  54. package/lib/dtls/src/record/message/header.js.map +1 -1
  55. package/lib/dtls/src/record/message/plaintext.js +1 -1
  56. package/lib/dtls/src/record/message/plaintext.js.map +1 -1
  57. package/lib/dtls/src/server.js.map +1 -1
  58. package/lib/dtls/src/socket.js.map +1 -1
  59. package/lib/dtls/src/transport.js.map +1 -1
  60. package/lib/ice/src/candidate.js.map +1 -1
  61. package/lib/ice/src/exceptions.js.map +1 -1
  62. package/lib/ice/src/helper.js.map +1 -1
  63. package/lib/ice/src/ice.js.map +1 -1
  64. package/lib/ice/src/stun/attributes.js.map +1 -1
  65. package/lib/ice/src/stun/message.js.map +1 -1
  66. package/lib/ice/src/stun/protocol.js.map +1 -1
  67. package/lib/ice/src/stun/transaction.js.map +1 -1
  68. package/lib/ice/src/transport.js.map +1 -1
  69. package/lib/ice/src/turn/protocol.js.map +1 -1
  70. package/lib/rtp/src/codec/av1.js +1 -1
  71. package/lib/rtp/src/codec/av1.js.map +1 -1
  72. package/lib/rtp/src/container/index.d.ts +2 -1
  73. package/lib/rtp/src/container/index.js +2 -1
  74. package/lib/rtp/src/container/index.js.map +1 -1
  75. package/lib/rtp/src/container/mp4/container.d.ts +66 -0
  76. package/lib/rtp/src/container/mp4/container.js +262 -0
  77. package/lib/rtp/src/container/mp4/container.js.map +1 -0
  78. package/lib/rtp/src/container/mp4/exp-golomb.d.ts +20 -0
  79. package/lib/rtp/src/container/mp4/exp-golomb.js +144 -0
  80. package/lib/rtp/src/container/mp4/exp-golomb.js.map +1 -0
  81. package/lib/rtp/src/container/mp4/h264.d.ts +42 -0
  82. package/lib/rtp/src/container/mp4/h264.js +240 -0
  83. package/lib/rtp/src/container/mp4/h264.js.map +1 -0
  84. package/lib/rtp/src/container/mp4/index.d.ts +2 -0
  85. package/lib/rtp/src/container/mp4/index.js +19 -0
  86. package/lib/rtp/src/container/mp4/index.js.map +1 -0
  87. package/lib/rtp/src/container/mp4/mp4box.d.ts +5 -0
  88. package/lib/rtp/src/container/mp4/mp4box.js +32 -0
  89. package/lib/rtp/src/container/mp4/mp4box.js.map +1 -0
  90. package/lib/rtp/src/container/mp4/sps-parser.d.ts +40 -0
  91. package/lib/rtp/src/container/mp4/sps-parser.js +291 -0
  92. package/lib/rtp/src/container/mp4/sps-parser.js.map +1 -0
  93. package/lib/rtp/src/container/ogg/index.d.ts +1 -0
  94. package/lib/rtp/src/container/ogg/index.js +18 -0
  95. package/lib/rtp/src/container/ogg/index.js.map +1 -0
  96. package/lib/rtp/src/container/ogg/parser.d.ts +12 -0
  97. package/lib/rtp/src/container/ogg/parser.js +100 -0
  98. package/lib/rtp/src/container/ogg/parser.js.map +1 -0
  99. package/lib/rtp/src/container/{webm.d.ts → webm/container.d.ts} +1 -1
  100. package/lib/rtp/src/container/{webm.js → webm/container.js} +6 -6
  101. package/lib/rtp/src/container/webm/container.js.map +1 -0
  102. package/lib/rtp/src/container/webm/ebml/ebml.js.map +1 -0
  103. package/lib/rtp/src/container/webm/ebml/id.js.map +1 -0
  104. package/lib/rtp/src/container/webm/ebml/index.js.map +1 -0
  105. package/lib/rtp/src/container/webm/ebml/typedArrayUtils.js.map +1 -0
  106. package/lib/rtp/src/container/webm/index.d.ts +2 -0
  107. package/lib/rtp/src/container/webm/index.js +19 -0
  108. package/lib/rtp/src/container/webm/index.js.map +1 -0
  109. package/lib/rtp/src/processor/depacketizer.js.map +1 -1
  110. package/lib/rtp/src/processor/dtx.d.ts +1 -1
  111. package/lib/rtp/src/processor/dtx.js.map +1 -1
  112. package/lib/rtp/src/processor/index.d.ts +2 -0
  113. package/lib/rtp/src/processor/index.js +2 -0
  114. package/lib/rtp/src/processor/index.js.map +1 -1
  115. package/lib/rtp/src/processor/jitterBuffer.js.map +1 -1
  116. package/lib/rtp/src/processor/jitterBufferTransformer.js.map +1 -1
  117. package/lib/rtp/src/processor/lipsync.js.map +1 -1
  118. package/lib/rtp/src/processor/lipsyncCallback.js.map +1 -1
  119. package/lib/rtp/src/processor/mp4.d.ts +50 -0
  120. package/lib/rtp/src/processor/mp4.js +162 -0
  121. package/lib/rtp/src/processor/mp4.js.map +1 -0
  122. package/lib/rtp/src/processor/mp4Callback.d.ts +12 -0
  123. package/lib/rtp/src/processor/mp4Callback.js +83 -0
  124. package/lib/rtp/src/processor/mp4Callback.js.map +1 -0
  125. package/lib/rtp/src/processor/mute.d.ts +1 -1
  126. package/lib/rtp/src/processor/mute.js +6 -3
  127. package/lib/rtp/src/processor/mute.js.map +1 -1
  128. package/lib/rtp/src/processor/muteCallback.js.map +1 -1
  129. package/lib/rtp/src/processor/nack.js +2 -3
  130. package/lib/rtp/src/processor/nack.js.map +1 -1
  131. package/lib/rtp/src/processor/ntpTime.d.ts +1 -1
  132. package/lib/rtp/src/processor/ntpTime.js.map +1 -1
  133. package/lib/rtp/src/processor/rtcpCallback.js.map +1 -1
  134. package/lib/rtp/src/processor/rtpCallback.js.map +1 -1
  135. package/lib/rtp/src/processor/rtpStream.js.map +1 -1
  136. package/lib/rtp/src/processor/rtpTime.js.map +1 -1
  137. package/lib/rtp/src/processor/webm.d.ts +1 -1
  138. package/lib/rtp/src/processor/webm.js +1 -1
  139. package/lib/rtp/src/processor/webm.js.map +1 -1
  140. package/lib/rtp/src/processor/webmCallback.d.ts +1 -1
  141. package/lib/rtp/src/processor/webmCallback.js.map +1 -1
  142. package/lib/rtp/src/processor/webmStream.d.ts +1 -1
  143. package/lib/rtp/src/processor/webmStream.js.map +1 -1
  144. package/lib/rtp/src/rtcp/psfb/fullIntraRequest.js +1 -1
  145. package/lib/rtp/src/rtcp/psfb/fullIntraRequest.js.map +1 -1
  146. package/lib/rtp/src/rtcp/psfb/index.js +1 -1
  147. package/lib/rtp/src/rtcp/psfb/index.js.map +1 -1
  148. package/lib/rtp/src/rtcp/psfb/pictureLossIndication.js +1 -1
  149. package/lib/rtp/src/rtcp/psfb/pictureLossIndication.js.map +1 -1
  150. package/lib/rtp/src/rtcp/psfb/remb.js +1 -1
  151. package/lib/rtp/src/rtcp/psfb/remb.js.map +1 -1
  152. package/lib/rtp/src/rtcp/rr.js +3 -7
  153. package/lib/rtp/src/rtcp/rr.js.map +1 -1
  154. package/lib/rtp/src/rtcp/rtpfb/index.js +1 -1
  155. package/lib/rtp/src/rtcp/rtpfb/index.js.map +1 -1
  156. package/lib/rtp/src/rtcp/rtpfb/nack.js +6 -13
  157. package/lib/rtp/src/rtcp/rtpfb/nack.js.map +1 -1
  158. package/lib/rtp/src/rtcp/rtpfb/twcc.js +12 -8
  159. package/lib/rtp/src/rtcp/rtpfb/twcc.js.map +1 -1
  160. package/lib/rtp/src/rtcp/sdes.js +1 -1
  161. package/lib/rtp/src/rtcp/sdes.js.map +1 -1
  162. package/lib/rtp/src/rtcp/sr.js +2 -6
  163. package/lib/rtp/src/rtcp/sr.js.map +1 -1
  164. package/lib/rtp/src/rtp/headerExtension.d.ts +5 -0
  165. package/lib/rtp/src/rtp/headerExtension.js +35 -9
  166. package/lib/rtp/src/rtp/headerExtension.js.map +1 -1
  167. package/lib/rtp/src/rtp/red/encoder.js.map +1 -1
  168. package/lib/rtp/src/rtp/red/handler.js.map +1 -1
  169. package/lib/rtp/src/rtp/rtp.js.map +1 -1
  170. package/lib/rtp/src/srtp/cipher/ctr.js.map +1 -1
  171. package/lib/rtp/src/srtp/cipher/gcm.js.map +1 -1
  172. package/lib/rtp/src/srtp/cipher/index.js.map +1 -1
  173. package/lib/rtp/src/srtp/context/context.js.map +1 -1
  174. package/lib/rtp/src/srtp/session.js.map +1 -1
  175. package/lib/rtp/src/srtp/srtcp.js.map +1 -1
  176. package/lib/rtp/src/srtp/srtp.js.map +1 -1
  177. package/lib/rtp/src/util.js.map +1 -1
  178. package/lib/sctp/src/chunk.js +17 -17
  179. package/lib/sctp/src/chunk.js.map +1 -1
  180. package/lib/sctp/src/param.js +3 -3
  181. package/lib/sctp/src/param.js.map +1 -1
  182. package/lib/sctp/src/sctp.js.map +1 -1
  183. package/lib/sctp/src/transport.js.map +1 -1
  184. package/lib/webrtc/src/const.js.map +1 -1
  185. package/lib/webrtc/src/dataChannel.js.map +1 -1
  186. package/lib/webrtc/src/media/parameters.js.map +1 -1
  187. package/lib/webrtc/src/media/receiver/nack.js.map +1 -1
  188. package/lib/webrtc/src/media/receiver/receiverTwcc.js.map +1 -1
  189. package/lib/webrtc/src/media/receiver/statistics.js.map +1 -1
  190. package/lib/webrtc/src/media/router.js.map +1 -1
  191. package/lib/webrtc/src/media/rtpReceiver.js.map +1 -1
  192. package/lib/webrtc/src/media/rtpSender.js.map +1 -1
  193. package/lib/webrtc/src/media/rtpTransceiver.d.ts +1 -1
  194. package/lib/webrtc/src/media/rtpTransceiver.js.map +1 -1
  195. package/lib/webrtc/src/media/sender/senderBWE.js.map +1 -1
  196. package/lib/webrtc/src/media/track.js.map +1 -1
  197. package/lib/webrtc/src/nonstandard/recorder/index.js.map +1 -1
  198. package/lib/webrtc/src/nonstandard/recorder/writer/index.js.map +1 -1
  199. package/lib/webrtc/src/nonstandard/recorder/writer/webm.js.map +1 -1
  200. package/lib/webrtc/src/nonstandard/userMedia.js.map +1 -1
  201. package/lib/webrtc/src/peerConnection.js.map +1 -1
  202. package/lib/webrtc/src/sdp.js.map +1 -1
  203. package/lib/webrtc/src/transport/dtls.d.ts +1 -1
  204. package/lib/webrtc/src/transport/dtls.js.map +1 -1
  205. package/lib/webrtc/src/transport/ice.d.ts +2 -2
  206. package/lib/webrtc/src/transport/ice.js.map +1 -1
  207. package/lib/webrtc/src/transport/sctp.js.map +1 -1
  208. package/lib/webrtc/src/types/domain.d.ts +2 -2
  209. package/lib/webrtc/src/types/domain.js.map +1 -1
  210. package/lib/webrtc/src/utils.d.ts +1 -0
  211. package/lib/webrtc/src/utils.js +9 -1
  212. package/lib/webrtc/src/utils.js.map +1 -1
  213. package/package.json +5 -3
  214. package/src/const.ts +1 -1
  215. package/src/dataChannel.ts +3 -3
  216. package/src/media/parameters.ts +3 -3
  217. package/src/media/receiver/nack.ts +7 -4
  218. package/src/media/receiver/receiverTwcc.ts +5 -5
  219. package/src/media/receiver/statistics.ts +1 -1
  220. package/src/media/router.ts +5 -5
  221. package/src/media/rtpReceiver.ts +9 -9
  222. package/src/media/rtpSender.ts +8 -8
  223. package/src/media/rtpTransceiver.ts +3 -3
  224. package/src/media/sender/senderBWE.ts +2 -2
  225. package/src/media/track.ts +1 -1
  226. package/src/nonstandard/recorder/index.ts +1 -1
  227. package/src/nonstandard/recorder/writer/index.ts +1 -1
  228. package/src/nonstandard/recorder/writer/webm.ts +2 -2
  229. package/src/nonstandard/userMedia.ts +1 -1
  230. package/src/peerConnection.ts +52 -52
  231. package/src/sdp.ts +27 -21
  232. package/src/transport/dtls.ts +13 -10
  233. package/src/transport/ice.ts +6 -6
  234. package/src/transport/sctp.ts +4 -4
  235. package/src/types/domain.ts +2 -2
  236. package/src/utils.ts +11 -2
  237. package/lib/common/src/array.d.ts +0 -1
  238. package/lib/common/src/array.js +0 -15
  239. package/lib/common/src/array.js.map +0 -1
  240. package/lib/rtp/src/container/ebml/ebml.js.map +0 -1
  241. package/lib/rtp/src/container/ebml/id.js.map +0 -1
  242. package/lib/rtp/src/container/ebml/index.js.map +0 -1
  243. package/lib/rtp/src/container/ebml/typedArrayUtils.js.map +0 -1
  244. package/lib/rtp/src/container/webm.js.map +0 -1
  245. /package/lib/rtp/src/container/{ebml → webm/ebml}/ebml.d.ts +0 -0
  246. /package/lib/rtp/src/container/{ebml → webm/ebml}/ebml.js +0 -0
  247. /package/lib/rtp/src/container/{ebml → webm/ebml}/id.d.ts +0 -0
  248. /package/lib/rtp/src/container/{ebml → webm/ebml}/id.js +0 -0
  249. /package/lib/rtp/src/container/{ebml → webm/ebml}/index.d.ts +0 -0
  250. /package/lib/rtp/src/container/{ebml → webm/ebml}/index.js +0 -0
  251. /package/lib/rtp/src/container/{ebml → webm/ebml}/typedArrayUtils.d.ts +0 -0
  252. /package/lib/rtp/src/container/{ebml → webm/ebml}/typedArrayUtils.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../../../../dtls/src/handshake/extensions/signature.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAIpD,MAAa,SAAS;IAcpB,YAAY,QAA4B,EAAE;QAH1C;;;;mBAAsB,SAAS,CAAC,IAAI;WAAC;QACrC;;;;mBAA0E,EAAE;WAAC;QAG3E,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,MAAM,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,IAAI,SAAS,CAAC,IAAA,oBAAM,EAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,SAAS;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;SAChC,CAAC;IACJ,CAAC;;AA3CH,8BA4CC;AA3CQ;;;;WAAO,EAAE;GAAC;AACV;;;;WAAgB;QACrB,IAAI,EAAE,mBAAK,CAAC,QAAQ;QACpB,IAAI,EAAE,mBAAK,CAAC,KAAK,CACf,EAAE,IAAI,EAAE,mBAAK,CAAC,KAAK,EAAE,SAAS,EAAE,mBAAK,CAAC,KAAK,EAAE,EAC7C,mBAAK,CAAC,QAAQ,EACd,OAAO,CACR;KACF;GAAC","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { HashAlgorithms, SignatureAlgorithms } from \"../../cipher/const\";\n\nexport class Signature {\n static type = 13;\n static readonly spec = {\n type: types.uint16be,\n data: types.array(\n { hash: types.uint8, signature: types.uint8 },\n types.uint16be,\n \"bytes\"\n ),\n };\n\n public type: number = Signature.type;\n public data: { hash: HashAlgorithms; signature: SignatureAlgorithms }[] = [];\n\n constructor(props: Partial<Signature> = {}) {\n Object.assign(this, props);\n }\n\n static createEmpty() {\n const v = new Signature();\n return v;\n }\n\n static deSerialize(buf: Buffer) {\n return new Signature(decode(buf, Signature.spec));\n }\n\n serialize() {\n const res = encode(this, Signature.spec).slice();\n return Buffer.from(res);\n }\n\n static fromData(buf: Buffer) {\n const type = Buffer.alloc(2);\n type.writeUInt16BE(Signature.type);\n return Signature.deSerialize(Buffer.concat([type, buf]));\n }\n\n get extension() {\n return {\n type: this.type,\n data: this.serialize().slice(2),\n };\n }\n}\n"]}
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../../../../dtls/src/handshake/extensions/signature.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAIpD,MAAa,SAAS;IAcpB,YAAY,QAA4B,EAAE;QAHnC;;;;mBAAe,SAAS,CAAC,IAAI;WAAC;QAC9B;;;;mBAAmE,EAAE;WAAC;QAG3E,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,MAAM,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,IAAI,SAAS,CAAC,IAAA,oBAAM,EAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,SAAS;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;SAChC,CAAC;IACJ,CAAC;;AA1CM;;;;WAAO,EAAE;EAAL,CAAM;AACD;;;;WAAO;QACrB,IAAI,EAAE,mBAAK,CAAC,QAAQ;QACpB,IAAI,EAAE,mBAAK,CAAC,KAAK,CACf,EAAE,IAAI,EAAE,mBAAK,CAAC,KAAK,EAAE,SAAS,EAAE,mBAAK,CAAC,KAAK,EAAE,EAC7C,mBAAK,CAAC,QAAQ,EACd,OAAO,CACR;KACF;EAPmB,CAOlB;AATS,8BAAS","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { HashAlgorithms, SignatureAlgorithms } from \"../../cipher/const\";\n\nexport class Signature {\n static type = 13;\n static readonly spec = {\n type: types.uint16be,\n data: types.array(\n { hash: types.uint8, signature: types.uint8 },\n types.uint16be,\n \"bytes\"\n ),\n };\n\n public type: number = Signature.type;\n public data: { hash: HashAlgorithms; signature: SignatureAlgorithms }[] = [];\n\n constructor(props: Partial<Signature> = {}) {\n Object.assign(this, props);\n }\n\n static createEmpty() {\n const v = new Signature();\n return v;\n }\n\n static deSerialize(buf: Buffer) {\n return new Signature(decode(buf, Signature.spec));\n }\n\n serialize() {\n const res = encode(this, Signature.spec).slice();\n return Buffer.from(res);\n }\n\n static fromData(buf: Buffer) {\n const type = Buffer.alloc(2);\n type.writeUInt16BE(Signature.type);\n return Signature.deSerialize(Buffer.concat([type, buf]));\n }\n\n get extension() {\n return {\n type: this.type,\n data: this.serialize().slice(2),\n };\n }\n}\n"]}
@@ -80,7 +80,6 @@ class UseSRTP {
80
80
  };
81
81
  }
82
82
  }
83
- exports.UseSRTP = UseSRTP;
84
83
  Object.defineProperty(UseSRTP, "type", {
85
84
  enumerable: true,
86
85
  configurable: true,
@@ -96,4 +95,5 @@ Object.defineProperty(UseSRTP, "spec", {
96
95
  data: binary_data_1.types.buffer(binary_data_1.types.uint16be),
97
96
  }
98
97
  });
98
+ exports.UseSRTP = UseSRTP;
99
99
  //# sourceMappingURL=useSrtp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSrtp.js","sourceRoot":"","sources":["../../../../../../dtls/src/handshake/extensions/useSrtp.ts"],"names":[],"mappings":"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","sourcesContent":["import { decode, encode, types } from \"binary-data\";\nimport times from \"lodash/times\";\n\nimport { Extension } from \"../../typings/domain\";\n\nexport class UseSRTP {\n static type = 14; // 9. IANA Considerations\n static readonly spec = {\n type: types.uint16be,\n data: types.buffer(types.uint16be),\n };\n\n type: number = UseSRTP.type;\n data: Buffer = Buffer.from([]);\n profiles: number[] = [];\n mki: Buffer = Buffer.from([0x00]);\n\n constructor(props: Partial<UseSRTP> = {}) {\n Object.assign(this, props);\n }\n\n static create(profiles: number[], mki: Buffer) {\n const v = new UseSRTP({\n profiles,\n mki,\n });\n return v;\n }\n\n static deSerialize(buf: Buffer) {\n const useSrtp = new UseSRTP(decode(buf, UseSRTP.spec));\n const profileLength = useSrtp.data.readUInt16BE();\n const profiles = times(profileLength / 2).map((i) => {\n return useSrtp.data.readUInt16BE(i * 2 + 2);\n });\n useSrtp.profiles = profiles;\n useSrtp.mki = useSrtp.data.slice(profileLength + 2);\n return useSrtp;\n }\n\n serialize() {\n const profileLength = Buffer.alloc(2);\n profileLength.writeUInt16BE(this.profiles.length * 2);\n const data = Buffer.concat([\n profileLength,\n ...this.profiles.map((profile) => {\n const buf = Buffer.alloc(2);\n buf.writeUInt16BE(profile);\n return buf;\n }),\n this.mki,\n ]);\n this.data = data;\n const res = encode(this, UseSRTP.spec).slice();\n return Buffer.from(res);\n }\n\n static fromData(buf: Buffer) {\n const head = Buffer.alloc(4);\n head.writeUInt16BE(UseSRTP.type);\n head.writeUInt16BE(buf.length, 2);\n return UseSRTP.deSerialize(Buffer.concat([head, buf]));\n }\n\n get extension(): Extension {\n return {\n type: this.type,\n data: this.serialize().slice(4),\n };\n }\n}\n"]}
1
+ {"version":3,"file":"useSrtp.js","sourceRoot":"","sources":["../../../../../../dtls/src/handshake/extensions/useSrtp.ts"],"names":[],"mappings":"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","sourcesContent":["import { decode, encode, types } from \"binary-data\";\nimport times from \"lodash/times\";\n\nimport { Extension } from \"../../typings/domain\";\n\nexport class UseSRTP {\n static type = 14; // 9. IANA Considerations\n static readonly spec = {\n type: types.uint16be,\n data: types.buffer(types.uint16be),\n };\n\n type: number = UseSRTP.type;\n data: Buffer = Buffer.from([]);\n profiles: number[] = [];\n mki: Buffer = Buffer.from([0x00]);\n\n constructor(props: Partial<UseSRTP> = {}) {\n Object.assign(this, props);\n }\n\n static create(profiles: number[], mki: Buffer) {\n const v = new UseSRTP({\n profiles,\n mki,\n });\n return v;\n }\n\n static deSerialize(buf: Buffer) {\n const useSrtp = new UseSRTP(decode(buf, UseSRTP.spec));\n const profileLength = useSrtp.data.readUInt16BE();\n const profiles = times(profileLength / 2).map((i) => {\n return useSrtp.data.readUInt16BE(i * 2 + 2);\n });\n useSrtp.profiles = profiles;\n useSrtp.mki = useSrtp.data.slice(profileLength + 2);\n return useSrtp;\n }\n\n serialize() {\n const profileLength = Buffer.alloc(2);\n profileLength.writeUInt16BE(this.profiles.length * 2);\n const data = Buffer.concat([\n profileLength,\n ...this.profiles.map((profile) => {\n const buf = Buffer.alloc(2);\n buf.writeUInt16BE(profile);\n return buf;\n }),\n this.mki,\n ]);\n this.data = data;\n const res = encode(this, UseSRTP.spec).slice();\n return Buffer.from(res);\n }\n\n static fromData(buf: Buffer) {\n const head = Buffer.alloc(4);\n head.writeUInt16BE(UseSRTP.type);\n head.writeUInt16BE(buf.length, 2);\n return UseSRTP.deSerialize(Buffer.concat([head, buf]));\n }\n\n get extension(): Extension {\n return {\n type: this.type,\n data: this.serialize().slice(4),\n };\n }\n}\n"]}
@@ -27,7 +27,6 @@ class Alert {
27
27
  return Buffer.from(res);
28
28
  }
29
29
  }
30
- exports.Alert = Alert;
31
30
  Object.defineProperty(Alert, "spec", {
32
31
  enumerable: true,
33
32
  configurable: true,
@@ -37,4 +36,5 @@ Object.defineProperty(Alert, "spec", {
37
36
  description: binary_data_1.types.uint8,
38
37
  }
39
38
  });
39
+ exports.Alert = Alert;
40
40
  //# sourceMappingURL=alert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../../../../dtls/src/handshake/message/alert.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAEpD,MAAa,KAAK;IAMhB,YAAmB,KAAa,EAAS,WAAmB;;;;;mBAAzC;;;;;;mBAAsB;;IAAsB,CAAC;IAEhE,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,IAAI,KAAK;QACd,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAA,oBAAM,EAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAC1C,CAAC;IACJ,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;;AAlBH,sBAmBC;AAlBQ;;;;WAAgB;QACrB,KAAK,EAAE,mBAAK,CAAC,KAAK;QAClB,WAAW,EAAE,mBAAK,CAAC,KAAK;KACzB;GAAC","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nexport class Alert {\n static readonly spec = {\n level: types.uint8,\n description: types.uint8,\n };\n\n constructor(public level: number, public description: number) {}\n\n static deSerialize(buf: Buffer) {\n return new Alert(\n //@ts-ignore\n ...Object.values(decode(buf, Alert.spec))\n );\n }\n\n serialize() {\n const res = encode(this, Alert.spec).slice();\n return Buffer.from(res);\n }\n}\n"]}
1
+ {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../../../../dtls/src/handshake/message/alert.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAEpD,MAAa,KAAK;IAMhB,YAAmB,KAAa,EAAS,WAAmB;QAAhD;;;;mBAAO,KAAK;WAAQ;QAAE;;;;mBAAO,WAAW;WAAQ;IAAG,CAAC;IAEhE,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,IAAI,KAAK;QACd,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAA,oBAAM,EAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAC1C,CAAC;IACJ,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;;AAjBe;;;;WAAO;QACrB,KAAK,EAAE,mBAAK,CAAC,KAAK;QAClB,WAAW,EAAE,mBAAK,CAAC,KAAK;KACzB;EAHmB,CAGlB;AAJS,sBAAK","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nexport class Alert {\n static readonly spec = {\n level: types.uint8,\n description: types.uint8,\n };\n\n constructor(public level: number, public description: number) {}\n\n static deSerialize(buf: Buffer) {\n return new Alert(\n //@ts-ignore\n ...Object.values(decode(buf, Alert.spec))\n );\n }\n\n serialize() {\n const res = encode(this, Alert.spec).slice();\n return Buffer.from(res);\n }\n}\n"]}
@@ -45,7 +45,6 @@ class Certificate {
45
45
  return new fragment_1.FragmentedHandshake(this.msgType, body.length, this.messageSeq, 0, body.length, body);
46
46
  }
47
47
  }
48
- exports.Certificate = Certificate;
49
48
  Object.defineProperty(Certificate, "spec", {
50
49
  enumerable: true,
51
50
  configurable: true,
@@ -54,4 +53,5 @@ Object.defineProperty(Certificate, "spec", {
54
53
  certificateList: binary_data_1.types.array(binary_1.ASN11Cert, binary_data_1.types.uint24be, "bytes"),
55
54
  }
56
55
  });
56
+ exports.Certificate = Certificate;
57
57
  //# sourceMappingURL=certificate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"certificate.js","sourceRoot":"","sources":["../../../../../../dtls/src/handshake/message/certificate.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAEpD,4DAAoE;AAEpE,sCAAsC;AACtC,oCAAyC;AAEzC,6BAA6B;AAC7B,6BAA6B;AAE7B,MAAa,WAAW;IAOtB,YAAmB,eAAyB;;;;;mBAAzB;;QANnB;;;;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;AAjCQ;;;;WAAgB;QACrB,eAAe,EAAE,mBAAK,CAAC,KAAK,CAAC,kBAAS,EAAE,mBAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;KACjE;GAAC","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { FragmentedHandshake } from \"../../record/message/fragment\";\nimport { 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,6CAAoD;AAEpD,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;;AAhCe;;;;WAAO;QACrB,eAAe,EAAE,mBAAK,CAAC,KAAK,CAAC,kBAAS,EAAE,mBAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;KACjE;EAFmB,CAElB;AALS,kCAAW","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { FragmentedHandshake } from \"../../record/message/fragment\";\nimport { 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"]}
@@ -25,7 +25,6 @@ class ChangeCipherSpec {
25
25
  return Buffer.from(res);
26
26
  }
27
27
  }
28
- exports.ChangeCipherSpec = ChangeCipherSpec;
29
28
  Object.defineProperty(ChangeCipherSpec, "spec", {
30
29
  enumerable: true,
31
30
  configurable: true,
@@ -34,4 +33,5 @@ Object.defineProperty(ChangeCipherSpec, "spec", {
34
33
  type: binary_data_1.types.uint8,
35
34
  }
36
35
  });
36
+ exports.ChangeCipherSpec = ChangeCipherSpec;
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,6CAAoD;AAEpD,oCAAoC;AAEpC,MAAa,gBAAgB;IAK3B,YAAmB,OAAO,CAAC;;;;;mBAAR;;IAAW,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;AArBQ;;;;WAAgB;QACrB,IAAI,EAAE,mBAAK,CAAC,KAAK;KAClB;GAAC","sourcesContent":["import { decode, encode, types } from \"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,6CAAoD;AAEpD,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;;AApBe;;;;WAAO;QACrB,IAAI,EAAE,mBAAK,CAAC,KAAK;KAClB;EAFmB,CAElB;AAHS,4CAAgB","sourcesContent":["import { decode, encode, types } from \"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"]}
@@ -49,7 +49,6 @@ class CertificateVerify {
49
49
  return new fragment_1.FragmentedHandshake(this.msgType, body.length, this.messageSeq, 0, body.length, body);
50
50
  }
51
51
  }
52
- exports.CertificateVerify = CertificateVerify;
53
52
  Object.defineProperty(CertificateVerify, "spec", {
54
53
  enumerable: true,
55
54
  configurable: true,
@@ -59,4 +58,5 @@ Object.defineProperty(CertificateVerify, "spec", {
59
58
  signature: binary_data_1.types.buffer(binary_data_1.types.uint16be),
60
59
  }
61
60
  });
61
+ exports.CertificateVerify = CertificateVerify;
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,6CAAoD;AAGpD,+DAAuE;AAEvE,uCAA4C;AAE5C,MAAa,iBAAiB;IAS5B,YAAmB,SAA2B,EAAS,SAAiB;;;;;mBAArD;;;;;;mBAAoC;;QARvD;;;;mBAAU,qBAAa,CAAC,qBAAqB;WAAC;QAC9C;;;;;WAAoB;IAOuD,CAAC;IAE5E,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;;AAtCH,8CAuCC;AAnCQ;;;;WAAgB;QACrB,SAAS,EAAE,mBAAK,CAAC,QAAQ;QACzB,SAAS,EAAE,mBAAK,CAAC,MAAM,CAAC,mBAAK,CAAC,QAAQ,CAAC;KACxC;GAAC","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { SignatureSchemes } from \"../../../cipher/const\";\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport { 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(public algorithm: SignatureSchemes, public signature: Buffer) {}\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,6CAAoD;AAGpD,+DAAuE;AAEvE,uCAA4C;AAE5C,MAAa,iBAAiB;IAS5B,YAAmB,SAA2B,EAAS,SAAiB;QAA5D;;;;mBAAO,SAAS;WAAkB;QAAE;;;;mBAAO,SAAS;WAAQ;QARxE;;;;mBAAU,qBAAa,CAAC,qBAAqB;WAAC;QAC9C;;;;;WAAoB;IAOuD,CAAC;IAE5E,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;;AAlCe;;;;WAAO;QACrB,SAAS,EAAE,mBAAK,CAAC,QAAQ;QACzB,SAAS,EAAE,mBAAK,CAAC,MAAM,CAAC,mBAAK,CAAC,QAAQ,CAAC;KACxC;EAHmB,CAGlB;AAPS,8CAAiB","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { SignatureSchemes } from \"../../../cipher/const\";\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport { 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(public algorithm: SignatureSchemes, public signature: Buffer) {}\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"]}
@@ -81,7 +81,6 @@ class ClientHello {
81
81
  return new fragment_1.FragmentedHandshake(this.msgType, body.length, this.messageSeq, 0, body.length, body);
82
82
  }
83
83
  }
84
- exports.ClientHello = ClientHello;
85
84
  Object.defineProperty(ClientHello, "spec", {
86
85
  enumerable: true,
87
86
  configurable: true,
@@ -96,4 +95,5 @@ Object.defineProperty(ClientHello, "spec", {
96
95
  extensions: binary_1.ExtensionList,
97
96
  }
98
97
  });
98
+ exports.ClientHello = ClientHello;
99
99
  //# sourceMappingURL=hello.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hello.js","sourceRoot":"","sources":["../../../../../../../dtls/src/handshake/message/client/hello.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAEpD,+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;;;;;mBANvB;;;;;;mBACA;;;;;;mBACA;;;;;;mBACA;;;;;;mBACA;;;;;;mBACA;;;;;;mBACA;;QAnBT;;;;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;AAvDQ;;;;WAAgB;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;GAAC","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport { 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,6CAAoD;AAEpD,+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;;AAtDe;;;;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;AAXS,kCAAW","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport { 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"]}
@@ -43,7 +43,6 @@ class ClientKeyExchange {
43
43
  return new fragment_1.FragmentedHandshake(this.msgType, body.length, this.messageSeq, 0, body.length, body);
44
44
  }
45
45
  }
46
- exports.ClientKeyExchange = ClientKeyExchange;
47
46
  Object.defineProperty(ClientKeyExchange, "spec", {
48
47
  enumerable: true,
49
48
  configurable: true,
@@ -52,4 +51,5 @@ Object.defineProperty(ClientKeyExchange, "spec", {
52
51
  publicKey: binary_data_1.types.buffer(binary_data_1.types.uint8),
53
52
  }
54
53
  });
54
+ exports.ClientKeyExchange = ClientKeyExchange;
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,6CAAoD;AAEpD,+DAAuE;AAEvE,uCAA4C;AAE5C,MAAa,iBAAiB;IAQ5B,YAAmB,SAAiB;;;;;mBAAjB;;QAPnB;;;;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;AAlCQ;;;;WAAgB;QACrB,SAAS,EAAE,mBAAK,CAAC,MAAM,CAAC,mBAAK,CAAC,KAAK,CAAC;KACrC;GAAC","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport { 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,6CAAoD;AAEpD,+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;;AAjCe;;;;WAAO;QACrB,SAAS,EAAE,mBAAK,CAAC,MAAM,CAAC,mBAAK,CAAC,KAAK,CAAC;KACrC;EAFmB,CAElB;AANS,8CAAiB","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport { 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 +1 @@
1
- {"version":3,"file":"finished.js","sourceRoot":"","sources":["../../../../../../dtls/src/handshake/message/finished.ts"],"names":[],"mappings":";;;AAAA,4DAAoE;AAEpE,oCAAyC;AAEzC,mBAAmB;AAEnB,MAAa,QAAQ;IAInB,YAAmB,UAAkB;;;;;mBAAlB;;QAHnB;;;;mBAAU,qBAAa,CAAC,WAAW;WAAC;QACpC;;;;;WAAoB;IAEoB,CAAC;IAEzC,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,QAAQ,CAAC,SAAgB,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,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;CACF;AA7BD,4BA6BC","sourcesContent":["import { FragmentedHandshake } from \"../../record/message/fragment\";\nimport { Handshake } from \"../../typings/domain\";\nimport { HandshakeType } from \"../const\";\n\n// 7.4.9. Finished\n\nexport class Finished implements Handshake {\n msgType = HandshakeType.finished_20;\n messageSeq?: number;\n\n constructor(public verifyData: Buffer) {}\n\n static createEmpty() {\n return new Finished(undefined as any);\n }\n\n static deSerialize(buf: Buffer) {\n return new Finished(buf);\n }\n\n serialize() {\n return this.verifyData;\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":"finished.js","sourceRoot":"","sources":["../../../../../../dtls/src/handshake/message/finished.ts"],"names":[],"mappings":";;;AAAA,4DAAoE;AAEpE,oCAAyC;AAEzC,mBAAmB;AAEnB,MAAa,QAAQ;IAInB,YAAmB,UAAkB;QAAzB;;;;mBAAO,UAAU;WAAQ;QAHrC;;;;mBAAU,qBAAa,CAAC,WAAW;WAAC;QACpC;;;;;WAAoB;IAEoB,CAAC;IAEzC,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,QAAQ,CAAC,SAAgB,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,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;CACF;AA7BD,4BA6BC","sourcesContent":["import { FragmentedHandshake } from \"../../record/message/fragment\";\nimport { Handshake } from \"../../typings/domain\";\nimport { HandshakeType } from \"../const\";\n\n// 7.4.9. Finished\n\nexport class Finished implements Handshake {\n msgType = HandshakeType.finished_20;\n messageSeq?: number;\n\n constructor(public verifyData: Buffer) {}\n\n static createEmpty() {\n return new Finished(undefined as any);\n }\n\n static deSerialize(buf: Buffer) {\n return new Finished(buf);\n }\n\n serialize() {\n return this.verifyData;\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"]}
@@ -56,7 +56,6 @@ class ServerCertificateRequest {
56
56
  return new fragment_1.FragmentedHandshake(this.msgType, body.length, this.messageSeq, 0, body.length, body);
57
57
  }
58
58
  }
59
- exports.ServerCertificateRequest = ServerCertificateRequest;
60
59
  Object.defineProperty(ServerCertificateRequest, "spec", {
61
60
  enumerable: true,
62
61
  configurable: true,
@@ -67,4 +66,5 @@ Object.defineProperty(ServerCertificateRequest, "spec", {
67
66
  authorities: binary_data_1.types.array(binary_1.DistinguishedName, binary_data_1.types.uint16be, "bytes"),
68
67
  }
69
68
  });
69
+ exports.ServerCertificateRequest = ServerCertificateRequest;
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,6CAAoD;AAGpD,+DAAuE;AAEvE,yCAIsB;AACtB,uCAA4C;AAE5C,8BAA8B;AAE9B,MAAa,wBAAwB;IASnC,YACS,gBAA0B,EAC1B,UAGJ,EACI,WAAqB;;;;;mBALrB;;;;;;mBACA;;;;;;mBAIA;;QAdT;;;;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;AA9CQ;;;;WAAgB;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;GAAC","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { HashAlgorithms, SignatureAlgorithms } from \"../../../cipher/const\";\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport { 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,6CAAoD;AAGpD,+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;;AA7Ce;;;;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;AAPS,4DAAwB","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { HashAlgorithms, SignatureAlgorithms } from \"../../../cipher/const\";\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport { 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"]}
@@ -88,7 +88,6 @@ class ServerHello {
88
88
  return new fragment_1.FragmentedHandshake(this.msgType, body.length, this.messageSeq, 0, body.length, body);
89
89
  }
90
90
  }
91
- exports.ServerHello = ServerHello;
92
91
  Object.defineProperty(ServerHello, "spec", {
93
92
  enumerable: true,
94
93
  configurable: true,
@@ -101,4 +100,5 @@ Object.defineProperty(ServerHello, "spec", {
101
100
  compressionMethod: binary_data_1.types.uint8,
102
101
  }
103
102
  });
103
+ exports.ServerHello = ServerHello;
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,6CAAoD;AAGpD,+DAAuE;AAEvE,yCAA8D;AAC9D,uCAA4C;AAC5C,yCAA0C;AAE1C,yBAAyB;AAEzB,MAAa,WAAW;IAWtB,YACS,aAAsB,EACtB,MAAc,EACd,SAAiB,EACjB,WAAyB,EACzB,iBAAyB,EACzB,UAAuB;;;;;mBALvB;;;;;;mBACA;;;;;;mBACA;;;;;;mBACA;;;;;;mBACA;;;;;;mBACA;;QAhBT;;;;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;YAC9B,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;SACH;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;AApEQ;;;;WAAgB;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;GAAC","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { CipherSuites } from \"../../../cipher/const\";\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport { Extension, Handshake, Random, Version } 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,6CAAoD;AAGpD,+DAAuE;AAEvE,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;YAC9B,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;SACH;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;;AAnEe;;;;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;AATS,kCAAW","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { CipherSuites } from \"../../../cipher/const\";\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport { Extension, Handshake, Random, Version } 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"]}
@@ -37,11 +37,11 @@ class ServerHelloDone {
37
37
  return new fragment_1.FragmentedHandshake(this.msgType, body.length, this.messageSeq, 0, body.length, body);
38
38
  }
39
39
  }
40
- exports.ServerHelloDone = ServerHelloDone;
41
40
  Object.defineProperty(ServerHelloDone, "spec", {
42
41
  enumerable: true,
43
42
  configurable: true,
44
43
  writable: true,
45
44
  value: {}
46
45
  });
46
+ exports.ServerHelloDone = ServerHelloDone;
47
47
  //# sourceMappingURL=helloDone.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helloDone.js","sourceRoot":"","sources":["../../../../../../../dtls/src/handshake/message/server/helloDone.ts"],"names":[],"mappings":";;;AAAA,6CAA6C;AAE7C,+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;AA7BQ;;;;WAAgB,EAAE;GAAC","sourcesContent":["import { decode, encode } from \"binary-data\";\n\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport { 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,6CAA6C;AAE7C,+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;;AA5Be;;;;WAAO,EAAE;EAAL,CAAM;AAHf,0CAAe","sourcesContent":["import { decode, encode } from \"binary-data\";\n\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport { 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"]}
@@ -56,7 +56,6 @@ class ServerHelloVerifyRequest {
56
56
  return new fragment_1.FragmentedHandshake(this.msgType, body.length, this.messageSeq, 0, body.length, body);
57
57
  }
58
58
  }
59
- exports.ServerHelloVerifyRequest = ServerHelloVerifyRequest;
60
59
  Object.defineProperty(ServerHelloVerifyRequest, "spec", {
61
60
  enumerable: true,
62
61
  configurable: true,
@@ -66,4 +65,5 @@ Object.defineProperty(ServerHelloVerifyRequest, "spec", {
66
65
  cookie: binary_data_1.types.buffer(binary_data_1.types.uint8),
67
66
  }
68
67
  });
68
+ exports.ServerHelloVerifyRequest = ServerHelloVerifyRequest;
69
69
  //# sourceMappingURL=helloVerifyRequest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helloVerifyRequest.js","sourceRoot":"","sources":["../../../../../../../dtls/src/handshake/message/server/helloVerifyRequest.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAEpD,+DAAuE;AAEvE,yCAA+C;AAC/C,uCAA4C;AAE5C,4CAA4C;AAE5C,MAAa,wBAAwB;IAQnC,YACS,aAA+C,EAC/C,MAAc;;;;;mBADd;;;;;;mBACA;;QATT;;;;mBAAU,qBAAa,CAAC,sBAAsB;WAAC;QAC/C;;;;;WAAoB;IASjB,CAAC;IAEJ,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,wBAAwB,CAAC,SAAgB,EAAE,SAAgB,CAAC,CAAC;IAC1E,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,IAAI,OAAO;QACT,OAAO;YACL,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK;YACrC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK;SACtC,CAAC;IACJ,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;;AA9CH,4DA+CC;AA5CQ;;;;WAAgB;QACrB,aAAa,EAAE,wBAAe;QAC9B,MAAM,EAAE,mBAAK,CAAC,MAAM,CAAC,mBAAK,CAAC,KAAK,CAAC;KAClC;GAAC","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport { Handshake } from \"../../../typings/domain\";\nimport { ProtocolVersion } from \"../../binary\";\nimport { HandshakeType } from \"../../const\";\n\n// 4.2.1. Denial-of-Service Countermeasures\n\nexport class ServerHelloVerifyRequest implements Handshake {\n msgType = HandshakeType.hello_verify_request_3;\n messageSeq?: number;\n static readonly spec = {\n serverVersion: ProtocolVersion,\n cookie: types.buffer(types.uint8),\n };\n\n constructor(\n public serverVersion: { major: number; minor: number },\n public cookie: Buffer\n ) {}\n\n static createEmpty() {\n return new ServerHelloVerifyRequest(undefined as any, undefined as any);\n }\n\n static deSerialize(buf: Buffer) {\n return new ServerHelloVerifyRequest(\n //@ts-ignore\n ...Object.values(decode(buf, ServerHelloVerifyRequest.spec))\n );\n }\n\n serialize() {\n const res = encode(this, ServerHelloVerifyRequest.spec).slice();\n return Buffer.from(res);\n }\n\n get version() {\n return {\n major: 255 - this.serverVersion.major,\n minor: 255 - this.serverVersion.minor,\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"]}
1
+ {"version":3,"file":"helloVerifyRequest.js","sourceRoot":"","sources":["../../../../../../../dtls/src/handshake/message/server/helloVerifyRequest.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAEpD,+DAAuE;AAEvE,yCAA+C;AAC/C,uCAA4C;AAE5C,4CAA4C;AAE5C,MAAa,wBAAwB;IAQnC,YACS,aAA+C,EAC/C,MAAc;QADrB;;;;mBAAO,aAAa;WAAkC;QACtD;;;;mBAAO,MAAM;WAAQ;QATvB;;;;mBAAU,qBAAa,CAAC,sBAAsB;WAAC;QAC/C;;;;;WAAoB;IASjB,CAAC;IAEJ,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,wBAAwB,CAAC,SAAgB,EAAE,SAAgB,CAAC,CAAC;IAC1E,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,IAAI,OAAO;QACT,OAAO;YACL,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK;YACrC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK;SACtC,CAAC;IACJ,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;;AA3Ce;;;;WAAO;QACrB,aAAa,EAAE,wBAAe;QAC9B,MAAM,EAAE,mBAAK,CAAC,MAAM,CAAC,mBAAK,CAAC,KAAK,CAAC;KAClC;EAHmB,CAGlB;AANS,4DAAwB","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport { Handshake } from \"../../../typings/domain\";\nimport { ProtocolVersion } from \"../../binary\";\nimport { HandshakeType } from \"../../const\";\n\n// 4.2.1. Denial-of-Service Countermeasures\n\nexport class ServerHelloVerifyRequest implements Handshake {\n msgType = HandshakeType.hello_verify_request_3;\n messageSeq?: number;\n static readonly spec = {\n serverVersion: ProtocolVersion,\n cookie: types.buffer(types.uint8),\n };\n\n constructor(\n public serverVersion: { major: number; minor: number },\n public cookie: Buffer\n ) {}\n\n static createEmpty() {\n return new ServerHelloVerifyRequest(undefined as any, undefined as any);\n }\n\n static deSerialize(buf: Buffer) {\n return new ServerHelloVerifyRequest(\n //@ts-ignore\n ...Object.values(decode(buf, ServerHelloVerifyRequest.spec))\n );\n }\n\n serialize() {\n const res = encode(this, ServerHelloVerifyRequest.spec).slice();\n return Buffer.from(res);\n }\n\n get version() {\n return {\n major: 255 - this.serverVersion.major,\n minor: 255 - this.serverVersion.minor,\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"]}
@@ -86,7 +86,6 @@ class ServerKeyExchange {
86
86
  return new fragment_1.FragmentedHandshake(this.msgType, body.length, this.messageSeq, 0, body.length, body);
87
87
  }
88
88
  }
89
- exports.ServerKeyExchange = ServerKeyExchange;
90
89
  Object.defineProperty(ServerKeyExchange, "spec", {
91
90
  enumerable: true,
92
91
  configurable: true,
@@ -102,4 +101,5 @@ Object.defineProperty(ServerKeyExchange, "spec", {
102
101
  signature: binary_data_1.types.buffer((ctx) => ctx.current.signatureLength),
103
102
  }
104
103
  });
104
+ exports.ServerKeyExchange = ServerKeyExchange;
105
105
  //# sourceMappingURL=keyExchange.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyExchange.js","sourceRoot":"","sources":["../../../../../../../dtls/src/handshake/message/server/keyExchange.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG5C,+DAAuE;AAEvE,iDAAoD;AACpD,uCAA4C;AAE5C,MAAa,iBAAiB;IAe5B,YACS,iBAA6B,EAC7B,UAAgC,EAChC,eAAuB,EACvB,SAAiB,EACjB,aAAqB,EACrB,kBAA0B,EAC1B,eAAuB,EACvB,SAAiB;;;;;mBAPjB;;;;;;mBACA;;;;;;mBACA;;;;;;mBACA;;;;;;mBACA;;;;;;mBACA;;;;;;mBACA;;;;;;mBACA;;QAtBT;;;;mBAAU,qBAAa,CAAC,sBAAsB;WAAC;QAC/C;;;;;WAAoB;IAsBjB,CAAC;IAEJ,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,iBAAiB,CAC1B,SAAgB,EAChB,SAAgB,EAChB,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,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,qBAAY,EAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC;IACb,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;;AA9DH,8CA+DC;AA3DQ;;;;WAAgB;QACrB,iBAAiB,EAAE,mBAAK,CAAC,KAAK;QAC9B,UAAU,EAAE,mBAAK,CAAC,QAAQ;QAC1B,eAAe,EAAE,mBAAK,CAAC,KAAK;QAC5B,SAAS,EAAE,mBAAK,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC;QAClE,aAAa,EAAE,mBAAK,CAAC,KAAK;QAC1B,kBAAkB,EAAE,mBAAK,CAAC,KAAK;QAC/B,eAAe,EAAE,mBAAK,CAAC,QAAQ;QAC/B,SAAS,EAAE,mBAAK,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC;KACnE;GAAC","sourcesContent":["import { decode, types } from \"binary-data\";\n\nimport { CurveTypes, NamedCurveAlgorithms } from \"../../../cipher/const\";\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport { Handshake } from \"../../../typings/domain\";\nimport { encodeBuffer } from \"../../../util/binary\";\nimport { HandshakeType } from \"../../const\";\n\nexport class ServerKeyExchange implements Handshake {\n msgType = HandshakeType.server_key_exchange_12;\n messageSeq?: number;\n\n static readonly spec = {\n ellipticCurveType: types.uint8,\n namedCurve: types.uint16be,\n publicKeyLength: types.uint8,\n publicKey: types.buffer((ctx: any) => ctx.current.publicKeyLength),\n hashAlgorithm: types.uint8,\n signatureAlgorithm: types.uint8,\n signatureLength: types.uint16be,\n signature: types.buffer((ctx: any) => ctx.current.signatureLength),\n };\n\n constructor(\n public ellipticCurveType: CurveTypes,\n public namedCurve: NamedCurveAlgorithms,\n public publicKeyLength: number,\n public publicKey: Buffer,\n public hashAlgorithm: number,\n public signatureAlgorithm: number,\n public signatureLength: number,\n public signature: Buffer\n ) {}\n\n static createEmpty() {\n return new ServerKeyExchange(\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 undefined as any\n );\n }\n\n static deSerialize(buf: Buffer) {\n const res = decode(buf, ServerKeyExchange.spec);\n return new ServerKeyExchange(\n //@ts-ignore\n ...Object.values(res)\n );\n }\n\n serialize() {\n const res = encodeBuffer(this, ServerKeyExchange.spec);\n return 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/server/keyExchange.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG5C,+DAAuE;AAEvE,iDAAoD;AACpD,uCAA4C;AAE5C,MAAa,iBAAiB;IAe5B,YACS,iBAA6B,EAC7B,UAAgC,EAChC,eAAuB,EACvB,SAAiB,EACjB,aAAqB,EACrB,kBAA0B,EAC1B,eAAuB,EACvB,SAAiB;QAPxB;;;;mBAAO,iBAAiB;WAAY;QACpC;;;;mBAAO,UAAU;WAAsB;QACvC;;;;mBAAO,eAAe;WAAQ;QAC9B;;;;mBAAO,SAAS;WAAQ;QACxB;;;;mBAAO,aAAa;WAAQ;QAC5B;;;;mBAAO,kBAAkB;WAAQ;QACjC;;;;mBAAO,eAAe;WAAQ;QAC9B;;;;mBAAO,SAAS;WAAQ;QAtB1B;;;;mBAAU,qBAAa,CAAC,sBAAsB;WAAC;QAC/C;;;;;WAAoB;IAsBjB,CAAC;IAEJ,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,iBAAiB,CAC1B,SAAgB,EAChB,SAAgB,EAChB,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,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,qBAAY,EAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC;IACb,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;;AA1De;;;;WAAO;QACrB,iBAAiB,EAAE,mBAAK,CAAC,KAAK;QAC9B,UAAU,EAAE,mBAAK,CAAC,QAAQ;QAC1B,eAAe,EAAE,mBAAK,CAAC,KAAK;QAC5B,SAAS,EAAE,mBAAK,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC;QAClE,aAAa,EAAE,mBAAK,CAAC,KAAK;QAC1B,kBAAkB,EAAE,mBAAK,CAAC,KAAK;QAC/B,eAAe,EAAE,mBAAK,CAAC,QAAQ;QAC/B,SAAS,EAAE,mBAAK,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC;KACnE;EATmB,CASlB;AAbS,8CAAiB","sourcesContent":["import { decode, types } from \"binary-data\";\n\nimport { CurveTypes, NamedCurveAlgorithms } from \"../../../cipher/const\";\nimport { FragmentedHandshake } from \"../../../record/message/fragment\";\nimport { Handshake } from \"../../../typings/domain\";\nimport { encodeBuffer } from \"../../../util/binary\";\nimport { HandshakeType } from \"../../const\";\n\nexport class ServerKeyExchange implements Handshake {\n msgType = HandshakeType.server_key_exchange_12;\n messageSeq?: number;\n\n static readonly spec = {\n ellipticCurveType: types.uint8,\n namedCurve: types.uint16be,\n publicKeyLength: types.uint8,\n publicKey: types.buffer((ctx: any) => ctx.current.publicKeyLength),\n hashAlgorithm: types.uint8,\n signatureAlgorithm: types.uint8,\n signatureLength: types.uint16be,\n signature: types.buffer((ctx: any) => ctx.current.signatureLength),\n };\n\n constructor(\n public ellipticCurveType: CurveTypes,\n public namedCurve: NamedCurveAlgorithms,\n public publicKeyLength: number,\n public publicKey: Buffer,\n public hashAlgorithm: number,\n public signatureAlgorithm: number,\n public signatureLength: number,\n public signature: Buffer\n ) {}\n\n static createEmpty() {\n return new ServerKeyExchange(\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 undefined as any\n );\n }\n\n static deSerialize(buf: Buffer) {\n const res = decode(buf, ServerKeyExchange.spec);\n return new ServerKeyExchange(\n //@ts-ignore\n ...Object.values(res)\n );\n }\n\n serialize() {\n const res = encodeBuffer(this, ServerKeyExchange.spec);\n return 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"]}
@@ -33,7 +33,6 @@ class DtlsRandom {
33
33
  return Buffer.from(res);
34
34
  }
35
35
  }
36
- exports.DtlsRandom = DtlsRandom;
37
36
  Object.defineProperty(DtlsRandom, "spec", {
38
37
  enumerable: true,
39
38
  configurable: true,
@@ -43,4 +42,5 @@ Object.defineProperty(DtlsRandom, "spec", {
43
42
  random_bytes: binary_data_1.types.buffer(28),
44
43
  }
45
44
  });
45
+ exports.DtlsRandom = DtlsRandom;
46
46
  //# sourceMappingURL=random.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"random.js","sourceRoot":"","sources":["../../../../../dtls/src/handshake/random.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,6CAAoD;AACpD,mCAAqC;AAErC,MAAa,UAAU;IAMrB,YACS,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAC7C,eAAe,IAAA,oBAAW,EAAC,EAAE,CAAC;;;;;mBAD9B;;;;;;mBACA;;IACN,CAAC;IAEJ,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,IAAI,UAAU;QACnB,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAA,oBAAM,EAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAC/C,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAA4B;QACtC,YAAY;QACZ,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;;AA1BH,gCA2BC;AA1BQ;;;;WAAgB;QACrB,aAAa,EAAE,mBAAK,CAAC,QAAQ;QAC7B,YAAY,EAAE,mBAAK,CAAC,MAAM,CAAC,EAAE,CAAC;KAC/B;GAAC","sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { decode, encode, types } from \"binary-data\";\nimport { randomBytes } from \"crypto\";\n\nexport class DtlsRandom {\n static readonly spec = {\n gmt_unix_time: types.uint32be,\n random_bytes: types.buffer(28),\n };\n\n constructor(\n public gmt_unix_time = Math.floor(Date.now() / 1000),\n public random_bytes = randomBytes(28)\n ) {}\n\n static deSerialize(buf: Buffer) {\n return new DtlsRandom(\n //@ts-ignore\n ...Object.values(decode(buf, DtlsRandom.spec))\n );\n }\n\n static from(spec: typeof DtlsRandom.spec) {\n //@ts-ignore\n return new DtlsRandom(...Object.values(spec));\n }\n\n serialize() {\n const res = encode(this, DtlsRandom.spec).slice();\n return Buffer.from(res);\n }\n}\n"]}
1
+ {"version":3,"file":"random.js","sourceRoot":"","sources":["../../../../../dtls/src/handshake/random.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,6CAAoD;AACpD,mCAAqC;AAErC,MAAa,UAAU;IAMrB,YACS,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAC7C,eAAe,IAAA,oBAAW,EAAC,EAAE,CAAC;QADrC;;;;mBAAO,aAAa;WAAgC;QACpD;;;;mBAAO,YAAY;WAAkB;IACpC,CAAC;IAEJ,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,IAAI,UAAU;QACnB,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAA,oBAAM,EAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAC/C,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAA4B;QACtC,YAAY;QACZ,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;;AAzBe;;;;WAAO;QACrB,aAAa,EAAE,mBAAK,CAAC,QAAQ;QAC7B,YAAY,EAAE,mBAAK,CAAC,MAAM,CAAC,EAAE,CAAC;KAC/B;EAHmB,CAGlB;AAJS,gCAAU","sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { decode, encode, types } from \"binary-data\";\nimport { randomBytes } from \"crypto\";\n\nexport class DtlsRandom {\n static readonly spec = {\n gmt_unix_time: types.uint32be,\n random_bytes: types.buffer(28),\n };\n\n constructor(\n public gmt_unix_time = Math.floor(Date.now() / 1000),\n public random_bytes = randomBytes(28)\n ) {}\n\n static deSerialize(buf: Buffer) {\n return new DtlsRandom(\n //@ts-ignore\n ...Object.values(decode(buf, DtlsRandom.spec))\n );\n }\n\n static from(spec: typeof DtlsRandom.spec) {\n //@ts-ignore\n return new DtlsRandom(...Object.values(spec));\n }\n\n serialize() {\n const res = encode(this, DtlsRandom.spec).slice();\n return Buffer.from(res);\n }\n}\n"]}
@@ -116,7 +116,6 @@ class FragmentedHandshake {
116
116
  });
117
117
  }
118
118
  }
119
- exports.FragmentedHandshake = FragmentedHandshake;
120
119
  Object.defineProperty(FragmentedHandshake, "spec", {
121
120
  enumerable: true,
122
121
  configurable: true,
@@ -130,4 +129,5 @@ Object.defineProperty(FragmentedHandshake, "spec", {
130
129
  fragment: binary_data_1.types.buffer((context) => context.current.fragment_length),
131
130
  }
132
131
  });
132
+ exports.FragmentedHandshake = FragmentedHandshake;
133
133
  //# sourceMappingURL=fragment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fragment.js","sourceRoot":"","sources":["../../../../../../dtls/src/record/message/fragment.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { decode, encode, types } from \"binary-data\";\n\nimport { HandshakeType } from \"../../handshake/const\";\nimport { getObjectSummary } from \"../../helper\";\n\nexport class FragmentedHandshake {\n static readonly spec = {\n msg_type: types.uint8,\n length: types.uint24be,\n message_seq: types.uint16be,\n fragment_offset: types.uint24be,\n fragment_length: types.uint24be,\n fragment: types.buffer((context: any) => context.current.fragment_length),\n };\n\n constructor(\n public msg_type: number,\n public length: number,\n public message_seq: number,\n public fragment_offset: number,\n public fragment_length: number,\n public fragment: Buffer\n ) {}\n\n get summary() {\n return getObjectSummary(this);\n }\n\n static createEmpty() {\n return new FragmentedHandshake(\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 FragmentedHandshake(\n //@ts-ignore\n ...Object.values(decode(buf, FragmentedHandshake.spec))\n );\n }\n\n serialize() {\n const res = encode(this, FragmentedHandshake.spec).slice();\n return Buffer.from(res);\n }\n\n chunk(maxFragmentLength?: number): FragmentedHandshake[] {\n let start = 0;\n const totalLength = this.fragment.length;\n\n if (totalLength === 0)\n return [\n new FragmentedHandshake(\n this.msg_type,\n totalLength,\n this.message_seq,\n start,\n 0,\n this.fragment\n ),\n ];\n\n const fragments: FragmentedHandshake[] = [];\n if (!maxFragmentLength) {\n maxFragmentLength = 1280 - (20 + 8) - (1 + 3 + 2 + 3 + 3);\n }\n // loop through the message and fragment it\n while (start < totalLength) {\n // calculate maximum length, limited by MTU - IP/UDP headers - handshake overhead\n const fragmentLength = Math.min(maxFragmentLength, totalLength - start);\n // slice and dice\n const data = Buffer.from(\n this.fragment.slice(start, start + fragmentLength)\n );\n if (data.length <= 0) {\n // this shouldn't happen, but we don't want to introduce an infinite loop\n throw new Error(\n `Zero or less bytes processed while fragmenting handshake message.`\n );\n }\n // create the message\n fragments.push(\n new FragmentedHandshake(\n this.msg_type,\n totalLength,\n this.message_seq,\n start,\n data.length,\n data\n )\n );\n // step forward by the actual fragment length\n start += data.length;\n }\n\n return fragments;\n }\n\n static assemble(messages: FragmentedHandshake[]): FragmentedHandshake {\n // cannot reassemble empty arrays\n if (!(messages && messages.length)) {\n throw new Error(\"cannot reassemble handshake from empty array\");\n }\n\n // sort by fragment start\n messages = messages.sort((a, b) => a.fragment_offset - b.fragment_offset);\n // combine into a single buffer\n const combined = Buffer.alloc(messages[0].length);\n for (const msg of messages) {\n msg.fragment.copy(combined, msg.fragment_offset);\n }\n\n // and return the complete message\n return new FragmentedHandshake(\n messages[0].msg_type,\n messages[0].length,\n messages[0].message_seq,\n 0,\n combined.length,\n combined\n );\n }\n\n static findAllFragments(\n fragments: FragmentedHandshake[],\n type: HandshakeType\n ): FragmentedHandshake[] {\n const reference = fragments.find((v) => v.msg_type === type);\n if (!reference) return [];\n\n // ignore empty arrays\n if (!(fragments && fragments.length)) return [];\n\n // return all fragments with matching msg_type, message_seq and total length\n return fragments.filter((f) => {\n return (\n f.msg_type === reference.msg_type &&\n f.message_seq === reference.message_seq &&\n f.length === reference.length\n );\n });\n }\n}\n"]}
1
+ {"version":3,"file":"fragment.js","sourceRoot":"","sources":["../../../../../../dtls/src/record/message/fragment.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { decode, encode, types } from \"binary-data\";\n\nimport { HandshakeType } from \"../../handshake/const\";\nimport { getObjectSummary } from \"../../helper\";\n\nexport class FragmentedHandshake {\n static readonly spec = {\n msg_type: types.uint8,\n length: types.uint24be,\n message_seq: types.uint16be,\n fragment_offset: types.uint24be,\n fragment_length: types.uint24be,\n fragment: types.buffer((context: any) => context.current.fragment_length),\n };\n\n constructor(\n public msg_type: number,\n public length: number,\n public message_seq: number,\n public fragment_offset: number,\n public fragment_length: number,\n public fragment: Buffer\n ) {}\n\n get summary() {\n return getObjectSummary(this);\n }\n\n static createEmpty() {\n return new FragmentedHandshake(\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 FragmentedHandshake(\n //@ts-ignore\n ...Object.values(decode(buf, FragmentedHandshake.spec))\n );\n }\n\n serialize() {\n const res = encode(this, FragmentedHandshake.spec).slice();\n return Buffer.from(res);\n }\n\n chunk(maxFragmentLength?: number): FragmentedHandshake[] {\n let start = 0;\n const totalLength = this.fragment.length;\n\n if (totalLength === 0)\n return [\n new FragmentedHandshake(\n this.msg_type,\n totalLength,\n this.message_seq,\n start,\n 0,\n this.fragment\n ),\n ];\n\n const fragments: FragmentedHandshake[] = [];\n if (!maxFragmentLength) {\n maxFragmentLength = 1280 - (20 + 8) - (1 + 3 + 2 + 3 + 3);\n }\n // loop through the message and fragment it\n while (start < totalLength) {\n // calculate maximum length, limited by MTU - IP/UDP headers - handshake overhead\n const fragmentLength = Math.min(maxFragmentLength, totalLength - start);\n // slice and dice\n const data = Buffer.from(\n this.fragment.slice(start, start + fragmentLength)\n );\n if (data.length <= 0) {\n // this shouldn't happen, but we don't want to introduce an infinite loop\n throw new Error(\n `Zero or less bytes processed while fragmenting handshake message.`\n );\n }\n // create the message\n fragments.push(\n new FragmentedHandshake(\n this.msg_type,\n totalLength,\n this.message_seq,\n start,\n data.length,\n data\n )\n );\n // step forward by the actual fragment length\n start += data.length;\n }\n\n return fragments;\n }\n\n static assemble(messages: FragmentedHandshake[]): FragmentedHandshake {\n // cannot reassemble empty arrays\n if (!(messages && messages.length)) {\n throw new Error(\"cannot reassemble handshake from empty array\");\n }\n\n // sort by fragment start\n messages = messages.sort((a, b) => a.fragment_offset - b.fragment_offset);\n // combine into a single buffer\n const combined = Buffer.alloc(messages[0].length);\n for (const msg of messages) {\n msg.fragment.copy(combined, msg.fragment_offset);\n }\n\n // and return the complete message\n return new FragmentedHandshake(\n messages[0].msg_type,\n messages[0].length,\n messages[0].message_seq,\n 0,\n combined.length,\n combined\n );\n }\n\n static findAllFragments(\n fragments: FragmentedHandshake[],\n type: HandshakeType\n ): FragmentedHandshake[] {\n const reference = fragments.find((v) => v.msg_type === type);\n if (!reference) return [];\n\n // ignore empty arrays\n if (!(fragments && fragments.length)) return [];\n\n // return all fragments with matching msg_type, message_seq and total length\n return fragments.filter((f) => {\n return (\n f.msg_type === reference.msg_type &&\n f.message_seq === reference.message_seq &&\n f.length === reference.length\n );\n });\n }\n}\n"]}
@@ -49,7 +49,6 @@ class DtlsPlaintextHeader {
49
49
  return Buffer.from(res);
50
50
  }
51
51
  }
52
- exports.DtlsPlaintextHeader = DtlsPlaintextHeader;
53
52
  Object.defineProperty(DtlsPlaintextHeader, "spec", {
54
53
  enumerable: true,
55
54
  configurable: true,
@@ -62,6 +61,7 @@ Object.defineProperty(DtlsPlaintextHeader, "spec", {
62
61
  contentLen: binary_data_1.types.uint16be,
63
62
  }
64
63
  });
64
+ exports.DtlsPlaintextHeader = DtlsPlaintextHeader;
65
65
  class MACHeader {
66
66
  constructor(epoch, sequenceNumber, contentType, protocolVersion, contentLen) {
67
67
  Object.defineProperty(this, "epoch", {
@@ -108,7 +108,6 @@ class MACHeader {
108
108
  return Buffer.from(res);
109
109
  }
110
110
  }
111
- exports.MACHeader = MACHeader;
112
111
  Object.defineProperty(MACHeader, "spec", {
113
112
  enumerable: true,
114
113
  configurable: true,
@@ -121,4 +120,5 @@ Object.defineProperty(MACHeader, "spec", {
121
120
  contentLen: binary_data_1.types.uint16be,
122
121
  }
123
122
  });
123
+ exports.MACHeader = MACHeader;
124
124
  //# sourceMappingURL=header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../../../../dtls/src/record/message/header.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAEpD,mDAAyD;AAEzD,MAAa,mBAAmB;IAS9B,YACS,WAAmB,EACnB,eAAiD,EACjD,KAAa,EACb,cAAsB,EACtB,UAAkB;;;;;mBAJlB;;;;;;mBACA;;;;;;mBACA;;;;;;mBACA;;;;;;mBACA;;IACN,CAAC;IAEJ,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,mBAAmB,CAC5B,SAAgB,EAChB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,CACjB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,IAAI,mBAAmB;QAC5B,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAA,oBAAM,EAAC,GAAG,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CACxD,CAAC;IACJ,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;;AArCH,kDAsCC;AArCQ;;;;WAAgB;QACrB,WAAW,EAAE,mBAAK,CAAC,KAAK;QACxB,eAAe,EAAE,wBAAe;QAChC,KAAK,EAAE,mBAAK,CAAC,QAAQ;QACrB,cAAc,EAAE,mBAAK,CAAC,QAAQ;QAC9B,UAAU,EAAE,mBAAK,CAAC,QAAQ;KAC3B;GAAC;AAiCJ,MAAa,SAAS;IASpB,YACS,KAAa,EACb,cAAsB,EACtB,WAAmB,EACnB,eAAiD,EACjD,UAAkB;;;;;mBAJlB;;;;;;mBACA;;;;;;mBACA;;;;;;mBACA;;;;;;mBACA;;IACN,CAAC;IAEJ,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,SAAS,CAClB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,CACjB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,IAAI,SAAS;QAClB,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAA,oBAAM,EAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAC9C,CAAC;IACJ,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;;AArCH,8BAsCC;AArCQ;;;;WAAgB;QACrB,KAAK,EAAE,mBAAK,CAAC,QAAQ;QACrB,cAAc,EAAE,mBAAK,CAAC,QAAQ;QAC9B,WAAW,EAAE,mBAAK,CAAC,KAAK;QACxB,eAAe,EAAE,wBAAe;QAChC,UAAU,EAAE,mBAAK,CAAC,QAAQ;KAC3B;GAAC","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { ProtocolVersion } from \"../../handshake/binary\";\n\nexport class DtlsPlaintextHeader {\n static readonly spec = {\n contentType: types.uint8,\n protocolVersion: ProtocolVersion,\n epoch: types.uint16be,\n sequenceNumber: types.uint48be,\n contentLen: types.uint16be,\n };\n\n constructor(\n public contentType: number,\n public protocolVersion: { major: number; minor: number },\n public epoch: number,\n public sequenceNumber: number,\n public contentLen: number\n ) {}\n\n static createEmpty() {\n return new DtlsPlaintextHeader(\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 DtlsPlaintextHeader(\n //@ts-ignore\n ...Object.values(decode(buf, DtlsPlaintextHeader.spec))\n );\n }\n\n serialize() {\n const res = encode(this, DtlsPlaintextHeader.spec).slice();\n return Buffer.from(res);\n }\n}\n\nexport class MACHeader {\n static readonly spec = {\n epoch: types.uint16be,\n sequenceNumber: types.uint48be,\n contentType: types.uint8,\n protocolVersion: ProtocolVersion,\n contentLen: types.uint16be,\n };\n\n constructor(\n public epoch: number,\n public sequenceNumber: number,\n public contentType: number,\n public protocolVersion: { major: number; minor: number },\n public contentLen: number\n ) {}\n\n static createEmpty() {\n return new MACHeader(\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 MACHeader(\n //@ts-ignore\n ...Object.values(decode(buf, MACHeader.spec))\n );\n }\n\n serialize() {\n const res = encode(this, MACHeader.spec).slice();\n return Buffer.from(res);\n }\n}\n"]}
1
+ {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../../../../dtls/src/record/message/header.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAEpD,mDAAyD;AAEzD,MAAa,mBAAmB;IAS9B,YACS,WAAmB,EACnB,eAAiD,EACjD,KAAa,EACb,cAAsB,EACtB,UAAkB;QAJzB;;;;mBAAO,WAAW;WAAQ;QAC1B;;;;mBAAO,eAAe;WAAkC;QACxD;;;;mBAAO,KAAK;WAAQ;QACpB;;;;mBAAO,cAAc;WAAQ;QAC7B;;;;mBAAO,UAAU;WAAQ;IACxB,CAAC;IAEJ,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,mBAAmB,CAC5B,SAAgB,EAChB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,CACjB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,IAAI,mBAAmB;QAC5B,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAA,oBAAM,EAAC,GAAG,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CACxD,CAAC;IACJ,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;;AApCe;;;;WAAO;QACrB,WAAW,EAAE,mBAAK,CAAC,KAAK;QACxB,eAAe,EAAE,wBAAe;QAChC,KAAK,EAAE,mBAAK,CAAC,QAAQ;QACrB,cAAc,EAAE,mBAAK,CAAC,QAAQ;QAC9B,UAAU,EAAE,mBAAK,CAAC,QAAQ;KAC3B;EANmB,CAMlB;AAPS,kDAAmB;AAwChC,MAAa,SAAS;IASpB,YACS,KAAa,EACb,cAAsB,EACtB,WAAmB,EACnB,eAAiD,EACjD,UAAkB;QAJzB;;;;mBAAO,KAAK;WAAQ;QACpB;;;;mBAAO,cAAc;WAAQ;QAC7B;;;;mBAAO,WAAW;WAAQ;QAC1B;;;;mBAAO,eAAe;WAAkC;QACxD;;;;mBAAO,UAAU;WAAQ;IACxB,CAAC;IAEJ,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,SAAS,CAClB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,EAChB,SAAgB,CACjB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,OAAO,IAAI,SAAS;QAClB,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAA,oBAAM,EAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAC9C,CAAC;IACJ,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;;AApCe;;;;WAAO;QACrB,KAAK,EAAE,mBAAK,CAAC,QAAQ;QACrB,cAAc,EAAE,mBAAK,CAAC,QAAQ;QAC9B,WAAW,EAAE,mBAAK,CAAC,KAAK;QACxB,eAAe,EAAE,wBAAe;QAChC,UAAU,EAAE,mBAAK,CAAC,QAAQ;KAC3B;EANmB,CAMlB;AAPS,8BAAS","sourcesContent":["import { decode, encode, types } from \"binary-data\";\n\nimport { ProtocolVersion } from \"../../handshake/binary\";\n\nexport class DtlsPlaintextHeader {\n static readonly spec = {\n contentType: types.uint8,\n protocolVersion: ProtocolVersion,\n epoch: types.uint16be,\n sequenceNumber: types.uint48be,\n contentLen: types.uint16be,\n };\n\n constructor(\n public contentType: number,\n public protocolVersion: { major: number; minor: number },\n public epoch: number,\n public sequenceNumber: number,\n public contentLen: number\n ) {}\n\n static createEmpty() {\n return new DtlsPlaintextHeader(\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 DtlsPlaintextHeader(\n //@ts-ignore\n ...Object.values(decode(buf, DtlsPlaintextHeader.spec))\n );\n }\n\n serialize() {\n const res = encode(this, DtlsPlaintextHeader.spec).slice();\n return Buffer.from(res);\n }\n}\n\nexport class MACHeader {\n static readonly spec = {\n epoch: types.uint16be,\n sequenceNumber: types.uint48be,\n contentType: types.uint8,\n protocolVersion: ProtocolVersion,\n contentLen: types.uint16be,\n };\n\n constructor(\n public epoch: number,\n public sequenceNumber: number,\n public contentType: number,\n public protocolVersion: { major: number; minor: number },\n public contentLen: number\n ) {}\n\n static createEmpty() {\n return new MACHeader(\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 MACHeader(\n //@ts-ignore\n ...Object.values(decode(buf, MACHeader.spec))\n );\n }\n\n serialize() {\n const res = encode(this, MACHeader.spec).slice();\n return Buffer.from(res);\n }\n}\n"]}
@@ -43,7 +43,6 @@ class DtlsPlaintext {
43
43
  return new header_1.MACHeader(this.recordLayerHeader.epoch, this.recordLayerHeader.sequenceNumber, this.recordLayerHeader.contentType, this.recordLayerHeader.protocolVersion, this.recordLayerHeader.contentLen).serialize();
44
44
  }
45
45
  }
46
- exports.DtlsPlaintext = DtlsPlaintext;
47
46
  Object.defineProperty(DtlsPlaintext, "spec", {
48
47
  enumerable: true,
49
48
  configurable: true,
@@ -53,4 +52,5 @@ Object.defineProperty(DtlsPlaintext, "spec", {
53
52
  fragment: binary_data_1.types.buffer((context) => context.current.recordLayerHeader.contentLen),
54
53
  }
55
54
  });
55
+ exports.DtlsPlaintext = DtlsPlaintext;
56
56
  //# sourceMappingURL=plaintext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plaintext.js","sourceRoot":"","sources":["../../../../../../dtls/src/record/message/plaintext.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,6CAAoD;AAEpD,yCAA0C;AAC1C,qCAA0D;AAE1D,MAAa,aAAa;IAQxB,YACS,iBAA8D,EAC9D,QAAgB;;;;;mBADhB;;;;;;mBACA;;IACN,CAAC;IAEJ,IAAI,OAAO;QACT,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,iBAAiB;YAC9B,QAAQ,EAAE,IAAA,mBAAU,EAAC,IAAI,CAAC,QAAQ,CAAC;SACpC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,aAAa,CAAC,SAAgB,EAAE,SAAgB,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,MAAM,CAAC,GAAG,IAAI,aAAa;QACzB,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAA,oBAAM,EAAC,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAClD,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACrD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,kBAAS,CAClB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAC5B,IAAI,CAAC,iBAAiB,CAAC,cAAc,EACrC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAClC,IAAI,CAAC,iBAAiB,CAAC,eAAe,EACtC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAClC,CAAC,SAAS,EAAE,CAAC;IAChB,CAAC;;AA7CH,sCA8CC;AA7CQ;;;;WAAgB;QACrB,iBAAiB,EAAE,4BAAmB,CAAC,IAAI;QAC3C,QAAQ,EAAE,mBAAK,CAAC,MAAM,CACpB,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAC/D;KACF;GAAC","sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { decode, encode, types } from \"binary-data\";\n\nimport { dumpBuffer } from \"../../helper\";\nimport { DtlsPlaintextHeader, MACHeader } from \"./header\";\n\nexport class DtlsPlaintext {\n static readonly spec = {\n recordLayerHeader: DtlsPlaintextHeader.spec,\n fragment: types.buffer(\n (context: any) => context.current.recordLayerHeader.contentLen\n ),\n };\n\n constructor(\n public recordLayerHeader: typeof DtlsPlaintext.spec.recordLayerHeader,\n public fragment: Buffer\n ) {}\n\n get summary() {\n return {\n header: this.recordLayerHeader,\n fragment: dumpBuffer(this.fragment),\n };\n }\n\n static createEmpty() {\n return new DtlsPlaintext(undefined as any, undefined as any);\n }\n\n static deSerialize(buf: Buffer) {\n const r = new DtlsPlaintext(\n //@ts-ignore\n ...Object.values(decode(buf, DtlsPlaintext.spec))\n );\n return r;\n }\n\n serialize() {\n const res = encode(this, DtlsPlaintext.spec).slice();\n return Buffer.from(res);\n }\n\n computeMACHeader() {\n return new MACHeader(\n this.recordLayerHeader.epoch,\n this.recordLayerHeader.sequenceNumber,\n this.recordLayerHeader.contentType,\n this.recordLayerHeader.protocolVersion,\n this.recordLayerHeader.contentLen\n ).serialize();\n }\n}\n"]}
1
+ {"version":3,"file":"plaintext.js","sourceRoot":"","sources":["../../../../../../dtls/src/record/message/plaintext.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,6CAAoD;AAEpD,yCAA0C;AAC1C,qCAA0D;AAE1D,MAAa,aAAa;IAQxB,YACS,iBAA8D,EAC9D,QAAgB;QADvB;;;;mBAAO,iBAAiB;WAA6C;QACrE;;;;mBAAO,QAAQ;WAAQ;IACtB,CAAC;IAEJ,IAAI,OAAO;QACT,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,iBAAiB;YAC9B,QAAQ,EAAE,IAAA,mBAAU,EAAC,IAAI,CAAC,QAAQ,CAAC;SACpC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,aAAa,CAAC,SAAgB,EAAE,SAAgB,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,MAAM,CAAC,GAAG,IAAI,aAAa;QACzB,YAAY;QACZ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAA,oBAAM,EAAC,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAClD,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACrD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,kBAAS,CAClB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAC5B,IAAI,CAAC,iBAAiB,CAAC,cAAc,EACrC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAClC,IAAI,CAAC,iBAAiB,CAAC,eAAe,EACtC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAClC,CAAC,SAAS,EAAE,CAAC;IAChB,CAAC;;AA5Ce;;;;WAAO;QACrB,iBAAiB,EAAE,4BAAmB,CAAC,IAAI;QAC3C,QAAQ,EAAE,mBAAK,CAAC,MAAM,CACpB,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAC/D;KACF;EALmB,CAKlB;AANS,sCAAa","sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { decode, encode, types } from \"binary-data\";\n\nimport { dumpBuffer } from \"../../helper\";\nimport { DtlsPlaintextHeader, MACHeader } from \"./header\";\n\nexport class DtlsPlaintext {\n static readonly spec = {\n recordLayerHeader: DtlsPlaintextHeader.spec,\n fragment: types.buffer(\n (context: any) => context.current.recordLayerHeader.contentLen\n ),\n };\n\n constructor(\n public recordLayerHeader: typeof DtlsPlaintext.spec.recordLayerHeader,\n public fragment: Buffer\n ) {}\n\n get summary() {\n return {\n header: this.recordLayerHeader,\n fragment: dumpBuffer(this.fragment),\n };\n }\n\n static createEmpty() {\n return new DtlsPlaintext(undefined as any, undefined as any);\n }\n\n static deSerialize(buf: Buffer) {\n const r = new DtlsPlaintext(\n //@ts-ignore\n ...Object.values(decode(buf, DtlsPlaintext.spec))\n );\n return r;\n }\n\n serialize() {\n const res = encode(this, DtlsPlaintext.spec).slice();\n return Buffer.from(res);\n }\n\n computeMACHeader() {\n return new MACHeader(\n this.recordLayerHeader.epoch,\n this.recordLayerHeader.sequenceNumber,\n this.recordLayerHeader.contentType,\n this.recordLayerHeader.protocolVersion,\n this.recordLayerHeader.contentLen\n ).serialize();\n }\n}\n"]}