# TlsContextBinding

`import { TlsContextBinding } from "destack:tls/binding";`

Context binding family.

```ds title="TlsContextBinding"
export interface TlsContextBinding {
    openTlsContext(options: &'a readonly TlsContextOptions): Result<TlsContextHandle, HostError>;
    closeTlsContext(context: TlsContextHandle): Result<void, HostError>;
    setTlsIdentityPem(context: TlsContextHandle, certificateChainPem: &'a readonly [uint8], privateKeyPem: &'b readonly [uint8]): Result<void, HostError>;
    setTlsTrustAnchorsPem(context: TlsContextHandle, trustAnchorsPem: &'a readonly [uint8]): Result<void, HostError>;
    setTlsCipherSuites(context: TlsContextHandle, suites: &'a readonly [string]): Result<void, HostError>;
    setTlsGroups(context: TlsContextHandle, groups: &'a readonly [string]): Result<void, HostError>;
    setTlsSignatureAlgorithms(context: TlsContextHandle, algorithms: &'a readonly [string]): Result<void, HostError>;
    setTlsHostnameVerification(context: TlsContextHandle, mode: TlsHostnameVerificationMode): Result<void, HostError>;
    setTlsSessionResumption(context: TlsContextHandle, mode: TlsSessionResumptionMode): Result<void, HostError>;
}
```

[language/library/src/tls/binding/context.ds:60:160](https://github.com/destack-sh/destack/blob/main/language/library/src/tls/binding/context.ds#L60-L160)

## Members

### `openTlsContext(options: &'a readonly TlsContextOptions): Result<TlsContextHandle, HostError>`

Open one TLS context.

### `closeTlsContext(context: TlsContextHandle): Result<void, HostError>`

Close one TLS context.

### `setTlsIdentityPem(context: TlsContextHandle, certificateChainPem: &'a readonly [uint8], privateKeyPem: &'b readonly [uint8]): Result<void, HostError>`

Set one local certificate chain and private key on a TLS context.

### `setTlsTrustAnchorsPem(context: TlsContextHandle, trustAnchorsPem: &'a readonly [uint8]): Result<void, HostError>`

Set trust anchors on a TLS context from one PEM bundle.

### `setTlsCipherSuites(context: TlsContextHandle, suites: &'a readonly [string]): Result<void, HostError>`

Set allowed TLS cipher suites for one context.

### `setTlsGroups(context: TlsContextHandle, groups: &'a readonly [string]): Result<void, HostError>`

Set allowed TLS key exchange groups for one context.

### `setTlsSignatureAlgorithms(context: TlsContextHandle, algorithms: &'a readonly [string]): Result<void, HostError>`

Set allowed TLS signature algorithms for one context.

### `setTlsHostnameVerification(context: TlsContextHandle, mode: TlsHostnameVerificationMode): Result<void, HostError>`

Set hostname verification mode for one context.

### `setTlsSessionResumption(context: TlsContextHandle, mode: TlsSessionResumptionMode): Result<void, HostError>`

Set session resumption policy for one context.
