1<?php 2 3/** 4 * This file is part of the FreeDSx SASL package. 5 * 6 * (c) Chad Sikorra <Chad.Sikorra@gmail.com> 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12namespace FreeDSx\Sasl\Mechanism; 13 14use FreeDSx\Sasl\Challenge\ChallengeInterface; 15use FreeDSx\Sasl\Security\SecurityLayerInterface; 16use FreeDSx\Sasl\SecurityStrength; 17 18/** 19 * Common methods mechanisms must implement. 20 * 21 * @author Chad Sikorra <Chad.Sikorra@gmail.com> 22 */ 23interface MechanismInterface 24{ 25 /** 26 * Retrieve the registered name for this SASL mechanism. 27 */ 28 public function getName(): string; 29 30 /** 31 * Describes various security related aspects of the mechanism. 32 */ 33 public function securityStrength(): SecurityStrength; 34 35 /** 36 * Get the challenge object for this mechanism. 37 */ 38 public function challenge(): ChallengeInterface; 39 40 /** 41 * Get the security layer object for this mechanism. 42 */ 43 public function securityLayer(): SecurityLayerInterface; 44} 45