package runtime

// TODO(krakauer): comments

import (
	"net"
	"time"

	// TODO(krakauer): this should probably only be here, not in the grpc pacakge.
	"google.golang.org/grpc/credentials"

	"v.io/x/ref/runtime/internal/flow/conn/grpc"
)

func ClientHandshake(addr string, rawConn net.Conn, timeout time.Duration) (net.Conn, credentials.AuthInfo, error) {
	return grpc.ClientHandshake(addr, rawConn, timeout)
}

func ServerHandshake(rawConn net.Conn) (net.Conn, credentials.AuthInfo, error) {
	return grpc.ServerHandshake(rawConn)
}

func SecurityProtocol() string {
	return grpc.SecurityProtocol()
}

func SecurityVersion() string {
	return grpc.SecurityVersion()
}
