NetworkSecurityConfig


public final class NetworkSecurityConfig
extends Object

java.lang.Object
   ↳ android.security.net.config.NetworkSecurityConfig


The security configuration to use when performing network communications.

A NetworkSecurityConfig can specify security requirements for all network communications, or for communications with a specific domain or localhost connections.

Summary

Nested classes

class NetworkSecurityConfig.Builder

Builder for creating NetworkSecurityConfig objects. 

Public methods

static NetworkSecurityConfig createBaseConfig(Context context)

Returns a base NetworkSecurityConfig using the provided app's defaults.

static NetworkSecurityConfig createLocalhostConfig()

Returns a NetworkSecurityConfig for localhost.

int getDomainEncryptionMode()
boolean isCertificateTransparencyVerificationRequired()
boolean isCleartextTrafficPermitted()

Inherited methods

Public methods

createBaseConfig

Added in API level 10000
public static NetworkSecurityConfig createBaseConfig (Context context)

Returns a base NetworkSecurityConfig using the provided app's defaults.

An app default configuration has the following properties:

  1. If the application targets API level 27 (Android O MR1) or lower, cleartext traffic is allowed by default.
  2. Cleartext traffic is not permitted for ephemeral apps.
  3. No certificate pinning is used.
  4. The system certificate store is trusted for connections.
  5. If the application targets API level 23 (Android M) or lower than the user certificate store is trusted by default as well for non-privileged applications.
  6. Privileged applications do not trust the user certificate store on Android P and higher.

Parameters
context Context: of the application. Must not be null.

Returns
NetworkSecurityConfig the application NetworkSecurityConfig, or null if the config cannot be found.

createLocalhostConfig

Added in API level 10000
public static NetworkSecurityConfig createLocalhostConfig ()

Returns a NetworkSecurityConfig for localhost.

The localhost configuration has the following properties:

  1. Cleartext traffic is permitted.
  2. Certificate Transparency is disabled.

Returns
NetworkSecurityConfig the NetworkSecurityConfig.
This value cannot be null.

isCertificateTransparencyVerificationRequired

Added in API level 10000
public boolean isCertificateTransparencyVerificationRequired ()

Returns
boolean true if Certificate Transparency is required for this NetworkSecurityConfig.

isCleartextTrafficPermitted

Added in API level 10000
public boolean isCleartextTrafficPermitted ()

Returns
boolean true if cleartext traffic is permitted for this NetworkSecurityConfig.