import "crypto/tls"

RFC 4346として定義されているTLS 1.1プロトコルを部分的に実装しています。

パッケージファイル

alert.go ca_set.go common.go handshake_client.go handshake_messages.go handshake_server.go prf.go record_process.go record_read.go record_write.go tls.go

変数

TLS(Transport Layer Security)暗号プログラム。

var (
    TLS_RSA_WITH_RC4_128_SHA uint16 = 5;
)

CASet型

CASetは証明書のセットです。

type CASet struct {
    // contains unexported fields
}

NewCASet関数

func NewCASet() *CASet

(*CASet) FindParent関数

func (s *CASet) FindParent(cert *x509.Certificate) (parent *x509.Certificate)

FindParentは、与えられた証明書に対して署名を行った証明書をsの中から検索します。該当する親証明書が存在しないときはnilを返します。

(*CASet) SetFromPEM関数

func (s *CASet) SetFromPEM(pemCerts []byte) (ok bool)

SetFromPEMはPEMエンコードされたルート証明書の一連の解析を行います。全証明書の解析に成功したときは、見つけた全証明書をsに追加したのちtrueを返します。
多くのLinuxシステム上の/etc/ssl/cert.pemには、システムワイドなルートCAの情報がこの関数に適したフォーマットで含まれています。

Certificate型

type Certificate struct {
    Certificate [][]byte;
    PrivateKey  *rsa.PrivateKey;
}

Config型

Confing構造体はTLSクライアントまたはサーバーを設定するのに用いられます。TLS関数に受渡した後は、値を変更してはいけません。

type Config struct {
    // Rand provides the source of entropy for nonces and RSA blinding.
    Rand io.Reader;

    // Time returns the current time as the number of seconds since the epoch.
    Time         func() int64;
    Certificates []Certificate;
    RootCAs      *CASet;
}

Conn型

Connはセキュアな接続を表わします。

type Conn struct {
    net.Conn;
    // contains unexported fields
}

Client関数

func Client(conn net.Conn, config *Config) *Conn

Server関数

func Server(conn net.Conn, config *Config) *Conn

(*Conn) Close関数

func (tls *Conn) Close() os.Error

(*Conn) GetConnectionState関数

func (tls *Conn) GetConnectionState() ConnectionState

(*Conn) Read関数

func (tls *Conn) Read(p []byte) (int, os.Error)

(*Conn) SetReadTimeout関数

func (tls *Conn) SetReadTimeout(nsec int64) os.Error

(*Conn) SetTimeout関数

func (tls *Conn) SetTimeout(nsec int64) os.Error

(*Conn) SetWriteTimeout関数

func (tls *Conn) SetWriteTimeout(nsec int64) os.Error

(*Conn) WaitConnectionState関数

func (tls *Conn) WaitConnectionState() ConnectionState

(*Conn) Write関数

func (tls *Conn) Write(p []byte) (int, os.Error)

ConnectionState型

type ConnectionState struct {
    HandshakeComplete bool;
    CipherSuite       string;
    Error             alertType;
}

Listener型

type Listener struct {
    // contains unexported fields
}

NewListener関数

func NewListener(listener net.Listener, config *Config) (l Listener)

NewListenerは内部のリスナーからの接続を受け付けるリスナーを作成し、サーバーとの各接続をラップします。

(Listener) Accept関数

func (l Listener) Accept() (c net.Conn, err os.Error)

(Listener) Addr関数

func (l Listener) Addr() net.Addr

(Listener) Close関数

func (l Listener) Close() os.Error