werift 0.17.6 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/common/src/binary.d.ts +1 -0
- package/lib/common/src/binary.js +74 -21
- package/lib/common/src/binary.js.map +1 -1
- package/lib/common/src/log.js +18 -0
- package/lib/common/src/log.js.map +1 -1
- package/lib/common/src/network.d.ts +1 -1
- package/lib/common/src/network.js +1 -0
- package/lib/common/src/network.js.map +1 -1
- package/lib/common/src/promise.js +22 -7
- package/lib/common/src/promise.js.map +1 -1
- package/lib/common/src/type.d.ts +1 -1
- package/lib/dtls/src/cipher/const.d.ts +7 -7
- package/lib/dtls/src/cipher/key-exchange.js +24 -1
- package/lib/dtls/src/cipher/key-exchange.js.map +1 -1
- package/lib/dtls/src/cipher/suites/abstract.d.ts +2 -2
- package/lib/dtls/src/cipher/suites/abstract.js +36 -2
- package/lib/dtls/src/cipher/suites/abstract.js.map +1 -1
- package/lib/dtls/src/cipher/suites/aead.js +60 -6
- package/lib/dtls/src/cipher/suites/aead.js.map +1 -1
- package/lib/dtls/src/client.js +62 -51
- package/lib/dtls/src/client.js.map +1 -1
- package/lib/dtls/src/context/cipher.js +151 -59
- package/lib/dtls/src/context/cipher.js.map +1 -1
- package/lib/dtls/src/context/dtls.js +90 -14
- package/lib/dtls/src/context/dtls.js.map +1 -1
- package/lib/dtls/src/context/srtp.d.ts +1 -1
- package/lib/dtls/src/context/srtp.js +8 -0
- package/lib/dtls/src/context/srtp.js.map +1 -1
- package/lib/dtls/src/context/transport.js +14 -2
- package/lib/dtls/src/context/transport.js.map +1 -1
- package/lib/dtls/src/flight/client/flight1.js +6 -1
- package/lib/dtls/src/flight/client/flight1.js.map +1 -1
- package/lib/dtls/src/flight/client/flight5.js +12 -2
- package/lib/dtls/src/flight/client/flight5.js.map +1 -1
- package/lib/dtls/src/flight/flight.d.ts +1 -1
- package/lib/dtls/src/flight/flight.js +42 -7
- package/lib/dtls/src/flight/flight.js.map +1 -1
- package/lib/dtls/src/flight/server/flight2.js +4 -2
- package/lib/dtls/src/flight/server/flight2.js.map +1 -1
- package/lib/dtls/src/flight/server/flight4.js +12 -2
- package/lib/dtls/src/flight/server/flight4.js.map +1 -1
- package/lib/dtls/src/flight/server/flight6.js +6 -1
- package/lib/dtls/src/flight/server/flight6.js.map +1 -1
- package/lib/dtls/src/handshake/extensions/ellipticCurves.js +27 -7
- package/lib/dtls/src/handshake/extensions/ellipticCurves.js.map +1 -1
- package/lib/dtls/src/handshake/extensions/extendedMasterSecret.js +6 -1
- package/lib/dtls/src/handshake/extensions/extendedMasterSecret.js.map +1 -1
- package/lib/dtls/src/handshake/extensions/renegotiationIndication.js +27 -7
- package/lib/dtls/src/handshake/extensions/renegotiationIndication.js.map +1 -1
- package/lib/dtls/src/handshake/extensions/signature.js +27 -7
- package/lib/dtls/src/handshake/extensions/signature.js.map +1 -1
- package/lib/dtls/src/handshake/extensions/useSrtp.js +39 -9
- package/lib/dtls/src/handshake/extensions/useSrtp.js.map +1 -1
- package/lib/dtls/src/handshake/message/alert.js +21 -6
- package/lib/dtls/src/handshake/message/alert.js.map +1 -1
- package/lib/dtls/src/handshake/message/certificate.js +26 -5
- package/lib/dtls/src/handshake/message/certificate.js.map +1 -1
- package/lib/dtls/src/handshake/message/changeCipherSpec.js +14 -4
- package/lib/dtls/src/handshake/message/changeCipherSpec.js.map +1 -1
- package/lib/dtls/src/handshake/message/client/certificateVerify.js +33 -7
- package/lib/dtls/src/handshake/message/client/certificateVerify.js.map +1 -1
- package/lib/dtls/src/handshake/message/client/hello.js +68 -18
- package/lib/dtls/src/handshake/message/client/hello.js.map +1 -1
- package/lib/dtls/src/handshake/message/client/keyExchange.js +26 -5
- package/lib/dtls/src/handshake/message/client/keyExchange.js.map +1 -1
- package/lib/dtls/src/handshake/message/finished.js +18 -2
- package/lib/dtls/src/handshake/message/finished.js.map +1 -1
- package/lib/dtls/src/handshake/message/server/certificateRequest.js +40 -9
- package/lib/dtls/src/handshake/message/server/certificateRequest.js.map +1 -1
- package/lib/dtls/src/handshake/message/server/hello.js +60 -14
- package/lib/dtls/src/handshake/message/server/hello.js.map +1 -1
- package/lib/dtls/src/handshake/message/server/helloDone.js +18 -2
- package/lib/dtls/src/handshake/message/server/helloDone.js.map +1 -1
- package/lib/dtls/src/handshake/message/server/helloVerifyRequest.js +33 -7
- package/lib/dtls/src/handshake/message/server/helloVerifyRequest.js.map +1 -1
- package/lib/dtls/src/handshake/message/server/keyExchange.js +75 -19
- package/lib/dtls/src/handshake/message/server/keyExchange.js.map +1 -1
- package/lib/dtls/src/handshake/random.js +21 -6
- package/lib/dtls/src/handshake/random.js.map +1 -1
- package/lib/dtls/src/record/builder.d.ts +1 -1
- package/lib/dtls/src/record/message/fragment.js +49 -14
- package/lib/dtls/src/record/message/fragment.js.map +1 -1
- package/lib/dtls/src/record/message/header.js +84 -24
- package/lib/dtls/src/record/message/header.js.map +1 -1
- package/lib/dtls/src/record/message/plaintext.js +21 -6
- package/lib/dtls/src/record/message/plaintext.js.map +1 -1
- package/lib/dtls/src/server.js +59 -42
- package/lib/dtls/src/server.js.map +1 -1
- package/lib/dtls/src/socket.js +153 -64
- package/lib/dtls/src/socket.js.map +1 -1
- package/lib/dtls/src/transport.js +38 -11
- package/lib/dtls/src/transport.js.map +1 -1
- package/lib/dtls/src/typings/domain.d.ts +4 -4
- package/lib/ice/src/candidate.js +66 -11
- package/lib/ice/src/candidate.js.map +1 -1
- package/lib/ice/src/dns/lookup.js +12 -1
- package/lib/ice/src/dns/lookup.js.map +1 -1
- package/lib/ice/src/exceptions.js +27 -2
- package/lib/ice/src/exceptions.js.map +1 -1
- package/lib/ice/src/helper.d.ts +1 -1
- package/lib/ice/src/helper.js +12 -2
- package/lib/ice/src/helper.js.map +1 -1
- package/lib/ice/src/ice.d.ts +9 -3
- package/lib/ice/src/ice.js +407 -155
- package/lib/ice/src/ice.js.map +1 -1
- package/lib/ice/src/stun/attributes.d.ts +3 -3
- package/lib/ice/src/stun/attributes.js +6 -1
- package/lib/ice/src/stun/attributes.js.map +1 -1
- package/lib/ice/src/stun/message.d.ts +4 -0
- package/lib/ice/src/stun/message.js +24 -3
- package/lib/ice/src/stun/message.js.map +1 -1
- package/lib/ice/src/stun/protocol.js +64 -15
- package/lib/ice/src/stun/protocol.js.map +1 -1
- package/lib/ice/src/stun/transaction.js +99 -36
- package/lib/ice/src/stun/transaction.js.map +1 -1
- package/lib/ice/src/transport.js +57 -21
- package/lib/ice/src/transport.js.map +1 -1
- package/lib/ice/src/turn/protocol.js +176 -40
- package/lib/ice/src/turn/protocol.js.map +1 -1
- package/lib/ice/src/types/model.d.ts +1 -1
- package/lib/rtp/src/codec/av1.d.ts +1 -1
- package/lib/rtp/src/codec/av1.js +118 -30
- package/lib/rtp/src/codec/av1.js.map +1 -1
- package/lib/rtp/src/codec/base.js +8 -0
- package/lib/rtp/src/codec/base.js.map +1 -1
- package/lib/rtp/src/codec/h264.js +55 -0
- package/lib/rtp/src/codec/h264.js.map +1 -1
- package/lib/rtp/src/codec/index.d.ts +2 -0
- package/lib/rtp/src/codec/index.js +12 -2
- package/lib/rtp/src/codec/index.js.map +1 -1
- package/lib/rtp/src/codec/opus.js +8 -0
- package/lib/rtp/src/codec/opus.js.map +1 -1
- package/lib/rtp/src/codec/vp8.js +102 -3
- package/lib/rtp/src/codec/vp8.js.map +1 -1
- package/lib/rtp/src/codec/vp9.js +164 -7
- package/lib/rtp/src/codec/vp9.js.map +1 -1
- package/lib/rtp/src/container/ebml/ebml.js +30 -3
- package/lib/rtp/src/container/ebml/ebml.js.map +1 -1
- package/lib/rtp/src/container/webm.d.ts +1 -1
- package/lib/rtp/src/container/webm.js +44 -13
- package/lib/rtp/src/container/webm.js.map +1 -1
- package/lib/rtp/src/processor/depacketizer.d.ts +16 -8
- package/lib/rtp/src/processor/depacketizer.js +59 -22
- package/lib/rtp/src/processor/depacketizer.js.map +1 -1
- package/lib/rtp/src/processor/depacketizerCallback.js +24 -8
- package/lib/rtp/src/processor/depacketizerCallback.js.map +1 -1
- package/lib/rtp/src/processor/depacketizerTransformer.d.ts +2 -2
- package/lib/rtp/src/processor/depacketizerTransformer.js +6 -0
- package/lib/rtp/src/processor/depacketizerTransformer.js.map +1 -1
- package/lib/rtp/src/processor/index.d.ts +4 -2
- package/lib/rtp/src/processor/index.js +4 -2
- package/lib/rtp/src/processor/index.js.map +1 -1
- package/lib/rtp/src/processor/interface.d.ts +4 -0
- package/lib/rtp/src/processor/interface.js.map +1 -1
- package/lib/rtp/src/processor/jitterBuffer.d.ts +2 -1
- package/lib/rtp/src/processor/jitterBuffer.js +40 -8
- package/lib/rtp/src/processor/jitterBuffer.js.map +1 -1
- package/lib/rtp/src/processor/jitterBufferCallback.js +30 -9
- package/lib/rtp/src/processor/jitterBufferCallback.js.map +1 -1
- package/lib/rtp/src/processor/jitterBufferTransformer.js +12 -1
- package/lib/rtp/src/processor/jitterBufferTransformer.js.map +1 -1
- package/lib/rtp/src/processor/lipsync.d.ts +42 -0
- package/lib/rtp/src/processor/lipsync.js +178 -0
- package/lib/rtp/src/processor/lipsync.js.map +1 -0
- package/lib/rtp/src/processor/lipsyncCallback.d.ts +10 -0
- package/lib/rtp/src/processor/lipsyncCallback.js +59 -0
- package/lib/rtp/src/processor/lipsyncCallback.js.map +1 -0
- package/lib/rtp/src/processor/ntpTime.d.ts +24 -0
- package/lib/rtp/src/processor/ntpTime.js +91 -0
- package/lib/rtp/src/processor/ntpTime.js.map +1 -0
- package/lib/rtp/src/processor/ntpTimeCallback.d.ts +7 -0
- package/lib/rtp/src/processor/ntpTimeCallback.js +36 -0
- package/lib/rtp/src/processor/ntpTimeCallback.js.map +1 -0
- package/lib/rtp/src/processor/source/index.d.ts +1 -0
- package/lib/rtp/src/processor/source/index.js +1 -0
- package/lib/rtp/src/processor/source/index.js.map +1 -1
- package/lib/rtp/src/processor/source/rtcpCallback.d.ts +12 -0
- package/lib/rtp/src/processor/source/rtcpCallback.js +33 -0
- package/lib/rtp/src/processor/source/rtcpCallback.js.map +1 -0
- package/lib/rtp/src/processor/source/rtpCallback.js +28 -12
- package/lib/rtp/src/processor/source/rtpCallback.js.map +1 -1
- package/lib/rtp/src/processor/source/rtpStream.js +38 -10
- package/lib/rtp/src/processor/source/rtpStream.js.map +1 -1
- package/lib/rtp/src/processor/webm.d.ts +11 -4
- package/lib/rtp/src/processor/webm.js +169 -46
- package/lib/rtp/src/processor/webm.js.map +1 -1
- package/lib/rtp/src/processor/webmCallback.d.ts +5 -3
- package/lib/rtp/src/processor/webmCallback.js +52 -8
- package/lib/rtp/src/processor/webmCallback.js.map +1 -1
- package/lib/rtp/src/processor/webmStream.d.ts +2 -2
- package/lib/rtp/src/processor/webmStream.js +24 -0
- package/lib/rtp/src/processor/webmStream.js.map +1 -1
- package/lib/rtp/src/processor_old/base.d.ts +18 -0
- package/lib/rtp/src/processor_old/base.js +51 -0
- package/lib/rtp/src/processor_old/base.js.map +1 -0
- package/lib/rtp/src/processor_old/lipsync.d.ts +30 -0
- package/lib/rtp/src/processor_old/lipsync.js +119 -0
- package/lib/rtp/src/processor_old/lipsync.js.map +1 -0
- package/lib/rtp/src/rtcp/header.js +30 -5
- package/lib/rtp/src/rtcp/header.js.map +1 -1
- package/lib/rtp/src/rtcp/psfb/fullIntraRequest.d.ts +1 -1
- package/lib/rtp/src/rtcp/psfb/fullIntraRequest.js +30 -3
- package/lib/rtp/src/rtcp/psfb/fullIntraRequest.js.map +1 -1
- package/lib/rtp/src/rtcp/psfb/index.d.ts +1 -1
- package/lib/rtp/src/rtcp/psfb/index.js +18 -2
- package/lib/rtp/src/rtcp/psfb/index.js.map +1 -1
- package/lib/rtp/src/rtcp/psfb/pictureLossIndication.js +30 -3
- package/lib/rtp/src/rtcp/psfb/pictureLossIndication.js.map +1 -1
- package/lib/rtp/src/rtcp/psfb/remb.js +66 -5
- package/lib/rtp/src/rtcp/psfb/remb.js.map +1 -1
- package/lib/rtp/src/rtcp/rr.js +68 -4
- package/lib/rtp/src/rtcp/rr.js.map +1 -1
- package/lib/rtp/src/rtcp/rtcp.d.ts +1 -1
- package/lib/rtp/src/rtcp/rtpfb/index.d.ts +1 -1
- package/lib/rtp/src/rtcp/rtpfb/index.js +24 -2
- package/lib/rtp/src/rtcp/rtpfb/index.js.map +1 -1
- package/lib/rtp/src/rtcp/rtpfb/nack.d.ts +5 -0
- package/lib/rtp/src/rtcp/rtpfb/nack.js +43 -3
- package/lib/rtp/src/rtcp/rtpfb/nack.js.map +1 -1
- package/lib/rtp/src/rtcp/rtpfb/twcc.js +154 -11
- package/lib/rtp/src/rtcp/rtpfb/twcc.js.map +1 -1
- package/lib/rtp/src/rtcp/sdes.js +42 -4
- package/lib/rtp/src/rtcp/sdes.js.map +1 -1
- package/lib/rtp/src/rtcp/sr.js +56 -5
- package/lib/rtp/src/rtcp/sr.js.map +1 -1
- package/lib/rtp/src/rtp/red/encoder.js +18 -3
- package/lib/rtp/src/rtp/red/encoder.js.map +1 -1
- package/lib/rtp/src/rtp/red/handler.js +12 -2
- package/lib/rtp/src/rtp/red/handler.js.map +1 -1
- package/lib/rtp/src/rtp/red/packet.js +18 -2
- package/lib/rtp/src/rtp/red/packet.js.map +1 -1
- package/lib/rtp/src/rtp/rtp.d.ts +3 -3
- package/lib/rtp/src/rtp/rtp.js +104 -17
- package/lib/rtp/src/rtp/rtp.js.map +1 -1
- package/lib/rtp/src/srtp/cipher/ctr.js +26 -10
- package/lib/rtp/src/srtp/cipher/ctr.js.map +1 -1
- package/lib/rtp/src/srtp/cipher/gcm.d.ts +3 -0
- package/lib/rtp/src/srtp/cipher/gcm.js +40 -20
- package/lib/rtp/src/srtp/cipher/gcm.js.map +1 -1
- package/lib/rtp/src/srtp/cipher/index.js +24 -4
- package/lib/rtp/src/srtp/cipher/index.js.map +1 -1
- package/lib/rtp/src/srtp/const.d.ts +1 -1
- package/lib/rtp/src/srtp/context/context.d.ts +1 -1
- package/lib/rtp/src/srtp/context/context.js +84 -5
- package/lib/rtp/src/srtp/context/context.js.map +1 -1
- package/lib/rtp/src/srtp/session.d.ts +2 -2
- package/lib/rtp/src/srtp/session.js +24 -1
- package/lib/rtp/src/srtp/session.js.map +1 -1
- package/lib/rtp/src/srtp/srtcp.js +15 -5
- package/lib/rtp/src/srtp/srtcp.js.map +1 -1
- package/lib/rtp/src/srtp/srtp.js +15 -5
- package/lib/rtp/src/srtp/srtp.js.map +1 -1
- package/lib/sctp/src/chunk.js +349 -69
- package/lib/sctp/src/chunk.js.map +1 -1
- package/lib/sctp/src/helper.d.ts +1 -1
- package/lib/sctp/src/param.d.ts +3 -3
- package/lib/sctp/src/param.js +66 -11
- package/lib/sctp/src/param.js.map +1 -1
- package/lib/sctp/src/sctp.d.ts +1 -1
- package/lib/sctp/src/sctp.js +479 -138
- package/lib/sctp/src/sctp.js.map +1 -1
- package/lib/sctp/src/transport.js +31 -10
- package/lib/sctp/src/transport.js.map +1 -1
- package/lib/webrtc/src/dataChannel.d.ts +1 -1
- package/lib/webrtc/src/dataChannel.js +145 -15
- package/lib/webrtc/src/dataChannel.js.map +1 -1
- package/lib/webrtc/src/helper.js +37 -12
- package/lib/webrtc/src/helper.js.map +1 -1
- package/lib/webrtc/src/media/parameters.d.ts +1 -1
- package/lib/webrtc/src/media/parameters.js +124 -3
- package/lib/webrtc/src/media/parameters.js.map +1 -1
- package/lib/webrtc/src/media/receiver/nack.d.ts +4 -4
- package/lib/webrtc/src/media/receiver/nack.js +85 -33
- package/lib/webrtc/src/media/receiver/nack.js.map +1 -1
- package/lib/webrtc/src/media/receiver/receiverTwcc.d.ts +1 -1
- package/lib/webrtc/src/media/receiver/receiverTwcc.js +42 -6
- package/lib/webrtc/src/media/receiver/receiverTwcc.js.map +1 -1
- package/lib/webrtc/src/media/receiver/statistics.js +61 -5
- package/lib/webrtc/src/media/receiver/statistics.js.map +1 -1
- package/lib/webrtc/src/media/router.d.ts +1 -1
- package/lib/webrtc/src/media/router.js +108 -83
- package/lib/webrtc/src/media/router.js.map +1 -1
- package/lib/webrtc/src/media/rtpReceiver.js +188 -33
- package/lib/webrtc/src/media/rtpReceiver.js.map +1 -1
- package/lib/webrtc/src/media/rtpSender.js +279 -42
- package/lib/webrtc/src/media/rtpSender.js.map +1 -1
- package/lib/webrtc/src/media/rtpTransceiver.d.ts +2 -2
- package/lib/webrtc/src/media/rtpTransceiver.js +102 -18
- package/lib/webrtc/src/media/rtpTransceiver.js.map +1 -1
- package/lib/webrtc/src/media/sender/cumulativeResult.js +36 -6
- package/lib/webrtc/src/media/sender/cumulativeResult.js.map +1 -1
- package/lib/webrtc/src/media/sender/senderBWE.js +57 -12
- package/lib/webrtc/src/media/sender/senderBWE.js.map +1 -1
- package/lib/webrtc/src/media/track.js +135 -24
- package/lib/webrtc/src/media/track.js.map +1 -1
- package/lib/webrtc/src/nonstandard/recorder/index.d.ts +7 -4
- package/lib/webrtc/src/nonstandard/recorder/index.js +50 -6
- package/lib/webrtc/src/nonstandard/recorder/index.js.map +1 -1
- package/lib/webrtc/src/nonstandard/recorder/writer/index.js +12 -2
- package/lib/webrtc/src/nonstandard/recorder/writer/index.js.map +1 -1
- package/lib/webrtc/src/nonstandard/recorder/writer/webm.d.ts +2 -2
- package/lib/webrtc/src/nonstandard/recorder/writer/webm.js +39 -35
- package/lib/webrtc/src/nonstandard/recorder/writer/webm.js.map +1 -1
- package/lib/webrtc/src/nonstandard/userMedia.js +158 -56
- package/lib/webrtc/src/nonstandard/userMedia.js.map +1 -1
- package/lib/webrtc/src/peerConnection.d.ts +2 -2
- package/lib/webrtc/src/peerConnection.js +260 -58
- package/lib/webrtc/src/peerConnection.js.map +1 -1
- package/lib/webrtc/src/sdp.js +287 -24
- package/lib/webrtc/src/sdp.js.map +1 -1
- package/lib/webrtc/src/transport/dtls.d.ts +3 -3
- package/lib/webrtc/src/transport/dtls.js +185 -30
- package/lib/webrtc/src/transport/dtls.js.map +1 -1
- package/lib/webrtc/src/transport/ice.d.ts +2 -2
- package/lib/webrtc/src/transport/ice.js +193 -25
- package/lib/webrtc/src/transport/ice.js.map +1 -1
- package/lib/webrtc/src/transport/sctp.js +193 -101
- package/lib/webrtc/src/transport/sctp.js.map +1 -1
- package/lib/webrtc/src/types/domain.d.ts +3 -3
- package/lib/webrtc/src/types/util.d.ts +2 -2
- package/lib/webrtc/src/utils.js +12 -2
- package/lib/webrtc/src/utils.js.map +1 -1
- package/package.json +15 -15
- package/src/dataChannel.ts +3 -1
- package/src/media/receiver/nack.ts +23 -19
- package/src/media/rtpReceiver.ts +5 -0
- package/src/media/rtpSender.ts +22 -19
- package/src/nonstandard/recorder/index.ts +12 -4
- package/src/nonstandard/recorder/writer/webm.ts +42 -50
- package/src/transport/dtls.ts +7 -3
- package/src/transport/ice.ts +6 -3
- package/src/transport/sctp.ts +3 -1
- package/lib/rtp/src/processor/avBuffer.d.ts +0 -36
- package/lib/rtp/src/processor/avBuffer.js +0 -107
- package/lib/rtp/src/processor/avBuffer.js.map +0 -1
- package/lib/rtp/src/processor/avBufferCallback.d.ts +0 -10
- package/lib/rtp/src/processor/avBufferCallback.js +0 -27
- package/lib/rtp/src/processor/avBufferCallback.js.map +0 -1
|
@@ -8,10 +8,36 @@ const const_1 = require("../../const");
|
|
|
8
8
|
// 7.4.4. Certificate Request
|
|
9
9
|
class ServerCertificateRequest {
|
|
10
10
|
constructor(certificateTypes, signatures, authorities) {
|
|
11
|
-
this
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
Object.defineProperty(this, "certificateTypes", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
configurable: true,
|
|
14
|
+
writable: true,
|
|
15
|
+
value: certificateTypes
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(this, "signatures", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
configurable: true,
|
|
20
|
+
writable: true,
|
|
21
|
+
value: signatures
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(this, "authorities", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
configurable: true,
|
|
26
|
+
writable: true,
|
|
27
|
+
value: authorities
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(this, "msgType", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
configurable: true,
|
|
32
|
+
writable: true,
|
|
33
|
+
value: const_1.HandshakeType.certificate_request_13
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(this, "messageSeq", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
configurable: true,
|
|
38
|
+
writable: true,
|
|
39
|
+
value: void 0
|
|
40
|
+
});
|
|
15
41
|
}
|
|
16
42
|
static createEmpty() {
|
|
17
43
|
return new ServerCertificateRequest(undefined, undefined, undefined);
|
|
@@ -31,9 +57,14 @@ class ServerCertificateRequest {
|
|
|
31
57
|
}
|
|
32
58
|
}
|
|
33
59
|
exports.ServerCertificateRequest = ServerCertificateRequest;
|
|
34
|
-
ServerCertificateRequest
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
60
|
+
Object.defineProperty(ServerCertificateRequest, "spec", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
configurable: true,
|
|
63
|
+
writable: true,
|
|
64
|
+
value: {
|
|
65
|
+
certificateTypes: binary_data_1.types.array(binary_1.ClientCertificateType, binary_data_1.types.uint8, "bytes"),
|
|
66
|
+
signatures: binary_data_1.types.array(binary_1.SignatureHashAlgorithm, binary_data_1.types.uint16be, "bytes"),
|
|
67
|
+
authorities: binary_data_1.types.array(binary_1.DistinguishedName, binary_data_1.types.uint16be, "bytes"),
|
|
68
|
+
}
|
|
69
|
+
});
|
|
39
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
|
|
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"]}
|
|
@@ -9,13 +9,54 @@ const random_1 = require("../../random");
|
|
|
9
9
|
// 7.4.1.3. Server Hello
|
|
10
10
|
class ServerHello {
|
|
11
11
|
constructor(serverVersion, random, sessionId, cipherSuite, compressionMethod, extensions) {
|
|
12
|
-
this
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
this
|
|
12
|
+
Object.defineProperty(this, "serverVersion", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
configurable: true,
|
|
15
|
+
writable: true,
|
|
16
|
+
value: serverVersion
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(this, "random", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
configurable: true,
|
|
21
|
+
writable: true,
|
|
22
|
+
value: random
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(this, "sessionId", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
configurable: true,
|
|
27
|
+
writable: true,
|
|
28
|
+
value: sessionId
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(this, "cipherSuite", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
configurable: true,
|
|
33
|
+
writable: true,
|
|
34
|
+
value: cipherSuite
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(this, "compressionMethod", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
configurable: true,
|
|
39
|
+
writable: true,
|
|
40
|
+
value: compressionMethod
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(this, "extensions", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
configurable: true,
|
|
45
|
+
writable: true,
|
|
46
|
+
value: extensions
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(this, "msgType", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
configurable: true,
|
|
51
|
+
writable: true,
|
|
52
|
+
value: const_1.HandshakeType.server_hello_2
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(this, "messageSeq", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
configurable: true,
|
|
57
|
+
writable: true,
|
|
58
|
+
value: void 0
|
|
59
|
+
});
|
|
19
60
|
}
|
|
20
61
|
static createEmpty() {
|
|
21
62
|
return new ServerHello(undefined, undefined, undefined, undefined, undefined, undefined);
|
|
@@ -48,11 +89,16 @@ class ServerHello {
|
|
|
48
89
|
}
|
|
49
90
|
}
|
|
50
91
|
exports.ServerHello = ServerHello;
|
|
51
|
-
ServerHello
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
92
|
+
Object.defineProperty(ServerHello, "spec", {
|
|
93
|
+
enumerable: true,
|
|
94
|
+
configurable: true,
|
|
95
|
+
writable: true,
|
|
96
|
+
value: {
|
|
97
|
+
serverVersion: binary_1.ProtocolVersion,
|
|
98
|
+
random: random_1.DtlsRandom.spec,
|
|
99
|
+
sessionId: binary_data_1.types.buffer(binary_data_1.types.uint8),
|
|
100
|
+
cipherSuite: binary_data_1.types.uint16be,
|
|
101
|
+
compressionMethod: binary_data_1.types.uint8,
|
|
102
|
+
}
|
|
103
|
+
});
|
|
58
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
|
|
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"]}
|
|
@@ -7,7 +7,18 @@ const const_1 = require("../../const");
|
|
|
7
7
|
// 7.4.5. Server Hello Done
|
|
8
8
|
class ServerHelloDone {
|
|
9
9
|
constructor() {
|
|
10
|
-
this
|
|
10
|
+
Object.defineProperty(this, "msgType", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
configurable: true,
|
|
13
|
+
writable: true,
|
|
14
|
+
value: const_1.HandshakeType.server_hello_done_14
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(this, "messageSeq", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
configurable: true,
|
|
19
|
+
writable: true,
|
|
20
|
+
value: void 0
|
|
21
|
+
});
|
|
11
22
|
}
|
|
12
23
|
static createEmpty() {
|
|
13
24
|
return new ServerHelloDone();
|
|
@@ -27,5 +38,10 @@ class ServerHelloDone {
|
|
|
27
38
|
}
|
|
28
39
|
}
|
|
29
40
|
exports.ServerHelloDone = ServerHelloDone;
|
|
30
|
-
ServerHelloDone
|
|
41
|
+
Object.defineProperty(ServerHelloDone, "spec", {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
configurable: true,
|
|
44
|
+
writable: true,
|
|
45
|
+
value: {}
|
|
46
|
+
});
|
|
31
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,
|
|
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"]}
|
|
@@ -8,9 +8,30 @@ const const_1 = require("../../const");
|
|
|
8
8
|
// 4.2.1. Denial-of-Service Countermeasures
|
|
9
9
|
class ServerHelloVerifyRequest {
|
|
10
10
|
constructor(serverVersion, cookie) {
|
|
11
|
-
this
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
Object.defineProperty(this, "serverVersion", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
configurable: true,
|
|
14
|
+
writable: true,
|
|
15
|
+
value: serverVersion
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(this, "cookie", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
configurable: true,
|
|
20
|
+
writable: true,
|
|
21
|
+
value: cookie
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(this, "msgType", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
configurable: true,
|
|
26
|
+
writable: true,
|
|
27
|
+
value: const_1.HandshakeType.hello_verify_request_3
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(this, "messageSeq", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
configurable: true,
|
|
32
|
+
writable: true,
|
|
33
|
+
value: void 0
|
|
34
|
+
});
|
|
14
35
|
}
|
|
15
36
|
static createEmpty() {
|
|
16
37
|
return new ServerHelloVerifyRequest(undefined, undefined);
|
|
@@ -36,8 +57,13 @@ class ServerHelloVerifyRequest {
|
|
|
36
57
|
}
|
|
37
58
|
}
|
|
38
59
|
exports.ServerHelloVerifyRequest = ServerHelloVerifyRequest;
|
|
39
|
-
ServerHelloVerifyRequest
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
60
|
+
Object.defineProperty(ServerHelloVerifyRequest, "spec", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
configurable: true,
|
|
63
|
+
writable: true,
|
|
64
|
+
value: {
|
|
65
|
+
serverVersion: binary_1.ProtocolVersion,
|
|
66
|
+
cookie: binary_data_1.types.buffer(binary_data_1.types.uint8),
|
|
67
|
+
}
|
|
68
|
+
});
|
|
43
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
|
|
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"]}
|
|
@@ -7,15 +7,66 @@ const binary_1 = require("../../../util/binary");
|
|
|
7
7
|
const const_1 = require("../../const");
|
|
8
8
|
class ServerKeyExchange {
|
|
9
9
|
constructor(ellipticCurveType, namedCurve, publicKeyLength, publicKey, hashAlgorithm, signatureAlgorithm, signatureLength, signature) {
|
|
10
|
-
this
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
this
|
|
17
|
-
|
|
18
|
-
|
|
10
|
+
Object.defineProperty(this, "ellipticCurveType", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
configurable: true,
|
|
13
|
+
writable: true,
|
|
14
|
+
value: ellipticCurveType
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(this, "namedCurve", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
configurable: true,
|
|
19
|
+
writable: true,
|
|
20
|
+
value: namedCurve
|
|
21
|
+
});
|
|
22
|
+
Object.defineProperty(this, "publicKeyLength", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
configurable: true,
|
|
25
|
+
writable: true,
|
|
26
|
+
value: publicKeyLength
|
|
27
|
+
});
|
|
28
|
+
Object.defineProperty(this, "publicKey", {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
configurable: true,
|
|
31
|
+
writable: true,
|
|
32
|
+
value: publicKey
|
|
33
|
+
});
|
|
34
|
+
Object.defineProperty(this, "hashAlgorithm", {
|
|
35
|
+
enumerable: true,
|
|
36
|
+
configurable: true,
|
|
37
|
+
writable: true,
|
|
38
|
+
value: hashAlgorithm
|
|
39
|
+
});
|
|
40
|
+
Object.defineProperty(this, "signatureAlgorithm", {
|
|
41
|
+
enumerable: true,
|
|
42
|
+
configurable: true,
|
|
43
|
+
writable: true,
|
|
44
|
+
value: signatureAlgorithm
|
|
45
|
+
});
|
|
46
|
+
Object.defineProperty(this, "signatureLength", {
|
|
47
|
+
enumerable: true,
|
|
48
|
+
configurable: true,
|
|
49
|
+
writable: true,
|
|
50
|
+
value: signatureLength
|
|
51
|
+
});
|
|
52
|
+
Object.defineProperty(this, "signature", {
|
|
53
|
+
enumerable: true,
|
|
54
|
+
configurable: true,
|
|
55
|
+
writable: true,
|
|
56
|
+
value: signature
|
|
57
|
+
});
|
|
58
|
+
Object.defineProperty(this, "msgType", {
|
|
59
|
+
enumerable: true,
|
|
60
|
+
configurable: true,
|
|
61
|
+
writable: true,
|
|
62
|
+
value: const_1.HandshakeType.server_key_exchange_12
|
|
63
|
+
});
|
|
64
|
+
Object.defineProperty(this, "messageSeq", {
|
|
65
|
+
enumerable: true,
|
|
66
|
+
configurable: true,
|
|
67
|
+
writable: true,
|
|
68
|
+
value: void 0
|
|
69
|
+
});
|
|
19
70
|
}
|
|
20
71
|
static createEmpty() {
|
|
21
72
|
return new ServerKeyExchange(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined);
|
|
@@ -36,14 +87,19 @@ class ServerKeyExchange {
|
|
|
36
87
|
}
|
|
37
88
|
}
|
|
38
89
|
exports.ServerKeyExchange = ServerKeyExchange;
|
|
39
|
-
ServerKeyExchange
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
90
|
+
Object.defineProperty(ServerKeyExchange, "spec", {
|
|
91
|
+
enumerable: true,
|
|
92
|
+
configurable: true,
|
|
93
|
+
writable: true,
|
|
94
|
+
value: {
|
|
95
|
+
ellipticCurveType: binary_data_1.types.uint8,
|
|
96
|
+
namedCurve: binary_data_1.types.uint16be,
|
|
97
|
+
publicKeyLength: binary_data_1.types.uint8,
|
|
98
|
+
publicKey: binary_data_1.types.buffer((ctx) => ctx.current.publicKeyLength),
|
|
99
|
+
hashAlgorithm: binary_data_1.types.uint8,
|
|
100
|
+
signatureAlgorithm: binary_data_1.types.uint8,
|
|
101
|
+
signatureLength: binary_data_1.types.uint16be,
|
|
102
|
+
signature: binary_data_1.types.buffer((ctx) => ctx.current.signatureLength),
|
|
103
|
+
}
|
|
104
|
+
});
|
|
49
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
|
|
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"]}
|
|
@@ -6,8 +6,18 @@ const binary_data_1 = require("binary-data");
|
|
|
6
6
|
const crypto_1 = require("crypto");
|
|
7
7
|
class DtlsRandom {
|
|
8
8
|
constructor(gmt_unix_time = Math.floor(Date.now() / 1000), random_bytes = (0, crypto_1.randomBytes)(28)) {
|
|
9
|
-
this
|
|
10
|
-
|
|
9
|
+
Object.defineProperty(this, "gmt_unix_time", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
configurable: true,
|
|
12
|
+
writable: true,
|
|
13
|
+
value: gmt_unix_time
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(this, "random_bytes", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value: random_bytes
|
|
20
|
+
});
|
|
11
21
|
}
|
|
12
22
|
static deSerialize(buf) {
|
|
13
23
|
return new DtlsRandom(
|
|
@@ -24,8 +34,13 @@ class DtlsRandom {
|
|
|
24
34
|
}
|
|
25
35
|
}
|
|
26
36
|
exports.DtlsRandom = DtlsRandom;
|
|
27
|
-
DtlsRandom
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
37
|
+
Object.defineProperty(DtlsRandom, "spec", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
configurable: true,
|
|
40
|
+
writable: true,
|
|
41
|
+
value: {
|
|
42
|
+
gmt_unix_time: binary_data_1.types.uint32be,
|
|
43
|
+
random_bytes: binary_data_1.types.buffer(28),
|
|
44
|
+
}
|
|
45
|
+
});
|
|
31
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
|
|
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"]}
|
|
@@ -6,12 +6,42 @@ const binary_data_1 = require("binary-data");
|
|
|
6
6
|
const helper_1 = require("../../helper");
|
|
7
7
|
class FragmentedHandshake {
|
|
8
8
|
constructor(msg_type, length, message_seq, fragment_offset, fragment_length, fragment) {
|
|
9
|
-
this
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
Object.defineProperty(this, "msg_type", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
configurable: true,
|
|
12
|
+
writable: true,
|
|
13
|
+
value: msg_type
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(this, "length", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value: length
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(this, "message_seq", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
configurable: true,
|
|
24
|
+
writable: true,
|
|
25
|
+
value: message_seq
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(this, "fragment_offset", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
configurable: true,
|
|
30
|
+
writable: true,
|
|
31
|
+
value: fragment_offset
|
|
32
|
+
});
|
|
33
|
+
Object.defineProperty(this, "fragment_length", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true,
|
|
37
|
+
value: fragment_length
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(this, "fragment", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
configurable: true,
|
|
42
|
+
writable: true,
|
|
43
|
+
value: fragment
|
|
44
|
+
});
|
|
15
45
|
}
|
|
16
46
|
get summary() {
|
|
17
47
|
return (0, helper_1.getObjectSummary)(this);
|
|
@@ -87,12 +117,17 @@ class FragmentedHandshake {
|
|
|
87
117
|
}
|
|
88
118
|
}
|
|
89
119
|
exports.FragmentedHandshake = FragmentedHandshake;
|
|
90
|
-
FragmentedHandshake
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
120
|
+
Object.defineProperty(FragmentedHandshake, "spec", {
|
|
121
|
+
enumerable: true,
|
|
122
|
+
configurable: true,
|
|
123
|
+
writable: true,
|
|
124
|
+
value: {
|
|
125
|
+
msg_type: binary_data_1.types.uint8,
|
|
126
|
+
length: binary_data_1.types.uint24be,
|
|
127
|
+
message_seq: binary_data_1.types.uint16be,
|
|
128
|
+
fragment_offset: binary_data_1.types.uint24be,
|
|
129
|
+
fragment_length: binary_data_1.types.uint24be,
|
|
130
|
+
fragment: binary_data_1.types.buffer((context) => context.current.fragment_length),
|
|
131
|
+
}
|
|
132
|
+
});
|
|
98
133
|
//# sourceMappingURL=fragment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fragment.js","sourceRoot":"","sources":["../../../../../../dtls/src/record/message/fragment.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,6CAAoD;AAGpD,yCAAgD;AAEhD,MAAa,mBAAmB;IAU9B,YACS,QAAgB,EAChB,MAAc,EACd,WAAmB,EACnB,eAAuB,EACvB,eAAuB,EACvB,QAAgB
|
|
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"]}
|