33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
import * as plugins from '../../plugins.js';
|
|
|
|
// Augment the Node.js Socket type to include TLS-related properties
|
|
// This helps TypeScript understand properties that are dynamically added by Node.js
|
|
declare module 'net' {
|
|
interface Socket {
|
|
// TLS-related properties
|
|
encrypted?: boolean; // Indicates if the socket is encrypted (TLS/SSL)
|
|
authorizationError?: Error; // Authentication error if TLS handshake failed
|
|
|
|
// TLS-related methods
|
|
getTLSVersion?(): string; // Returns the TLS version (e.g., 'TLSv1.2', 'TLSv1.3')
|
|
getPeerCertificate?(detailed?: boolean): any; // Returns the peer's certificate
|
|
getSession?(): Buffer; // Returns the TLS session data
|
|
}
|
|
}
|
|
|
|
// Export a utility function to check if a socket is a TLS socket
|
|
export function isTLSSocket(socket: plugins.net.Socket): boolean {
|
|
return 'encrypted' in socket && !!socket.encrypted;
|
|
}
|
|
|
|
// Export a utility function to safely get the TLS version
|
|
export function getTLSVersion(socket: plugins.net.Socket): string | null {
|
|
if (socket.getTLSVersion) {
|
|
try {
|
|
return socket.getTLSVersion();
|
|
} catch (e) {
|
|
return null;
|
|
}
|
|
}
|
|
return null;
|
|
} |