You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.2 KiB

<?php
use ioncube\phpOpensslCryptor\Cryptor;
class SWPSMTPUtils {
var $enc_key;
protected static $instance = null;
function __construct() {
require_once('inc/Cryptor.php');
$key = get_option( 'swpsmtp_enc_key', false );
if ( empty( $key ) ) {
$key = wp_salt();
update_option( 'swpsmtp_enc_key', $key );
}
$this->enc_key = $key;
}
public static function get_instance() {
// If the single instance hasn't been set, set it now.
if ( null == self::$instance ) {
self::$instance = new self;
}
return self::$instance;
}
static function base64_decode_maybe( $str ) {
if ( ! function_exists( 'mb_detect_encoding' ) ) {
return base64_decode( $str );
}
if ( mb_detect_encoding( $str ) === mb_detect_encoding( base64_decode( base64_encode( base64_decode( $str ) ) ) ) ) {
$str = base64_decode( $str );
}
return $str;
}
function encrypt_password( $pass ) {
if ( $pass === '' ) {
return '';
}
$password = Cryptor::Encrypt( $pass, $this->enc_key );
return $password;
}
function decrypt_password( $pass ) {
$password = Cryptor::Decrypt( $pass, $this->enc_key );
return $password;
}
}