mirror of
				https://source.quilibrium.com/quilibrium/ceremonyclient.git
				synced 2025-11-04 03:07:28 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Package sec provides secure connection and transport interfaces for libp2p.
 | 
						|
package sec
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"fmt"
 | 
						|
	"net"
 | 
						|
 | 
						|
	"github.com/libp2p/go-libp2p/core/network"
 | 
						|
	"github.com/libp2p/go-libp2p/core/peer"
 | 
						|
	"github.com/libp2p/go-libp2p/core/protocol"
 | 
						|
)
 | 
						|
 | 
						|
// SecureConn is an authenticated, encrypted connection.
 | 
						|
type SecureConn interface {
 | 
						|
	net.Conn
 | 
						|
	network.ConnSecurity
 | 
						|
}
 | 
						|
 | 
						|
// A SecureTransport turns inbound and outbound unauthenticated,
 | 
						|
// plain-text, native connections into authenticated, encrypted connections.
 | 
						|
type SecureTransport interface {
 | 
						|
	// SecureInbound secures an inbound connection.
 | 
						|
	// If p is empty, connections from any peer are accepted.
 | 
						|
	SecureInbound(ctx context.Context, insecure net.Conn, p peer.ID) (SecureConn, error)
 | 
						|
 | 
						|
	// SecureOutbound secures an outbound connection.
 | 
						|
	SecureOutbound(ctx context.Context, insecure net.Conn, p peer.ID) (SecureConn, error)
 | 
						|
 | 
						|
	// ID is the protocol ID of the security protocol.
 | 
						|
	ID() protocol.ID
 | 
						|
}
 | 
						|
 | 
						|
type ErrPeerIDMismatch struct {
 | 
						|
	Expected peer.ID
 | 
						|
	Actual   peer.ID
 | 
						|
}
 | 
						|
 | 
						|
func (e ErrPeerIDMismatch) Error() string {
 | 
						|
	return fmt.Sprintf("peer id mismatch: expected %s, but remote key matches %s", e.Expected, e.Actual)
 | 
						|
}
 | 
						|
 | 
						|
var _ error = (*ErrPeerIDMismatch)(nil)
 |