credentials

package
v0.0.0-...-40faf7d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 24, 2016 License: Apache-2.0, BSD-3-Clause Imports: 8 Imported by: 0

Documentation

Overview

Package credentials implements various credentials supported by gRPC library, which encapsulate all the state needed by a client to authenticate with a server and make various assertions, e.g., about the client's identity, role, or whether it is authorized to make a particular call.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthInfo

type AuthInfo interface {
	AuthType() string
}

AuthInfo defines the common interface for the auth information the users are interested in.

type PerRPCCredentials

type PerRPCCredentials interface {
	// GetRequestMetadata gets the current request metadata, refreshing
	// tokens if required. This should be called by the transport layer on
	// each request, and the data should be populated in headers or other
	// context. uri is the URI of the entry point for the request. When
	// supported by the underlying implementation, ctx can be used for
	// timeout and cancellation.
	// TODO(zhaoq): Define the set of the qualified keys instead of leaving
	// it as an arbitrary string.
	GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error)
	// RequireTransportSecurity indicates whether the credentials requires
	// transport security.
	RequireTransportSecurity() bool
}

PerRPCCredentials defines the common interface for the credentials which need to attach security information to every RPC (e.g., oauth2).

type ProtocolInfo

type ProtocolInfo struct {
	// ProtocolVersion is the gRPC wire protocol version.
	ProtocolVersion string
	// SecurityProtocol is the security protocol in use.
	SecurityProtocol string
	// SecurityVersion is the security protocol version.
	SecurityVersion string
}

ProtocolInfo provides information regarding the gRPC wire protocol version, security protocol, security protocol version in use, etc.

type TLSInfo

type TLSInfo struct {
	State tls.ConnectionState
}

TLSInfo contains the auth information for a TLS authenticated connection. It implements the AuthInfo interface.

func (TLSInfo) AuthType

func (t TLSInfo) AuthType() string

AuthType returns the type of TLSInfo as a string.

type TransportCredentials

type TransportCredentials interface {
	// ClientHandshake does the authentication handshake specified by the corresponding
	// authentication protocol on rawConn for clients. It returns the authenticated
	// connection and the corresponding auth information about the connection.
	ClientHandshake(addr string, rawConn net.Conn, timeout time.Duration) (net.Conn, AuthInfo, error)
	// ServerHandshake does the authentication handshake for servers. It returns
	// the authenticated connection and the corresponding auth information about
	// the connection.
	ServerHandshake(rawConn net.Conn) (net.Conn, AuthInfo, error)
	// Info provides the ProtocolInfo of this TransportCredentials.
	Info() ProtocolInfo
}

TransportCredentials defines the common interface for all the live gRPC wire protocols and supported transport security protocols (e.g., TLS, SSL).

func NewClientTLSFromCert

func NewClientTLSFromCert(cp *x509.CertPool, serverName string) TransportCredentials

NewClientTLSFromCert constructs a TLS from the input certificate for client.

func NewClientTLSFromFile

func NewClientTLSFromFile(certFile, serverName string) (TransportCredentials, error)

NewClientTLSFromFile constructs a TLS from the input certificate file for client.

func NewServerTLSFromCert

func NewServerTLSFromCert(cert *tls.Certificate) TransportCredentials

NewServerTLSFromCert constructs a TLS from the input certificate for server.

func NewServerTLSFromFile

func NewServerTLSFromFile(certFile, keyFile string) (TransportCredentials, error)

NewServerTLSFromFile constructs a TLS from the input certificate file and key file for server.

func NewTLS

func NewTLS(c *tls.Config) TransportCredentials

NewTLS uses c to construct a TransportCredentials based on TLS.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL