Класс SecurityContext
Объект, содержащий сертификаты, которым следует доверять при установлении защищённого клиентского соединения, а также цепочку сертификатов и закрытый ключ, используемые защищённым сервером.
Классы SecureSocket и SecureServerSocket принимают SecurityContext в качестве аргумента своих методов connect и bind.
Сертификаты и ключи можно добавить в SecurityContext из контейнеров PEM или PKCS12.
Примечание для iOS: некоторые методы добавления, удаления и проверки сертификатов пока не реализованы. Однако можно использовать встроенные доверенные сертификаты платформы с помощью SecurityContext.defaultContext.
Конструкторы
- SecurityContext({bool withTrustedRoots = false}) фабричный
- Создаёт новый SecurityContext.
Свойства
- allowLegacyUnsafeRenegotiation ↔ bool чтение / запись
- Если значение равно
true, SecurityContext разрешает повторное согласование TLS. Повторное согласование поддерживается только на стороне клиента, а HelloRequest должен быть получен в период простоя прикладного протокола. Этого достаточно для поддержки устаревшего сценария запроса нового клиентского сертификата между HTTP-запросом и ответом в (не конвейерном) HTTP/1.1. ПРИМЕЧАНИЕ: повторное согласование — крайне проблематичная функция протокола, и её следует использовать только для связи с устаревшими серверами в средах, где это заведомо безопасно. - hashCode → int только чтениеунаследовано
- Хеш-код этого объекта.
- runtimeType → Type только чтениеунаследовано
- Представление типа объекта во время выполнения.
Методы
- noSuchMethod(
Invocation invocation) → dynamic унаследовано - Вызывается при обращении к несуществующему методу или свойству.
- setAlpnProtocols(
List< String> protocols, bool isServer) → void - Задаёт список протоколов прикладного уровня, поддерживаемых клиентским или серверным соединением. Расширение ALPN (согласование протокола прикладного уровня) для TLS позволяет клиенту отправить список протоколов в сообщении ClientHello, а серверу — выбрать один из них и отправить выбранный протокол в сообщении ServerHello.
- setClientAuthorities(
String file, {String? password}) → void - Задаёт список имён центров сертификации, которые SecureServerSocket будет указывать как принимаемые при запросе клиентского сертификата у подключающегося клиента.
- setClientAuthoritiesBytes(
List< int> authCertBytes, {String? password}) → void - Задаёт список имён центров сертификации, которые SecureServerSocket будет указывать как принимаемые при запросе клиентского сертификата у подключающегося клиента.
- setTrustedCertificates(
String file, {String? password}) → void - Добавляет сертификат в набор доверенных сертификатов X509, используемых клиентскими соединениями SecureSocket.
- setTrustedCertificatesBytes(
List< int> certBytes, {String? password}) → void - Добавляет сертификат в набор доверенных сертификатов X509, используемых клиентскими соединениями SecureSocket.
- toString(
) → String унаследовано - Строковое представление этого объекта.
- useCertificateChain(
String file, {String? password}) → void - Задаёт цепочку сертификатов X509, которую SecureServerSocket использует при установлении защищённых соединений, включая сертификат сервера.
- useCertificateChainBytes(
List< int> chainBytes, {String? password}) → void - Задаёт цепочку сертификатов X509, которую SecureServerSocket использует при установлении защищённых соединений, включая сертификат сервера.
- usePrivateKey(
String file, {String? password}) → void - Задаёт закрытый ключ для сертификата сервера или клиента.
- usePrivateKeyBytes(
List< int> keyBytes, {String? password}) → void - Задаёт закрытый ключ для сертификата сервера или клиента.
Операторы
- operator ==(
Object other) → bool унаследовано - Оператор равенства.
Статические свойства
- alpnSupported → bool только чтение
- Поддерживает ли платформа ALPN. Всегда возвращает true и будет удалено в одном из будущих выпусков.
- defaultContext → SecurityContext только чтение
- Контекст безопасности по умолчанию, используемый большинством операций, которым он требуется.
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-io/SecurityContext-class.html