Agora RTC Objective-C API Reference Refactor

Data Fields
EncryptionConfig Struct Reference

## Data Fields
ENCRYPTION_MODE | encryptionMode
const char * | encryptionKey
uint8_t | encryptionKdfSalt [32]
bool | datastreamEncryptionEnabled

## Constructor & Destructor Documentation

## ◆ EncryptionConfig()

EncryptionConfig | ( |  | ) |
| inline

## Field Documentation

## ◆ encryptionMode

ENCRYPTION_MODE encryptionMode

The built-in encryption mode. See `ENCRYPTION_MODE`. Agora recommends using `AES_128_GCM2` or `AES_256_GCM2` encrypted mode. These two modes support the use of salt for higher security.

## ◆ encryptionKey

const char* encryptionKey

Encryption key in string type with unlimited length. Agora recommends using a 32-byte key.

Note
  If you do not set an encryption key or set it as `NULL`, you cannot use the built-in encryption, and the SDK returns `-2`.

## ◆ encryptionKdfSalt

uint8_t encryptionKdfSalt[32]

Salt, 32 bytes in length. Agora recommends that you use OpenSSL to generate salt on the server side. See Media Stream Encryption for details.

Note
  This parameter takes effect only in `AES_128_GCM2` or `AES_256_GCM2` encrypted mode. In this case, ensure that this parameter is not `0`.

## ◆ datastreamEncryptionEnabled

bool datastreamEncryptionEnabled

Whether to enable data stream encryption:

- `true`: Enable data stream encryption.
- `false`: (Default) Disable data stream encryption.