import "crypto/tls"
このパッケージは、RFC 4346として定義されているTLS 1.1プロトコルの一部を実装しています。
パッケージファイル
alert.go ca_set.go common.go conn.go handshake_client.go handshake_messages.go handshake_server.go prf.go tls.go
定数
TLS(Transport Layer Security)暗号プログラム。
const (
TLS_RSA_WITH_RC4_128_SHA uint16 = 5
)
func Dial
func Dial(network, laddr, raddr string) (net.Conn, os.Error)
func Listen
func Listen(network, laddr string, config *Config) (net.Listener, os.Error)
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
}
LoadX509KeyPair関数
func LoadX509KeyPair(certFile string, keyFile string) (cert Certificate, err os.Error)
LoadX509KeyPair
Config型
Confing構造体は、TLSクライアントまたはサーバーを設定するのに用いられます。TLS関数に受渡した後は、値を変更してはいけません。
type Config struct {
// Randは、エントロピーのソースとして、noncesとRSA blindingに使用されます。
Rand io.Reader
// Timeは、カレントの時間をエポック秒で返します。
Time func() int64
Certificates []Certificate
RootCAs *CASet
// NextProtosは、サポートしているアプリケーションレベルのプロトコルリストです。
// 今のところ、サーバ側におけるハンドリングのみサポートしています。
NextProtos []string
// ServerNameは、仮想ホストをサポートするため、クライアントのハンドシェークに
// インクルードされている
ServerName string
}
Conn型
Connはセキュアな接続を表わします。この型は、net.Connインタフェースを実装しています。
type Conn struct {
// contains unexported fields
}
Client関数
func Client(conn net.Conn, config *Config) *Conn
Server関数
func Server(conn net.Conn, config *Config) *Conn
(*Conn) Close関数
func (c *Conn) Close() os.Error
(*Conn) ConnectionState関数
func (c *Conn) ConnectionState() ConnectionState
ConnectionStateは、コネクションについてのbasic TLS の詳細を返します。
(*Conn) Handshake関数
func (c *Conn) Handshake() os.Error
Handshakeは、クライアントまたはサーバのハンドシェイクプロトコルが、まだ実行されていなければ実行します。このパッケージを利用するほとんどの場合、明示的にハンドシェイクを行う必要はありません。これは最初にReadまたはWriteを呼び出したときに自動的に行われるためです。
(*Conn) LocalAddr関数
func (c *Conn) LocalAddr() net.Addr
LocalAddrは、ローカルのネットワークアドレスを返します。
(*Conn) OCSPResponse関数
func (c *Conn) OCSPResponse() []byte
OCSPResponseは、可能であれば、TLSサーバからのStapled OCSPレスポンスを返します。(クライアント接続でのみ有効)
(*Conn) PeerCertificates関数
func (c *Conn) PeerCertificates() []*x509.Certificate
PeerCertificatesは、相手から提示された証明書チェーンを返します。
(*Conn) Read関数
func (c *Conn) Read(b []byte) (n int, err os.Error)
Readは、一定時間経過したときにタイムアウトとなり、err == os.EAGAINを返します。SetTimeoutとSetReadTimeoutを参照ください。
(*Conn) RemoteAddr関数
func (c *Conn) RemoteAddr() net.Addr
RemoteAddrは、リモートのネットワークアドレスを返します。
(*Conn) SetReadTimeout関数
func (c *Conn) SetReadTimeout(nsec int64) os.Error
SetReadTimeoutは、Readがos.EAGAINを返すまでのデータを待つ時間(ナノ秒)を設定します。nsecに0(デフォルト)を設定すると期限が無効になります。
(*Conn) SetTimeout関数
func (c *Conn) SetTimeout(nsec int64) os.Error
SetTimeoutは、接続の読み込み期限を設定します。書き込み期限はありません。
(*Conn) SetWriteTimeout関数
func (c *Conn) SetWriteTimeout(nsec int64) os.Error
SetWriteTimeoutは、net.Connインタフェースを満たすために存在しますが、TLSには実装されていません。この関数は常にエラーを返します。
(*Conn) Write関数
func (c *Conn) Write(b []byte) (n int, err os.Error)
Write は、接続にデータを書き込みます。
ConnectionState型
type ConnectionState struct {
HandshakeComplete bool
CipherSuite uint16
NegotiatedProtocol string
}
Listener型
type Listener struct {
// contains unexported fields
}
NewListener関数
func NewListener(listener net.Listener, config *Config) (l *Listener)
NewListenerは、内部のリスナーから接続を受け付けるためのリスナーを作成し、サーバとの各接続をラップします。設定configは、nilであってはならず、ひとつ以上の証明書が含まれていなければなりません。
(*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
Comments