---
name: "Munin::Common::TLS"
section: "3pm"
platform: "linux"
package: "munin-node"
version: "2.0.76-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Munin::Common::TLS"
---

# Munin::Common::TLS(3pm)

Abstract base class implementing the STARTTLS protocol

## NAME

Munin::Node::TLS - Abstract base class implementing the STARTTLS protocol

## SYNOPSIS

Should not be called directly. See synopsis for Munin::Common::TLSServer and Munin::Common::TLSClient.

## METHODS

- **new**

  ```
   my $tls = Munin::Common::TLSFoo->new({ # Substitute Foo with Client or Server
       # Mandatory attributes:
       logger      => \&a_logger_func,
       read_fd     => fileno($socket),
       read_func   => \&a_socket_read_func,
       write_fd    => fileno($socket),
       write_func  => \&a_socket_read_func,
       # Optional attributes                          DEFAULTS
       DEBUG              => 0,                       # 0
       tls_ca_cert        => "path/to/ca/cert.pem",   # ''
       tls_cert           => "path/to/cert.pem",      # ''
       tls_paranoia       => 1,                       # 0
       tls_priv           => "path/to/priv_key.pem",  # ''
       tls_vdepth         => 5,                       # 0
       tls_verify         => 1,                       # 0
   });
  ```

  Constructor. Should not be called directly. This documents the attributes that are in common for Munin::Common::TLSServer and Munin::Common::TLSClient.

- **read**

  ```
   my $msg = $tls->read();
  ```

  Encrypted read.

- **write**

  ```
   $tls->write($msg);
  ```

  Encrypted write.

- **session\_started**

  ```
   my $bool = $tls->session_started();
  ```

  Returns true if the TLS object is ready to read/write encrypted data.
