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
Trackback URL
Leave a comment
Comments