hue-node-dtls 0.6.4-alpha.1 → 0.6.4-alpha.3
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/package.json +2 -2
- package/src/dependencies/cipher/aead.js +1 -1
- package/src/dependencies/cipher/chacha20-poly1305.js +1 -1
- package/src/dependencies/filter/decoder.js +1 -1
- package/src/dependencies/lib/protocol.js +1 -1
- package/src/dependencies/lib/sender.js +1 -1
- package/src/dependencies/lib/server.js +1 -1
- package/src/dependencies/lib/socket.js +31 -32
- package/src/dependencies/protocol/client/handlers.js +1 -1
- package/src/dependencies/session/abstract.js +1 -1
- package/src/dependencies/session/utils.js +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hue-node-dtls",
|
|
3
|
-
"version": "0.6.4-alpha.
|
|
3
|
+
"version": "0.6.4-alpha.3",
|
|
4
4
|
"description": "Secure UDP communications using DTLS.",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@fidm/asn1": "^1.0.3",
|
|
41
41
|
"@fidm/x509": "^1.2.0",
|
|
42
|
-
"binary-data": "^0.6.0",
|
|
43
42
|
"buffer-xor": "^2.0.2",
|
|
44
43
|
"debug": "^4.1.0",
|
|
44
|
+
"hue-binary-data": "^0.6.0",
|
|
45
45
|
"is-chacha20-poly1305-supported": "^1.0.0",
|
|
46
46
|
"is-dtls": "^2.0.0",
|
|
47
47
|
"is-stream": "^1.1.0",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
const crypto = require("crypto");
|
|
4
|
-
const { createDecode, encode } = require(
|
|
4
|
+
const { createDecode, encode } = require(hue - binary - data);
|
|
5
5
|
const debug = require("../utils/debug")("dtls:cipher:aead");
|
|
6
6
|
const { sessionType } = require("../lib/constants");
|
|
7
7
|
const { AEADAdditionalData } = require("../lib/protocol");
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const crypto = require("crypto");
|
|
4
4
|
const xor = require("buffer-xor/inplace");
|
|
5
|
-
const { createDecode, encode } = require(
|
|
5
|
+
const { createDecode, encode } = require(hue - binary - data);
|
|
6
6
|
const AEADCipher = require("../cipher/aead");
|
|
7
7
|
const { AEAD_CHACHA20_POLY1305 } = require("../lib/constants");
|
|
8
8
|
const debug = require("../utils/debug")("dtls:cipher:aead");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
const { Transform } = require("readable-stream");
|
|
4
|
-
const { decode, createDecode } = require(
|
|
4
|
+
const { decode, createDecode } = require(hue - binary - data);
|
|
5
5
|
const { contentType } = require("../lib/constants");
|
|
6
6
|
const { DTLSPlaintext, Handshake } = require("../lib/protocol");
|
|
7
7
|
const debug = require("../utils/debug")("dtls:decoder");
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const { Readable } = require("readable-stream");
|
|
4
4
|
const debug = require("../utils/debug")("dtls:sender");
|
|
5
|
-
const { createEncode, encode, BinaryStream } = require(
|
|
5
|
+
const { createEncode, encode, BinaryStream } = require(hue - binary - data);
|
|
6
6
|
const {
|
|
7
7
|
contentType,
|
|
8
8
|
handshakeType,
|
|
@@ -5,7 +5,7 @@ const Emitter = require("events");
|
|
|
5
5
|
const { Duplex } = require("readable-stream");
|
|
6
6
|
const debug = require("../utils/debug")("dtls:server");
|
|
7
7
|
const CookieManager = require("../lib/cookie-manager");
|
|
8
|
-
const { decode, encode } = require(
|
|
8
|
+
const { decode, encode } = require(hue - binary - data);
|
|
9
9
|
const {
|
|
10
10
|
contentType,
|
|
11
11
|
handshakeType,
|
|
@@ -5,14 +5,14 @@ const unicast = require("unicast");
|
|
|
5
5
|
const isDtls = require("is-dtls");
|
|
6
6
|
const streamfilter = require("streamfilter");
|
|
7
7
|
const debug = require("debug")("dtls:socket");
|
|
8
|
-
const x509 = require("@fidm/x509");
|
|
9
|
-
const { duplex: isDuplexStream } = require("is-stream");
|
|
10
8
|
const ClientSession = require("../session/client");
|
|
11
9
|
const ClientProtocol = require("../protocol/client");
|
|
12
10
|
const Sender = require("../lib/sender");
|
|
13
11
|
const Decoder = require("../filter/decoder");
|
|
14
12
|
const Defragmentation = require("../filter/defragmentation");
|
|
15
13
|
const Reordering = require("../filter/reordering");
|
|
14
|
+
const x509 = require("@fidm/x509");
|
|
15
|
+
const { duplex: isDuplexStream } = require("is-stream");
|
|
16
16
|
const { toCipherSuite } = require("../utils/cipher-suite");
|
|
17
17
|
|
|
18
18
|
const _session = Symbol("_session");
|
|
@@ -179,41 +179,41 @@ class Socket extends Duplex {
|
|
|
179
179
|
process.nextTick(() => this.emit("certificate", cert))
|
|
180
180
|
);
|
|
181
181
|
|
|
182
|
-
session.on(
|
|
182
|
+
session.on('error', code => {
|
|
183
183
|
// Map DTLS alert codes to descriptive messages
|
|
184
184
|
const alertMessages = {
|
|
185
|
-
0:
|
|
186
|
-
10:
|
|
187
|
-
20:
|
|
188
|
-
21:
|
|
189
|
-
22:
|
|
190
|
-
30:
|
|
191
|
-
40:
|
|
192
|
-
41:
|
|
193
|
-
42:
|
|
194
|
-
43:
|
|
195
|
-
44:
|
|
196
|
-
45:
|
|
197
|
-
46:
|
|
198
|
-
47:
|
|
199
|
-
48:
|
|
200
|
-
49:
|
|
201
|
-
50:
|
|
202
|
-
51:
|
|
203
|
-
60:
|
|
204
|
-
70:
|
|
205
|
-
71:
|
|
206
|
-
80:
|
|
207
|
-
90:
|
|
208
|
-
100:
|
|
209
|
-
110:
|
|
210
|
-
115:
|
|
185
|
+
0: 'close_notify - Server will disconnect (e.g. streaming disabled)',
|
|
186
|
+
10: 'unexpected_message - Protocol failure',
|
|
187
|
+
20: 'bad_record_mac - Protocol failure or invalid PSK',
|
|
188
|
+
21: 'decryption_failed - Decryption failed',
|
|
189
|
+
22: 'record_overflow - Record overflow',
|
|
190
|
+
30: 'decompression_failure - Decompression failed',
|
|
191
|
+
40: 'handshake_failure - Other insufficient security parameters',
|
|
192
|
+
41: 'no_certificate - No certificate provided',
|
|
193
|
+
42: 'bad_certificate - Bad certificate',
|
|
194
|
+
43: 'unsupported_certificate - Unsupported certificate',
|
|
195
|
+
44: 'certificate_revoked - Certificate revoked',
|
|
196
|
+
45: 'certificate_expired - Certificate expired',
|
|
197
|
+
46: 'certificate_unknown - Certificate unknown',
|
|
198
|
+
47: 'illegal_parameter - Illegal parameter',
|
|
199
|
+
48: 'unknown_ca - Unknown certificate authority',
|
|
200
|
+
49: 'access_denied - Access denied',
|
|
201
|
+
50: 'decode_error - Protocol failure - decode error',
|
|
202
|
+
51: 'decrypt_error - Invalid PSK or decryption error',
|
|
203
|
+
60: 'export_restriction - Export restriction',
|
|
204
|
+
70: 'protocol_version - DTLS version not supported',
|
|
205
|
+
71: 'insufficient_security - Higher cipher security required',
|
|
206
|
+
80: 'internal_error - Internal bridge error',
|
|
207
|
+
90: 'user_canceled - Maximum number of sessions already active',
|
|
208
|
+
100: 'no_renegotiation - No renegotiation',
|
|
209
|
+
110: 'unsupported_extension - Unsupported extension',
|
|
210
|
+
115: 'unknown_psk_identity - Unknown identity',
|
|
211
211
|
};
|
|
212
212
|
|
|
213
213
|
const message = alertMessages[code] || `Unknown alert`;
|
|
214
214
|
const detailedError = new Error(`DTLS Alert ${code}: ${message}`);
|
|
215
|
-
debug(
|
|
216
|
-
this.emit(
|
|
215
|
+
debug('DTLS error - code: %d, message: %s', code, message);
|
|
216
|
+
this.emit('error', detailedError);
|
|
217
217
|
});
|
|
218
218
|
|
|
219
219
|
this.once("timeout", () => {
|
|
@@ -302,7 +302,6 @@ class Socket extends Duplex {
|
|
|
302
302
|
}
|
|
303
303
|
|
|
304
304
|
this[_timeout] = setTimeout(() => this[_onTimeout](), connectionTimeout);
|
|
305
|
-
this[_timeout].unref();
|
|
306
305
|
}
|
|
307
306
|
|
|
308
307
|
/**
|
|
@@ -10,7 +10,7 @@ const crypto = require("crypto");
|
|
|
10
10
|
const debug = require("../../utils/debug")("dtls:client-protocol");
|
|
11
11
|
const { constants: states } = require("../../protocol/packet");
|
|
12
12
|
const { createCipher } = require("../../cipher/create");
|
|
13
|
-
const { decode, createDecode } = require("binary-data");
|
|
13
|
+
const { decode, createDecode } = require("hue-binary-data");
|
|
14
14
|
const x509 = require("@fidm/x509");
|
|
15
15
|
const { ASN1 } = require("@fidm/asn1");
|
|
16
16
|
const {
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
const assert = require("assert");
|
|
7
7
|
const crypto = require("crypto");
|
|
8
8
|
const Emitter = require("events");
|
|
9
|
-
const { encode, BinaryStream } = require(
|
|
9
|
+
const { encode, BinaryStream } = require(hue - binary - data);
|
|
10
10
|
const {
|
|
11
11
|
protocolVersion,
|
|
12
12
|
signTypes,
|