1<?php 2 3/** 4 * Password Protected Trait for Private Keys 5 * 6 * PHP version 5 7 * 8 * @author Jim Wigginton <terrafrost@php.net> 9 * @copyright 2015 Jim Wigginton 10 * @license http://www.opensource.org/licenses/mit-license.html MIT License 11 * @link http://phpseclib.sourceforge.net 12 */ 13 14namespace phpseclib3\Crypt\Common\Traits; 15 16/** 17 * Password Protected Trait for Private Keys 18 * 19 * @author Jim Wigginton <terrafrost@php.net> 20 */ 21trait PasswordProtected 22{ 23 /** 24 * Password 25 * 26 * @var string|bool 27 */ 28 private $password = false; 29 30 /** 31 * Sets the password 32 * 33 * Private keys can be encrypted with a password. To unset the password, pass in the empty string or false. 34 * Or rather, pass in $password such that empty($password) && !is_string($password) is true. 35 * 36 * @see self::createKey() 37 * @see self::load() 38 * @param string|bool $password 39 */ 40 public function withPassword($password = false) 41 { 42 $new = clone $this; 43 $new->password = $password; 44 return $new; 45 } 46} 47