@libp2p/webrtc 5.2.9-4c64bd06d → 5.2.9-4f37aff53
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/dist/index.min.js +10 -10
- package/dist/src/constants.d.ts +5 -1
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +5 -1
- package/dist/src/constants.js.map +1 -1
- package/dist/src/private-to-public/listener.d.ts.map +1 -1
- package/dist/src/private-to-public/listener.js +1 -0
- package/dist/src/private-to-public/listener.js.map +1 -1
- package/dist/src/private-to-public/transport.d.ts +5 -4
- package/dist/src/private-to-public/transport.d.ts.map +1 -1
- package/dist/src/private-to-public/transport.js +44 -12
- package/dist/src/private-to-public/transport.js.map +1 -1
- package/package.json +9 -9
- package/src/constants.ts +6 -1
- package/src/private-to-public/listener.ts +1 -0
- package/src/private-to-public/transport.ts +56 -17
package/dist/src/constants.d.ts
CHANGED
@@ -84,5 +84,9 @@ export declare const DEFAULT_CERTIFICATE_PRIVATE_KEY_TYPE = "ECDSA";
|
|
84
84
|
/**
|
85
85
|
* How long the certificate is valid for
|
86
86
|
*/
|
87
|
-
export declare const DEFAULT_CERTIFICATE_LIFESPAN =
|
87
|
+
export declare const DEFAULT_CERTIFICATE_LIFESPAN = 1209600000;
|
88
|
+
/**
|
89
|
+
* Renew the certificate this long before it expires
|
90
|
+
*/
|
91
|
+
export declare const DEFAULT_CERTIFICATE_RENEWAL_THRESHOLD = 86400000;
|
88
92
|
//# sourceMappingURL=constants.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,UAK/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,UAA+E,CAAA;AAE1G;;GAEG;AACH,eAAO,MAAM,YAAY,sBAAsB,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,mBAAmB,MAAS,CAAA;AAEzC;;GAEG;AACH,eAAO,MAAM,cAAc,MAAS,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAkB,CAAA;AAElD;;GAEG;AACH,eAAO,MAAM,2BAA2B,QAAY,CAAA;AAEpD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,QAAY,CAAA;AAsBzC;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAA8B,CAAA;AAE5D;;;;GAIG;AACH,eAAO,MAAM,eAAe,OAAQ,CAAA;AAEpC;;;GAGG;AACH,eAAO,MAAM,YAAY,OAAQ,CAAA;AAEjC;;;GAGG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAA;AAEhD;;GAEG;AACH,eAAO,MAAM,cAAc,YAAY,CAAA;AAEvC;;GAEG;AACH,eAAO,MAAM,kBAAkB,4BAA4B,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,iCAAiC,sCAAsC,CAAA;AAEpF;;GAEG;AACH,eAAO,MAAM,oCAAoC,0CAA0C,CAAA;AAE3F;;GAEG;AACH,eAAO,MAAM,oCAAoC,UAAU,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,4BAA4B,MAAM,CAAA"}
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,UAK/B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,UAA+E,CAAA;AAE1G;;GAEG;AACH,eAAO,MAAM,YAAY,sBAAsB,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,mBAAmB,MAAS,CAAA;AAEzC;;GAEG;AACH,eAAO,MAAM,cAAc,MAAS,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAkB,CAAA;AAElD;;GAEG;AACH,eAAO,MAAM,2BAA2B,QAAY,CAAA;AAEpD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,QAAY,CAAA;AAsBzC;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAA8B,CAAA;AAE5D;;;;GAIG;AACH,eAAO,MAAM,eAAe,OAAQ,CAAA;AAEpC;;;GAGG;AACH,eAAO,MAAM,YAAY,OAAQ,CAAA;AAEjC;;;GAGG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAA;AAEhD;;GAEG;AACH,eAAO,MAAM,cAAc,YAAY,CAAA;AAEvC;;GAEG;AACH,eAAO,MAAM,kBAAkB,4BAA4B,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,iCAAiC,sCAAsC,CAAA;AAEpF;;GAEG;AACH,eAAO,MAAM,oCAAoC,0CAA0C,CAAA;AAE3F;;GAEG;AACH,eAAO,MAAM,oCAAoC,UAAU,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,4BAA4B,aAAgB,CAAA;AAEzD;;GAEG;AACH,eAAO,MAAM,qCAAqC,WAAa,CAAA"}
|
package/dist/src/constants.js
CHANGED
@@ -108,5 +108,9 @@ export const DEFAULT_CERTIFICATE_PRIVATE_KEY_TYPE = 'ECDSA';
|
|
108
108
|
/**
|
109
109
|
* How long the certificate is valid for
|
110
110
|
*/
|
111
|
-
export const DEFAULT_CERTIFICATE_LIFESPAN =
|
111
|
+
export const DEFAULT_CERTIFICATE_LIFESPAN = 1_209_600_000;
|
112
|
+
/**
|
113
|
+
* Renew the certificate this long before it expires
|
114
|
+
*/
|
115
|
+
export const DEFAULT_CERTIFICATE_RENEWAL_THRESHOLD = 86_400_000;
|
112
116
|
//# sourceMappingURL=constants.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAE3D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,8BAA8B;IAC9B,kCAAkC;IAClC,+BAA+B;IAC/B,qCAAqC;CACtC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;AAE1G;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAA;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAA;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,GAAG,IAAI,CAAA;AAEpD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAA;AAEzC;;;;;;GAMG;AACH,SAAS,yBAAyB,CAAE,cAAc,GAAG,gBAAgB;IACnE,0BAA0B;IAC1B,MAAM,aAAa,GAAG,cAAc,CAAC,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC,CAAA;IACrF,MAAM,SAAS,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA,CAAC,gBAAgB;IAC3F,MAAM,kBAAkB,GAAG,CAAC,CAAA,CAAC,UAAU;IACvC,MAAM,SAAS,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,GAAG,kBAAkB,CAAA;IAEjF,+DAA+D;IAC/D,MAAM,wBAAwB,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IAE1D,OAAO,aAAa,GAAG,SAAS,GAAG,kBAAkB,GAAG,wBAAwB,CAAA;AAClF,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAyB,EAAE,CAAA;AAE5D;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAA;AAEpC;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAA;AAEjC;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAA;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAA;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAA;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,mCAAmC,CAAA;AAEpF;;GAEG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,uCAAuC,CAAA;AAE3F;;GAEG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,OAAO,CAAA;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,CAAA"}
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAE3D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,8BAA8B;IAC9B,kCAAkC;IAClC,+BAA+B;IAC/B,qCAAqC;CACtC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;AAE1G;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAA;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAA;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,GAAG,IAAI,CAAA;AAEpD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAA;AAEzC;;;;;;GAMG;AACH,SAAS,yBAAyB,CAAE,cAAc,GAAG,gBAAgB;IACnE,0BAA0B;IAC1B,MAAM,aAAa,GAAG,cAAc,CAAC,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC,CAAA;IACrF,MAAM,SAAS,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA,CAAC,gBAAgB;IAC3F,MAAM,kBAAkB,GAAG,CAAC,CAAA,CAAC,UAAU;IACvC,MAAM,SAAS,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,GAAG,kBAAkB,CAAA;IAEjF,+DAA+D;IAC/D,MAAM,wBAAwB,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IAE1D,OAAO,aAAa,GAAG,SAAS,GAAG,kBAAkB,GAAG,wBAAwB,CAAA;AAClF,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAyB,EAAE,CAAA;AAE5D;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAA;AAEpC;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAA;AAEjC;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAA;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAA;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAA;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,mCAAmC,CAAA;AAEpF;;GAEG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,uCAAuC,CAAA;AAE3F;;GAEG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,OAAO,CAAA;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,aAAa,CAAA;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,UAAU,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/listener.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAU7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,gBAAgB,CAAA;AAG5E,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAU,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACjK,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,EAAE,oBAAoB,CAAA;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC1F,OAAO,EAAE,gBAAgB,CAAC,sCAAsC,CAAC,CAAA;CAClE;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,YAAY,CAAA;CAC7B;AAaD,qBAAa,oBAAqB,SAAQ,iBAAiB,CAAC,cAAc,CAAE,YAAW,QAAQ;IAC7F,OAAO,CAAC,kBAAkB,CAAC,CAAW;IACtC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,UAAU,CAAC,CAAY;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;gBAEvC,UAAU,EAAE,8BAA8B,EAAE,IAAI,EAAE,wBAAwB;
|
1
|
+
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/listener.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAU7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,gBAAgB,CAAA;AAG5E,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAU,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACjK,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,EAAE,oBAAoB,CAAA;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC1F,OAAO,EAAE,gBAAgB,CAAC,sCAAsC,CAAC,CAAA;CAClE;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,YAAY,CAAA;CAC7B;AAaD,qBAAa,oBAAqB,SAAQ,iBAAiB,CAAC,cAAc,CAAE,YAAW,QAAQ;IAC7F,OAAO,CAAC,kBAAkB,CAAC,CAAW;IACtC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,UAAU,CAAC,CAAY;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;gBAEvC,UAAU,EAAE,8BAA8B,EAAE,IAAI,EAAE,wBAAwB;IA2BjF,MAAM,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAyC3C,OAAO,CAAC,iBAAiB;YA+BX,kBAAkB;IAmDhC,QAAQ,IAAK,SAAS,EAAE;IAYxB,mBAAmB,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IA4B7C,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;CA8B9B"}
|
@@ -38,6 +38,7 @@ export class WebRTCDirectListener extends TypedEventEmitter {
|
|
38
38
|
}
|
39
39
|
// inform the transport manager our addresses have changed
|
40
40
|
init.emitter.addEventListener('certificate:renew', evt => {
|
41
|
+
this.log('received new TLS certificate', evt.detail.certhash);
|
41
42
|
this.certificate = evt.detail;
|
42
43
|
this.safeDispatchEvent('listening');
|
43
44
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../../src/private-to-public/listener.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../../src/private-to-public/listener.ts"],"names":[],"mappings":"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"}
|
@@ -62,15 +62,15 @@ export interface WebRTCTransportDirectInit {
|
|
62
62
|
*/
|
63
63
|
certificateKeychainName?: string;
|
64
64
|
/**
|
65
|
-
* Number of
|
65
|
+
* Number of ms a certificate should be valid for (defaults to 14 days)
|
66
66
|
*
|
67
|
-
* @default
|
67
|
+
* @default 2_592_000_000
|
68
68
|
*/
|
69
69
|
certificateLifespan?: number;
|
70
70
|
/**
|
71
|
-
* Certificates will be renewed this many
|
71
|
+
* Certificates will be renewed this many ms before expiry (defaults to 1 day)
|
72
72
|
*
|
73
|
-
* @default
|
73
|
+
* @default 86_400_000
|
74
74
|
*/
|
75
75
|
certificateRenewalThreshold?: number;
|
76
76
|
}
|
@@ -85,6 +85,7 @@ export declare class WebRTCDirectTransport implements Transport, Startable {
|
|
85
85
|
private certificate?;
|
86
86
|
private privateKey?;
|
87
87
|
private readonly emitter;
|
88
|
+
private renewCertificateTask?;
|
88
89
|
constructor(components: WebRTCDirectTransportComponents, init?: WebRTCTransportDirectInit);
|
89
90
|
readonly [transportSymbol] = true;
|
90
91
|
readonly [Symbol.toStringTag] = "@libp2p/webrtc-direct";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/transport.ts"],"names":[],"mappings":"AACA,OAAO,
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/private-to-public/transport.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { generateKeyPair, privateKeyToCryptoKeyPair } from '@libp2p/crypto/keys';
|
2
|
-
import { NotFoundError, NotStartedError, TypedEventEmitter, serviceCapabilities, transportSymbol } from '@libp2p/interface';
|
2
|
+
import { InvalidParametersError, NotFoundError, NotStartedError, TypedEventEmitter, serviceCapabilities, transportSymbol } from '@libp2p/interface';
|
3
3
|
import { peerIdFromString } from '@libp2p/peer-id';
|
4
4
|
import { WebRTCDirect } from '@multiformats/multiaddr-matcher';
|
5
5
|
import { BasicConstraintsExtension, X509Certificate, X509CertificateGenerator } from '@peculiar/x509';
|
@@ -9,13 +9,12 @@ import { sha256 } from 'multiformats/hashes/sha2';
|
|
9
9
|
import { raceSignal } from 'race-signal';
|
10
10
|
import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
|
11
11
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
12
|
-
import { DEFAULT_CERTIFICATE_DATASTORE_KEY, DEFAULT_CERTIFICATE_LIFESPAN, DEFAULT_CERTIFICATE_PRIVATE_KEY_NAME } from '../constants.js';
|
12
|
+
import { DEFAULT_CERTIFICATE_DATASTORE_KEY, DEFAULT_CERTIFICATE_LIFESPAN, DEFAULT_CERTIFICATE_PRIVATE_KEY_NAME, DEFAULT_CERTIFICATE_RENEWAL_THRESHOLD } from '../constants.js';
|
13
13
|
import { genUfrag } from '../util.js';
|
14
14
|
import { WebRTCDirectListener } from './listener.js';
|
15
15
|
import { connect } from './utils/connect.js';
|
16
16
|
import { createDialerRTCPeerConnection } from './utils/get-rtcpeerconnection.js';
|
17
17
|
import { formatAsPem } from './utils/pem.js';
|
18
|
-
const ONE_DAY_MS = 86_400_000;
|
19
18
|
export class WebRTCDirectTransport {
|
20
19
|
log;
|
21
20
|
metrics;
|
@@ -24,11 +23,15 @@ export class WebRTCDirectTransport {
|
|
24
23
|
certificate;
|
25
24
|
privateKey;
|
26
25
|
emitter;
|
26
|
+
renewCertificateTask;
|
27
27
|
constructor(components, init = {}) {
|
28
28
|
this.log = components.logger.forComponent('libp2p:webrtc-direct');
|
29
29
|
this.components = components;
|
30
30
|
this.init = init;
|
31
31
|
this.emitter = new TypedEventEmitter();
|
32
|
+
if (init.certificateLifespan != null && init.certificateRenewalThreshold != null && init.certificateRenewalThreshold >= init.certificateLifespan) {
|
33
|
+
throw new InvalidParametersError('Certificate renewal threshold must be less than certificate lifespan');
|
34
|
+
}
|
32
35
|
if (components.metrics != null) {
|
33
36
|
this.metrics = {
|
34
37
|
dialerEvents: components.metrics.registerCounterGroup('libp2p_webrtc-direct_dialer_events_total', {
|
@@ -47,6 +50,10 @@ export class WebRTCDirectTransport {
|
|
47
50
|
this.certificate = await this.getCertificate();
|
48
51
|
}
|
49
52
|
async stop() {
|
53
|
+
if (this.renewCertificateTask != null) {
|
54
|
+
clearTimeout(this.renewCertificateTask);
|
55
|
+
}
|
56
|
+
this.certificate = undefined;
|
50
57
|
}
|
51
58
|
/**
|
52
59
|
* Dial a given multiaddr
|
@@ -117,13 +124,13 @@ export class WebRTCDirectTransport {
|
|
117
124
|
throw err;
|
118
125
|
}
|
119
126
|
}
|
120
|
-
async getCertificate() {
|
127
|
+
async getCertificate(forceRenew) {
|
121
128
|
if (isTransportCertificate(this.init.certificate)) {
|
122
|
-
this.log
|
129
|
+
this.log('using provided TLS certificate');
|
123
130
|
return this.init.certificate;
|
124
131
|
}
|
125
132
|
const privateKey = await this.loadOrCreatePrivateKey();
|
126
|
-
const { pem, certhash } = await this.loadOrCreateCertificate(privateKey);
|
133
|
+
const { pem, certhash } = await this.loadOrCreateCertificate(privateKey, forceRenew);
|
127
134
|
return {
|
128
135
|
privateKey: await formatAsPem(privateKey),
|
129
136
|
pem,
|
@@ -160,14 +167,18 @@ export class WebRTCDirectTransport {
|
|
160
167
|
}
|
161
168
|
return this.privateKey;
|
162
169
|
}
|
163
|
-
async loadOrCreateCertificate(privateKey) {
|
164
|
-
if (this.certificate != null) {
|
170
|
+
async loadOrCreateCertificate(privateKey, forceRenew) {
|
171
|
+
if (this.certificate != null && forceRenew !== true) {
|
165
172
|
return this.certificate;
|
166
173
|
}
|
167
174
|
let cert;
|
168
175
|
const dsKey = new Key(this.init.certificateDatastoreKey ?? DEFAULT_CERTIFICATE_DATASTORE_KEY);
|
169
176
|
const keyPair = await privateKeyToCryptoKeyPair(privateKey);
|
170
177
|
try {
|
178
|
+
if (forceRenew === true) {
|
179
|
+
this.log.trace('forcing renewal of TLS certificate');
|
180
|
+
throw new NotFoundError();
|
181
|
+
}
|
171
182
|
this.log.trace('checking for stored TLS certificate');
|
172
183
|
cert = await this.loadCertificate(dsKey, keyPair);
|
173
184
|
}
|
@@ -175,9 +186,28 @@ export class WebRTCDirectTransport {
|
|
175
186
|
if (err.name !== 'NotFoundError') {
|
176
187
|
throw err;
|
177
188
|
}
|
178
|
-
this.log('generating TLS certificate
|
189
|
+
this.log.trace('generating new TLS certificate');
|
179
190
|
cert = await this.createCertificate(dsKey, keyPair);
|
180
191
|
}
|
192
|
+
// set timeout to renew certificate
|
193
|
+
let renewTime = (cert.notAfter.getTime() - (this.init.certificateRenewalThreshold ?? DEFAULT_CERTIFICATE_RENEWAL_THRESHOLD)) - Date.now();
|
194
|
+
if (renewTime < 0) {
|
195
|
+
renewTime = 100;
|
196
|
+
}
|
197
|
+
this.log('will renew TLS certificate after %d ms', renewTime);
|
198
|
+
this.renewCertificateTask = setTimeout(() => {
|
199
|
+
this.log('renewing TLS certificate');
|
200
|
+
this.getCertificate(true)
|
201
|
+
.then(cert => {
|
202
|
+
this.certificate = cert;
|
203
|
+
this.emitter.safeDispatchEvent('certificate:renew', {
|
204
|
+
detail: cert
|
205
|
+
});
|
206
|
+
})
|
207
|
+
.catch(err => {
|
208
|
+
this.log.error('could not renew certificate - %e', err);
|
209
|
+
});
|
210
|
+
}, renewTime);
|
181
211
|
return {
|
182
212
|
pem: cert.toString('pem'),
|
183
213
|
certhash: base64url.encode((await sha256.digest(new Uint8Array(cert.rawData))).bytes)
|
@@ -187,12 +217,13 @@ export class WebRTCDirectTransport {
|
|
187
217
|
const buf = await this.components.datastore.get(dsKey);
|
188
218
|
const cert = new X509Certificate(buf);
|
189
219
|
// check expiry date
|
190
|
-
const
|
191
|
-
if (
|
220
|
+
const expiryTime = cert.notAfter.getTime() - (this.init.certificateRenewalThreshold ?? DEFAULT_CERTIFICATE_RENEWAL_THRESHOLD);
|
221
|
+
if (Date.now() > expiryTime) {
|
192
222
|
this.log('stored TLS certificate has expired');
|
193
223
|
// act as if no certificate was present
|
194
224
|
throw new NotFoundError();
|
195
225
|
}
|
226
|
+
this.log('loaded certificate, expires in %d ms', expiryTime);
|
196
227
|
// check public keys match
|
197
228
|
const exportedCertKey = await cert.publicKey.export(crypto);
|
198
229
|
const rawCertKey = await crypto.subtle.exportKey('raw', exportedCertKey);
|
@@ -201,11 +232,12 @@ export class WebRTCDirectTransport {
|
|
201
232
|
this.log('stored TLS certificate public key did not match public key from private key');
|
202
233
|
throw new NotFoundError();
|
203
234
|
}
|
235
|
+
this.log('loaded certificate, expiry time is %o', expiryTime);
|
204
236
|
return cert;
|
205
237
|
}
|
206
238
|
async createCertificate(dsKey, keyPair) {
|
207
239
|
const notBefore = new Date();
|
208
|
-
const notAfter = new Date(
|
240
|
+
const notAfter = new Date(Date.now() + (this.init.certificateLifespan ?? DEFAULT_CERTIFICATE_LIFESPAN));
|
209
241
|
// have to set ms to 0 to work around https://github.com/PeculiarVentures/x509/issues/73
|
210
242
|
notBefore.setMilliseconds(0);
|
211
243
|
notAfter.setMilliseconds(0);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/private-to-public/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/private-to-public/transport.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@libp2p/webrtc",
|
3
|
-
"version": "5.2.9-
|
3
|
+
"version": "5.2.9-4f37aff53",
|
4
4
|
"description": "A libp2p transport using WebRTC connections",
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-webrtc#readme",
|
@@ -54,12 +54,12 @@
|
|
54
54
|
"@chainsafe/is-ip": "^2.0.2",
|
55
55
|
"@chainsafe/libp2p-noise": "^16.0.0",
|
56
56
|
"@ipshipyard/node-datachannel": "^0.26.4",
|
57
|
-
"@libp2p/crypto": "5.0.15-
|
58
|
-
"@libp2p/interface": "2.7.0-
|
59
|
-
"@libp2p/interface-internal": "2.3.9-
|
60
|
-
"@libp2p/keychain": "5.1.4-
|
61
|
-
"@libp2p/peer-id": "5.1.0-
|
62
|
-
"@libp2p/utils": "6.6.0-
|
57
|
+
"@libp2p/crypto": "5.0.15-4f37aff53",
|
58
|
+
"@libp2p/interface": "2.7.0-4f37aff53",
|
59
|
+
"@libp2p/interface-internal": "2.3.9-4f37aff53",
|
60
|
+
"@libp2p/keychain": "5.1.4-4f37aff53",
|
61
|
+
"@libp2p/peer-id": "5.1.0-4f37aff53",
|
62
|
+
"@libp2p/utils": "6.6.0-4f37aff53",
|
63
63
|
"@multiformats/multiaddr": "^12.4.0",
|
64
64
|
"@multiformats/multiaddr-matcher": "^1.6.0",
|
65
65
|
"@peculiar/webcrypto": "^1.5.0",
|
@@ -86,8 +86,8 @@
|
|
86
86
|
"uint8arrays": "^5.1.0"
|
87
87
|
},
|
88
88
|
"devDependencies": {
|
89
|
-
"@libp2p/interface-compliance-tests": "6.4.2-
|
90
|
-
"@libp2p/logger": "5.1.13-
|
89
|
+
"@libp2p/interface-compliance-tests": "6.4.2-4f37aff53",
|
90
|
+
"@libp2p/logger": "5.1.13-4f37aff53",
|
91
91
|
"@types/sinon": "^17.0.3",
|
92
92
|
"aegir": "^45.1.1",
|
93
93
|
"datastore-core": "^10.0.2",
|
package/src/constants.ts
CHANGED
@@ -129,4 +129,9 @@ export const DEFAULT_CERTIFICATE_PRIVATE_KEY_TYPE = 'ECDSA'
|
|
129
129
|
/**
|
130
130
|
* How long the certificate is valid for
|
131
131
|
*/
|
132
|
-
export const DEFAULT_CERTIFICATE_LIFESPAN =
|
132
|
+
export const DEFAULT_CERTIFICATE_LIFESPAN = 1_209_600_000
|
133
|
+
|
134
|
+
/**
|
135
|
+
* Renew the certificate this long before it expires
|
136
|
+
*/
|
137
|
+
export const DEFAULT_CERTIFICATE_RENEWAL_THRESHOLD = 86_400_000
|
@@ -84,6 +84,7 @@ export class WebRTCDirectListener extends TypedEventEmitter<ListenerEvents> impl
|
|
84
84
|
|
85
85
|
// inform the transport manager our addresses have changed
|
86
86
|
init.emitter.addEventListener('certificate:renew', evt => {
|
87
|
+
this.log('received new TLS certificate', evt.detail.certhash)
|
87
88
|
this.certificate = evt.detail
|
88
89
|
this.safeDispatchEvent('listening')
|
89
90
|
})
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { generateKeyPair, privateKeyToCryptoKeyPair } from '@libp2p/crypto/keys'
|
2
|
-
import { NotFoundError, NotStartedError, TypedEventEmitter, serviceCapabilities, transportSymbol } from '@libp2p/interface'
|
2
|
+
import { InvalidParametersError, NotFoundError, NotStartedError, TypedEventEmitter, serviceCapabilities, transportSymbol } from '@libp2p/interface'
|
3
3
|
import { peerIdFromString } from '@libp2p/peer-id'
|
4
4
|
import { WebRTCDirect } from '@multiformats/multiaddr-matcher'
|
5
5
|
import { BasicConstraintsExtension, X509Certificate, X509CertificateGenerator } from '@peculiar/x509'
|
@@ -9,7 +9,7 @@ import { sha256 } from 'multiformats/hashes/sha2'
|
|
9
9
|
import { raceSignal } from 'race-signal'
|
10
10
|
import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
|
11
11
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
|
12
|
-
import { DEFAULT_CERTIFICATE_DATASTORE_KEY, DEFAULT_CERTIFICATE_LIFESPAN, DEFAULT_CERTIFICATE_PRIVATE_KEY_NAME } from '../constants.js'
|
12
|
+
import { DEFAULT_CERTIFICATE_DATASTORE_KEY, DEFAULT_CERTIFICATE_LIFESPAN, DEFAULT_CERTIFICATE_PRIVATE_KEY_NAME, DEFAULT_CERTIFICATE_RENEWAL_THRESHOLD } from '../constants.js'
|
13
13
|
import { genUfrag } from '../util.js'
|
14
14
|
import { WebRTCDirectListener } from './listener.js'
|
15
15
|
import { connect } from './utils/connect.js'
|
@@ -23,8 +23,6 @@ import type { Keychain } from '@libp2p/keychain'
|
|
23
23
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
24
24
|
import type { Datastore } from 'interface-datastore'
|
25
25
|
|
26
|
-
const ONE_DAY_MS = 86_400_000
|
27
|
-
|
28
26
|
export interface WebRTCDirectTransportComponents {
|
29
27
|
peerId: PeerId
|
30
28
|
privateKey: PrivateKey
|
@@ -88,16 +86,16 @@ export interface WebRTCTransportDirectInit {
|
|
88
86
|
certificateKeychainName?: string
|
89
87
|
|
90
88
|
/**
|
91
|
-
* Number of
|
89
|
+
* Number of ms a certificate should be valid for (defaults to 14 days)
|
92
90
|
*
|
93
|
-
* @default
|
91
|
+
* @default 2_592_000_000
|
94
92
|
*/
|
95
93
|
certificateLifespan?: number
|
96
94
|
|
97
95
|
/**
|
98
|
-
* Certificates will be renewed this many
|
96
|
+
* Certificates will be renewed this many ms before expiry (defaults to 1 day)
|
99
97
|
*
|
100
|
-
* @default
|
98
|
+
* @default 86_400_000
|
101
99
|
*/
|
102
100
|
certificateRenewalThreshold?: number
|
103
101
|
}
|
@@ -114,6 +112,7 @@ export class WebRTCDirectTransport implements Transport, Startable {
|
|
114
112
|
private certificate?: TransportCertificate
|
115
113
|
private privateKey?: PrivateKey
|
116
114
|
private readonly emitter: TypedEventTarget<WebRTCDirectTransportCertificateEvents>
|
115
|
+
private renewCertificateTask?: ReturnType<typeof setTimeout>
|
117
116
|
|
118
117
|
constructor (components: WebRTCDirectTransportComponents, init: WebRTCTransportDirectInit = {}) {
|
119
118
|
this.log = components.logger.forComponent('libp2p:webrtc-direct')
|
@@ -121,6 +120,10 @@ export class WebRTCDirectTransport implements Transport, Startable {
|
|
121
120
|
this.init = init
|
122
121
|
this.emitter = new TypedEventEmitter()
|
123
122
|
|
123
|
+
if (init.certificateLifespan != null && init.certificateRenewalThreshold != null && init.certificateRenewalThreshold >= init.certificateLifespan) {
|
124
|
+
throw new InvalidParametersError('Certificate renewal threshold must be less than certificate lifespan')
|
125
|
+
}
|
126
|
+
|
124
127
|
if (components.metrics != null) {
|
125
128
|
this.metrics = {
|
126
129
|
dialerEvents: components.metrics.registerCounterGroup('libp2p_webrtc-direct_dialer_events_total', {
|
@@ -144,7 +147,11 @@ export class WebRTCDirectTransport implements Transport, Startable {
|
|
144
147
|
}
|
145
148
|
|
146
149
|
async stop (): Promise<void> {
|
150
|
+
if (this.renewCertificateTask != null) {
|
151
|
+
clearTimeout(this.renewCertificateTask)
|
152
|
+
}
|
147
153
|
|
154
|
+
this.certificate = undefined
|
148
155
|
}
|
149
156
|
|
150
157
|
/**
|
@@ -225,14 +232,14 @@ export class WebRTCDirectTransport implements Transport, Startable {
|
|
225
232
|
}
|
226
233
|
}
|
227
234
|
|
228
|
-
private async getCertificate (): Promise<TransportCertificate> {
|
235
|
+
private async getCertificate (forceRenew?: boolean): Promise<TransportCertificate> {
|
229
236
|
if (isTransportCertificate(this.init.certificate)) {
|
230
|
-
this.log
|
237
|
+
this.log('using provided TLS certificate')
|
231
238
|
return this.init.certificate
|
232
239
|
}
|
233
240
|
|
234
241
|
const privateKey = await this.loadOrCreatePrivateKey()
|
235
|
-
const { pem, certhash } = await this.loadOrCreateCertificate(privateKey)
|
242
|
+
const { pem, certhash } = await this.loadOrCreateCertificate(privateKey, forceRenew)
|
236
243
|
|
237
244
|
return {
|
238
245
|
privateKey: await formatAsPem(privateKey),
|
@@ -276,8 +283,8 @@ export class WebRTCDirectTransport implements Transport, Startable {
|
|
276
283
|
return this.privateKey
|
277
284
|
}
|
278
285
|
|
279
|
-
private async loadOrCreateCertificate (privateKey: PrivateKey): Promise<{ pem: string, certhash: string }> {
|
280
|
-
if (this.certificate != null) {
|
286
|
+
private async loadOrCreateCertificate (privateKey: PrivateKey, forceRenew?: boolean): Promise<{ pem: string, certhash: string }> {
|
287
|
+
if (this.certificate != null && forceRenew !== true) {
|
281
288
|
return this.certificate
|
282
289
|
}
|
283
290
|
|
@@ -286,6 +293,11 @@ export class WebRTCDirectTransport implements Transport, Startable {
|
|
286
293
|
const keyPair = await privateKeyToCryptoKeyPair(privateKey)
|
287
294
|
|
288
295
|
try {
|
296
|
+
if (forceRenew === true) {
|
297
|
+
this.log.trace('forcing renewal of TLS certificate')
|
298
|
+
throw new NotFoundError()
|
299
|
+
}
|
300
|
+
|
289
301
|
this.log.trace('checking for stored TLS certificate')
|
290
302
|
cert = await this.loadCertificate(dsKey, keyPair)
|
291
303
|
} catch (err: any) {
|
@@ -293,10 +305,33 @@ export class WebRTCDirectTransport implements Transport, Startable {
|
|
293
305
|
throw err
|
294
306
|
}
|
295
307
|
|
296
|
-
this.log('generating TLS certificate
|
308
|
+
this.log.trace('generating new TLS certificate')
|
297
309
|
cert = await this.createCertificate(dsKey, keyPair)
|
298
310
|
}
|
299
311
|
|
312
|
+
// set timeout to renew certificate
|
313
|
+
let renewTime = (cert.notAfter.getTime() - (this.init.certificateRenewalThreshold ?? DEFAULT_CERTIFICATE_RENEWAL_THRESHOLD)) - Date.now()
|
314
|
+
|
315
|
+
if (renewTime < 0) {
|
316
|
+
renewTime = 100
|
317
|
+
}
|
318
|
+
|
319
|
+
this.log('will renew TLS certificate after %d ms', renewTime)
|
320
|
+
|
321
|
+
this.renewCertificateTask = setTimeout(() => {
|
322
|
+
this.log('renewing TLS certificate')
|
323
|
+
this.getCertificate(true)
|
324
|
+
.then(cert => {
|
325
|
+
this.certificate = cert
|
326
|
+
this.emitter.safeDispatchEvent('certificate:renew', {
|
327
|
+
detail: cert
|
328
|
+
})
|
329
|
+
})
|
330
|
+
.catch(err => {
|
331
|
+
this.log.error('could not renew certificate - %e', err)
|
332
|
+
})
|
333
|
+
}, renewTime)
|
334
|
+
|
300
335
|
return {
|
301
336
|
pem: cert.toString('pem'),
|
302
337
|
certhash: base64url.encode((await sha256.digest(new Uint8Array(cert.rawData))).bytes)
|
@@ -308,14 +343,16 @@ export class WebRTCDirectTransport implements Transport, Startable {
|
|
308
343
|
const cert = new X509Certificate(buf)
|
309
344
|
|
310
345
|
// check expiry date
|
311
|
-
const
|
346
|
+
const expiryTime = cert.notAfter.getTime() - (this.init.certificateRenewalThreshold ?? DEFAULT_CERTIFICATE_RENEWAL_THRESHOLD)
|
312
347
|
|
313
|
-
if (
|
348
|
+
if (Date.now() > expiryTime) {
|
314
349
|
this.log('stored TLS certificate has expired')
|
315
350
|
// act as if no certificate was present
|
316
351
|
throw new NotFoundError()
|
317
352
|
}
|
318
353
|
|
354
|
+
this.log('loaded certificate, expires in %d ms', expiryTime)
|
355
|
+
|
319
356
|
// check public keys match
|
320
357
|
const exportedCertKey = await cert.publicKey.export(crypto)
|
321
358
|
const rawCertKey = await crypto.subtle.exportKey('raw', exportedCertKey)
|
@@ -329,12 +366,14 @@ export class WebRTCDirectTransport implements Transport, Startable {
|
|
329
366
|
throw new NotFoundError()
|
330
367
|
}
|
331
368
|
|
369
|
+
this.log('loaded certificate, expiry time is %o', expiryTime)
|
370
|
+
|
332
371
|
return cert
|
333
372
|
}
|
334
373
|
|
335
374
|
async createCertificate (dsKey: Key, keyPair: CryptoKeyPair): Promise<X509Certificate> {
|
336
375
|
const notBefore = new Date()
|
337
|
-
const notAfter = new Date(
|
376
|
+
const notAfter = new Date(Date.now() + (this.init.certificateLifespan ?? DEFAULT_CERTIFICATE_LIFESPAN))
|
338
377
|
|
339
378
|
// have to set ms to 0 to work around https://github.com/PeculiarVentures/x509/issues/73
|
340
379
|
notBefore.setMilliseconds(0)
|