Documentation
¶
Index ¶
- func CreateTLSConfig(certFile, keyFile string) (*tls.Config, error)
- func DialAddrContext(ctx context.Context, addr string, tlsConfig *tls.Config, ...) (quic.Connection, error)
- func DialAddrContextWithRetry(ctx context.Context, addr string, tlsConfig *tls.Config, ...) (quic.Connection, error)
- func GenerateKeyPair() (crypto.PrivKey, crypto.PubKey, error)
- func SecureChannelWithTLS(addr string, tlsConfig *tls.Config, quicConfig *quic.Config) error
- func SecureP2PNode() (host.Host, error)
- func StartQUICClient(addr string, tlsConfig *tls.Config, quicConfig *quic.Config) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateTLSConfig ¶
CreateTLSConfig loads a TLS certificate and key from files and returns a TLS configuration. In production, certificates and keys should be managed securely.
func DialAddrContext ¶
func DialAddrContext(ctx context.Context, addr string, tlsConfig *tls.Config, quicConfig *quic.Config) (quic.Connection, error)
DialAddrContext dials a QUIC server with a given context, TLS configuration, and QUIC configuration.
func DialAddrContextWithRetry ¶
func DialAddrContextWithRetry(ctx context.Context, addr string, tlsConfig *tls.Config, quicConfig *quic.Config, retries int, initialDelay time.Duration) (quic.Connection, error)
DialAddrContextWithRetry attempts to dial a QUIC server with retries and exponential backoff. retries: number of additional attempts (total attempts = retries + 1) initialDelay: delay for the first retry attempt.
func GenerateKeyPair ¶
GenerateKeyPair creates a new Ed25519 key pair for P2P security.
func SecureChannelWithTLS ¶
SecureChannelWithTLS starts a QUIC listener on the given address using the provided TLS and QUIC configurations. It accepts incoming connections and handles streams concurrently, echoing received data back.
func SecureP2PNode ¶
SecureP2PNode creates and returns a secure libp2p node using a newly generated key pair. Additional libp2p options can be added here as needed.
Types ¶
This section is empty.