You are here

class SystemStatusEncryption in System Status 8.2

Encryption logic for system_status.

Hierarchy

Expanded class hierarchy of SystemStatusEncryption

1 file declares its use of SystemStatusEncryption
SystemStatusController.php in src/Controller/SystemStatusController.php
1 string reference to 'SystemStatusEncryption'
system_status.services.yml in ./system_status.services.yml
system_status.services.yml
1 service uses SystemStatusEncryption
system_status.encrypt in ./system_status.services.yml
Drupal\system_status\Services\SystemStatusEncryption

File

src/Services/SystemStatusEncryption.php, line 8

Namespace

Drupal\system_status\Services
View source
class SystemStatusEncryption {

  /**
   * System Status: create a new token.
   */
  public static function getToken() {
    $chars = array_merge(range(0, 9), range('a', 'z'), range('A', 'Z'), range(0, 99));
    shuffle($chars);
    $token = "";
    for ($i = 0; $i < 8; $i++) {
      $token .= $chars[$i];
    }
    return $token;
  }

  /**
   * System Status: encrypt a plaintext message using mcrypt.
   */
  public static function encryptMcrypt($plaintext) {
    $encrypt_token = \Drupal::config('system_status.settings')
      ->get('system_status_encrypt_token');
    $key = hash("SHA256", $encrypt_token, TRUE);
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    $plaintext_utf8 = utf8_encode($plaintext);
    $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $plaintext_utf8, MCRYPT_MODE_CBC, $iv);
    $ciphertext = $iv . $ciphertext;
    return base64_encode($ciphertext);
  }

  /**
   * System Status: encrypt a plaintext message using openssl.
   */
  public static function encryptOpenssl($plaintext) {
    $encrypt_token = \Drupal::config('system_status.settings')
      ->get('system_status_encrypt_token');
    $key = hash("SHA256", $encrypt_token, TRUE);
    $plaintext_utf8 = utf8_encode($plaintext);
    $iv = openssl_random_pseudo_bytes(16);
    $cyphertext = openssl_encrypt($plaintext_utf8, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
    return base64_encode($iv . $cyphertext);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
SystemStatusEncryption::encryptMcrypt public static function System Status: encrypt a plaintext message using mcrypt.
SystemStatusEncryption::encryptOpenssl public static function System Status: encrypt a plaintext message using openssl.
SystemStatusEncryption::getToken public static function System Status: create a new token.