github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/crypto/tls/cipher_suites.go (about) 1 // Copyright 2010 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package tls 6 7 // CipherSuiteはTLSの暗号スイートです。このパッケージのほとんどの関数は、この型の代わりに暗号スイートのIDを受け入れて公開します。 8 type CipherSuite struct { 9 ID uint16 10 Name string 11 12 // Supported versionsは、この暗号スイートをネゴシエートできるTLSプロトコルのバージョンのリストです。 13 SupportedVersions []uint16 14 15 // Insecureは、そのプリミティブ、設計、または実装による既知のセキュリティ問題があるため、暗号スイートが安全ではない場合にtrueとなります。 16 Insecure bool 17 } 18 19 // CipherSuitesは、このパッケージで現在実装されている暗号スイートのリストを返します。 20 // ただし、セキュリティ上の問題があるものは [InsecureCipherSuites] によって返されます。 21 // 22 // このリストはIDでソートされています。このパッケージによって選択されるデフォルトの暗号スイートが、 23 // 静的なリストでは捉えることができないロジックに依存している場合があり、 24 // この関数によって返されるものと一致しない場合があります。 25 func CipherSuites() []*CipherSuite 26 27 // InsecureCipherSuitesは、現在このパッケージで実装されているセキュリティ上の問題を抱えた暗号スイートのリストを返します。 28 // ほとんどのアプリケーションは、このリストに含まれる暗号スイートを使用すべきではありません。代わりに、 [CipherSuites] で返されるスイートのみを使用するべきです。 29 func InsecureCipherSuites() []*CipherSuite 30 31 // CipherSuiteNameは渡された暗号スイートIDの標準名 32 // (例:「TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256」)を返します。 33 // もしこのパッケージで暗号スイートが実装されていない場合は、IDの値をフォールバック表現として返します。 34 func CipherSuiteName(id uint16) string 35 36 // このパッケージで実装されている、または実装されていた暗号スイートのIDのリストです。 37 // 38 // 詳細は、https://www.iana.org/assignments/tls-parameters/tls-parameters.xml を参照してください。 39 const ( 40 // TLS 1.0 - 1.2の暗号スイート。 41 TLS_RSA_WITH_RC4_128_SHA uint16 = 0x0005 42 TLS_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0x000a 43 TLS_RSA_WITH_AES_128_CBC_SHA uint16 = 0x002f 44 TLS_RSA_WITH_AES_256_CBC_SHA uint16 = 0x0035 45 TLS_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0x003c 46 TLS_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0x009c 47 TLS_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0x009d 48 TLS_ECDHE_ECDSA_WITH_RC4_128_SHA uint16 = 0xc007 49 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA uint16 = 0xc009 50 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA uint16 = 0xc00a 51 TLS_ECDHE_RSA_WITH_RC4_128_SHA uint16 = 0xc011 52 TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xc012 53 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA uint16 = 0xc013 54 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA uint16 = 0xc014 55 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 uint16 = 0xc023 56 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0xc027 57 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0xc02f 58 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 uint16 = 0xc02b 59 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0xc030 60 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 uint16 = 0xc02c 61 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xcca8 62 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xcca9 63 64 // TLS 1.3サイファースイート。 65 TLS_AES_128_GCM_SHA256 uint16 = 0x1301 66 TLS_AES_256_GCM_SHA384 uint16 = 0x1302 67 TLS_CHACHA20_POLY1305_SHA256 uint16 = 0x1303 68 69 // TLS_FALLBACK_SCSVは標準の暗号スイートではなく、クライアントがバージョンのフォールバックを行っていることを示すものです。RFC 7507を参照してください。 70 TLS_FALLBACK_SCSV uint16 = 0x5600 71 72 // 正しい_SHA256サフィックスを持つ対応する暗号スイートのためのレガシー名前 73 // 互換性のために保持されています。 74 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 = TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 75 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 = TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 76 )