1/*2Maddy Mail Server - Composable all-in-one email server.3Copyright © 2019-2020 Max Mazurov <fox.cpp@disroot.org>, Maddy Mail Server contributors45This program is free software: you can redistribute it and/or modify6it under the terms of the GNU General Public License as published by7the Free Software Foundation, either version 3 of the License, or8(at your option) any later version.910This program is distributed in the hope that it will be useful,11but WITHOUT ANY WARRANTY; without even the implied warranty of12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the13GNU General Public License for more details.1415You should have received a copy of the GNU General Public License16along with this program. If not, see <https://www.gnu.org/licenses/>.17*/1819package module2021import (22 "crypto/tls"23)2425// TLSLoader interface is module interface that can be used to supply TLS26// certificates to TLS-enabled endpoints.27//28// The interface is intentionally kept simple, all configuration and parameters29// necessary are to be provided using conventional module configuration.30//31// If loader returns multiple certificate chains - endpoint will serve them32// based on SNI matching.33//34// Note that loading function will be called for each connections - it is35// highly recommended to cache parsed form.36//37// Modules implementing this interface should be registered with prefix38// "tls.loader." in name.39type TLSLoader interface {40 ConfigureTLS(c *tls.Config) error41}