lemon-tls 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -42,12 +42,11 @@ npm i lemon-tls
42
42
 
43
43
  ## 🚀 Example
44
44
  ```js
45
- var fs = require('fs');
46
- var net = require("net");
47
- var tls = require('lemon-tls');
45
+ import net from 'node:net';
46
+ import fs from 'node:fs';
47
+ import tls from 'lemon-tls';
48
48
 
49
49
  // Example: TLS server over TCP
50
-
51
50
  var server = net.createServer(function(tcp){
52
51
 
53
52
  var socket = new tls.TLSSocket(tcp, {
@@ -68,7 +67,6 @@ var server = net.createServer(function(tcp){
68
67
  console.log('[SRV] secure handshake established');
69
68
 
70
69
  socket.write(new TextEncoder().encode('hi'));
71
-
72
70
  });
73
71
 
74
72
  socket.on('data', function(c){
package/crypto.js CHANGED
@@ -1,12 +1,22 @@
1
- var { hmac: nobleHmac } = require('@noble/hashes/hmac');
2
- var { hkdf, extract: hkdf_extract_noble, expand: hkdf_expand_noble } = require('@noble/hashes/hkdf');
3
- var { sha256, sha384 } = require('@noble/hashes/sha2');
4
- var { p256 } = require('@noble/curves/nist'); // אם תרצה להשתמש בהמשך
5
- var { x25519 } = require('@noble/curves/ed25519'); // אם תרצה להשתמש בהמשך
6
1
 
7
- var {
8
- concatUint8Arrays,
9
- } = require('./utils');
2
+ import {
3
+ concatUint8Arrays
4
+ } from './utils.js';
5
+
6
+ import { hmac as nobleHmac } from '@noble/hashes/hmac.js';
7
+ import { hkdf, extract as hkdf_extract_noble, expand as hkdf_expand_noble } from '@noble/hashes/hkdf.js';
8
+ import { sha256, sha384 } from '@noble/hashes/sha2.js';
9
+
10
+ import { p256 } from '@noble/curves/nist.js';
11
+ import { ed25519, x25519 } from '@noble/curves/ed25519.js';
12
+
13
+ var nobleHashes = {
14
+ hmac: nobleHmac,
15
+ hkdf: hkdf,
16
+ hkdf_extract: hkdf_extract_noble,
17
+ hkdf_expand: hkdf_expand_noble,
18
+ sha256: sha256,
19
+ };
10
20
 
11
21
 
12
22
 
@@ -365,19 +375,17 @@ function get_handshake_finished(hashName, traffic_secret, transcript) {
365
375
  }
366
376
 
367
377
  // --- Exports ---
368
- if (typeof module !== 'undefined' && module.exports) {
369
- module.exports = {
370
- TLS_CIPHER_SUITES,
371
- getHashFn,
372
- getHashLen,
373
- hmac,
374
- hkdf_extract,
375
- hkdf_expand,
376
- build_hkdf_label,
377
- hkdf_expand_label,
378
- derive_handshake_traffic_secrets,
379
- derive_app_traffic_secrets,
380
- build_cert_verify_tbs,
381
- get_handshake_finished
382
- };
383
- }
378
+ export {
379
+ TLS_CIPHER_SUITES,
380
+ getHashFn,
381
+ getHashLen,
382
+ hmac,
383
+ hkdf_extract,
384
+ hkdf_expand,
385
+ build_hkdf_label,
386
+ hkdf_expand_label,
387
+ derive_handshake_traffic_secrets,
388
+ derive_app_traffic_secrets,
389
+ build_cert_verify_tbs,
390
+ get_handshake_finished
391
+ };
package/index.js CHANGED
@@ -1,15 +1,18 @@
1
1
 
2
- var TLSSession = require('./tls_session');
3
- var TLSSocket = require('./tls_socket');
4
- var createSecureContext = require('./secure_context');
2
+ import TLSSession from './tls_session.js';
3
+ import TLSSocket from './tls_socket.js';
4
+ import createSecureContext from './secure_context.js';
5
5
  //var {createServer} = require('./tls_server');
6
6
  //var constants = require('./constants');
7
7
 
8
- module.exports = {
9
- TLSSession: TLSSession,
10
- TLSSocket: TLSSocket,
11
- createSecureContext: createSecureContext,
12
- //createServer: createServer
13
- //DEFAULT_CIPHERS: constants.DEFAULT_CIPHERS,
14
- //DEFAULT_SIGALGS: constants.DEFAULT_SIGALGS
15
- };
8
+ export { TLSSocket, TLSSession, createSecureContext };
9
+
10
+ export default {
11
+ TLSSocket,
12
+ TLSSession,
13
+ createSecureContext
14
+ };
15
+
16
+ // createServer,
17
+ // DEFAULT_CIPHERS: constants.DEFAULT_CIPHERS,
18
+ // DEFAULT_SIGALGS: constants.DEFAULT_SIGALGS
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "lemon-tls",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "JavaScript TLS 1.3/1.2 implementation for Node.js, with full control over cryptographic keys and record layer",
5
5
  "main": "index.js",
6
- "type": "commonjs",
6
+ "type": "module",
7
7
  "keywords": [
8
8
  "openssl",
9
9
  "boringssl",
@@ -42,7 +42,7 @@
42
42
  "bugs": {
43
43
  "url": "https://github.com/colocohen/lemon-tls/issues"
44
44
  },
45
- "homepage": "https://github.com/colocohen/lemon-tls",
45
+ "homepage": "https://github.com/colocohen/lemon-tls#readme",
46
46
  "funding": [
47
47
  {
48
48
  "type": "github",
@@ -55,8 +55,8 @@
55
55
  ],
56
56
  "dependencies": {
57
57
  "@noble/curves": "^2.0.0",
58
- "@noble/hashes": "^2.0.0",
58
+ "@noble/hashes": "^2.0.1",
59
59
  "@stablelib/aes": "^2.0.1",
60
60
  "@stablelib/gcm": "^2.0.1"
61
61
  }
62
- }
62
+ }
package/secure_context.js CHANGED
@@ -1,6 +1,6 @@
1
- var fs = require('fs');
2
- var path = require('path');
3
- var crypto = require('crypto');
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import crypto from 'node:crypto';
4
4
 
5
5
  function looksLikePath(x) {
6
6
  return typeof x === 'string' && (x.indexOf('\n') === -1) && (x.length < 4096) &&
@@ -193,4 +193,4 @@ function createSecureContext(options) {
193
193
  };
194
194
  }
195
195
 
196
- module.exports = createSecureContext;
196
+ export default createSecureContext;
package/tls_session.js CHANGED
@@ -1,34 +1,32 @@
1
- var nobleHashes={
2
- hmac: require("@noble/hashes/hmac.js")['hmac'],
3
- hkdf: require("@noble/hashes/hkdf.js")['hkdf'],
4
- hkdf_extract: require("@noble/hashes/hkdf.js")['extract'],
5
- hkdf_expand: require("@noble/hashes/hkdf.js")['expand'],
6
- sha256: require("@noble/hashes/sha2.js")['sha256'],
7
- };
1
+ import { hmac } from '@noble/hashes/hmac.js';
2
+ import { hkdf, extract as hkdf_extract, expand as hkdf_expand } from '@noble/hashes/hkdf.js';
3
+ import { sha256, sha384 } from '@noble/hashes/sha2.js';
8
4
 
9
- var { p256 } = require('@noble/curves/nist.js');
10
- var { x25519 } = require('@noble/curves/ed25519');
11
- var { sha256, sha384 } = require('@noble/hashes/sha2');
5
+ import { p256 } from '@noble/curves/nist.js';
6
+ import { ed25519, x25519 } from '@noble/curves/ed25519.js';
12
7
 
13
- var crypto = require('crypto');
8
+ var nobleHashes = { hmac, hkdf, hkdf_extract, hkdf_expand, sha256 };
14
9
 
15
- var {
10
+ import * as crypto from 'crypto';
11
+
12
+ import {
16
13
  TLS_CIPHER_SUITES,
17
14
  build_cert_verify_tbs,
18
15
  get_handshake_finished,
19
16
  derive_handshake_traffic_secrets,
20
17
  derive_app_traffic_secrets
21
- } = require('./crypto');
22
-
18
+ } from './crypto.js';
23
19
 
24
- var {
20
+ import {
25
21
  concatUint8Arrays,
26
22
  arraybufferEqual,
27
23
  arraysEqual
28
- } = require('./utils');
24
+ } from './utils.js';
29
25
 
30
26
 
31
- var wire = require('./wire');
27
+ import * as wire from './wire.js';
28
+
29
+ //var wire = require('./wire');
32
30
 
33
31
  /** מינימל-Emitter בסגנון שלך */
34
32
  function Emitter(){
@@ -1438,4 +1436,5 @@ function TLSSession(options){
1438
1436
  return this;
1439
1437
  }
1440
1438
 
1441
- module.exports = TLSSession;
1439
+ export default TLSSession;
1440
+
package/tls_socket.js CHANGED
@@ -1,15 +1,12 @@
1
+ import TLSSession from './tls_session.js';
1
2
 
2
- var TLSSession = require('./tls_session');
3
-
4
- var { AES } = require('@stablelib/aes');
5
- var { GCM } = require('@stablelib/gcm');
6
-
7
- var {
8
- TLS_CIPHER_SUITES,
9
- hkdf_expand_label
10
- } = require('./crypto');
11
-
3
+ import { AES } from '@stablelib/aes';
4
+ import { GCM } from '@stablelib/gcm';
12
5
 
6
+ import {
7
+ TLS_CIPHER_SUITES,
8
+ hkdf_expand_label
9
+ } from './crypto.js';
13
10
 
14
11
  function Emitter(){
15
12
  var listeners = {};
@@ -453,4 +450,4 @@ function TLSSocket(duplex, options){
453
450
  return this;
454
451
  }
455
452
 
456
- module.exports = TLSSocket;
453
+ export default TLSSocket;
package/utils.js CHANGED
@@ -81,7 +81,8 @@ function arraysEqual(a, b) {
81
81
  };
82
82
 
83
83
 
84
- module.exports = {
84
+
85
+ export {
85
86
  concatUint8Arrays,
86
87
  arraybufferEqual,
87
88
  arraysEqual
package/wire.js CHANGED
@@ -1,8 +1,7 @@
1
1
 
2
-
3
- var {
4
- concatUint8Arrays,
5
- } = require('./utils');
2
+ import {
3
+ concatUint8Arrays
4
+ } from './utils.js';
6
5
 
7
6
 
8
7
  var TLS_VERSION = {
@@ -1320,62 +1319,59 @@ function parse_message(buf) {
1320
1319
 
1321
1320
 
1322
1321
 
1323
-
1324
1322
  /* ================================ Exports ================================= */
1325
- if (typeof module !== 'undefined' && module.exports) {
1326
- module.exports = {
1327
- TLS_VERSION,
1328
- TLS_MESSAGE_TYPE,
1329
- TLS_EXT,
1330
-
1331
- w_u8,
1332
- w_u16,
1333
- w_u24,
1334
- w_bytes,
1335
- r_u8,
1336
- r_u16,
1337
- r_u24,
1338
- r_bytes,
1339
- veclen,
1340
- readVec,
1341
-
1342
- exts,
1343
- build_extensions,
1344
- parse_extensions,
1345
-
1346
- build_message,
1347
- parse_message,
1348
- build_hello,
1349
- parse_hello,
1350
-
1351
- build_certificate,
1352
- parse_certificate,
1353
-
1354
- build_certificate_verify,
1355
- parse_certificate_verify,
1356
-
1357
- build_new_session_ticket,
1358
- parse_new_session_ticket,
1359
-
1360
- build_certificate_request,
1361
- parse_certificate_request,
1323
+ export {
1324
+ TLS_VERSION,
1325
+ TLS_MESSAGE_TYPE,
1326
+ TLS_EXT,
1362
1327
 
1363
-
1364
- build_hello_retry_request,
1328
+ w_u8,
1329
+ w_u16,
1330
+ w_u24,
1331
+ w_bytes,
1332
+ r_u8,
1333
+ r_u16,
1334
+ r_u24,
1335
+ r_bytes,
1336
+ veclen,
1337
+ readVec,
1365
1338
 
1366
- build_server_key_exchange_ecdhe,
1367
- parse_server_key_exchange,
1339
+ exts,
1340
+ build_extensions,
1341
+ parse_extensions,
1368
1342
 
1369
- build_client_key_exchange_ecdhe,
1370
- parse_client_key_exchange_ecdhe,
1343
+ build_message,
1344
+ parse_message,
1345
+ build_hello,
1346
+ parse_hello,
1371
1347
 
1372
- build_client_key_exchange_rsa,
1373
- parse_client_key_exchange_rsa,
1348
+ build_certificate,
1349
+ parse_certificate,
1350
+
1351
+ build_certificate_verify,
1352
+ parse_certificate_verify,
1353
+
1354
+ build_new_session_ticket,
1355
+ parse_new_session_ticket,
1356
+
1357
+ build_certificate_request,
1358
+ parse_certificate_request,
1359
+
1360
+ build_hello_retry_request,
1361
+
1362
+ build_server_key_exchange_ecdhe,
1363
+ parse_server_key_exchange,
1364
+
1365
+ build_client_key_exchange_ecdhe,
1366
+ parse_client_key_exchange_ecdhe,
1367
+
1368
+ build_client_key_exchange_rsa,
1369
+ parse_client_key_exchange_rsa,
1370
+
1371
+ build_new_session_ticket_tls12,
1372
+ parse_new_session_ticket_tls12
1373
+ };
1374
1374
 
1375
- build_new_session_ticket_tls12,
1376
- parse_new_session_ticket_tls12
1377
- };
1378
- }
1379
1375
 
1380
1376
 
1381
1377