/**
  * Generates an RSA-SHA1 signature.
  *
  * @package s2Member\Utilities
  * @since 111017
  *
  * @param str $string Input string/data, to be signed by this routine.
  * @param str $key The secret key that will be used in this signature.
  * @return str|bool An RSA-SHA1 signature string, or false on failure.
  */
 public static function rsa_sha1_sign($string = FALSE, $key = FALSE)
 {
     $key = c_ws_plugin__s2member_utils_strings::_rsa_sha1_key_fix_wrappers((string) $key);
     /**/
     $signature = c_ws_plugin__s2member_utils_strings::_rsa_sha1_shell_sign((string) $string, (string) $key);
     /**/
     if (empty($signature) && stripos(PHP_OS, "win") === 0 && file_exists($openssl = "c:\\openssl-win32\\bin\\openssl.exe")) {
         $signature = c_ws_plugin__s2member_utils_strings::_rsa_sha1_shell_sign((string) $string, (string) $key, $openssl);
     }
     /**/
     if (empty($signature) && stripos(PHP_OS, "win") === 0 && file_exists($openssl = "c:\\openssl-win64\\bin\\openssl.exe")) {
         $signature = c_ws_plugin__s2member_utils_strings::_rsa_sha1_shell_sign((string) $string, (string) $key, $openssl);
     }
     /**/
     if (empty($signature) && function_exists("openssl_get_privatekey") && function_exists("openssl_sign") && is_resource($private_key = openssl_get_privatekey((string) $key))) {
         openssl_sign((string) $string, $signature, $private_key, OPENSSL_ALGO_SHA1) . openssl_free_key($private_key);
     }
     /**/
     if (empty($signature)) {
         /* Now, if we're still empty, trigger an error here. */
         trigger_error("s2Member was unable to generate an RSA-SHA1 signature." . " Please make sure your installation of PHP is compiled with OpenSSL: `openssl_sign()`." . " See: http://php.net/manual/en/function.openssl-sign.php", E_USER_ERROR);
     }
     /**/
     return !empty($signature) ? $signature : false;
 }
 /**
  * Generates an RSA-SHA1 signature.
  *
  * @package s2Member\Utilities
  * @since 111017
  *
  * @param string $string Input string/data, to be signed by this routine.
  * @param string $key The secret key that will be used in this signature.
  *
  * @return string|bool An RSA-SHA1 signature string, or false on failure.
  */
 public static function rsa_sha1_sign($string = '', $key = '')
 {
     $key = c_ws_plugin__s2member_utils_strings::_rsa_sha1_key_fix_wrappers((string) $key);
     $signature = c_ws_plugin__s2member_utils_strings::_rsa_sha1_shell_sign((string) $string, (string) $key);
     if (empty($signature) && stripos(PHP_OS, 'win') === 0 && file_exists($openssl = 'c:\\openssl-win32\\bin\\openssl.exe')) {
         $signature = c_ws_plugin__s2member_utils_strings::_rsa_sha1_shell_sign((string) $string, (string) $key, $openssl);
     }
     if (empty($signature) && stripos(PHP_OS, 'win') === 0 && file_exists($openssl = 'c:\\openssl-win64\\bin\\openssl.exe')) {
         $signature = c_ws_plugin__s2member_utils_strings::_rsa_sha1_shell_sign((string) $string, (string) $key, $openssl);
     }
     if (empty($signature) && function_exists('openssl_get_privatekey') && function_exists('openssl_sign') && is_resource($private_key = openssl_get_privatekey((string) $key))) {
         openssl_sign((string) $string, $signature, $private_key, OPENSSL_ALGO_SHA1) . openssl_free_key($private_key);
     }
     if (empty($signature)) {
         // Now, if we're still empty, trigger an error here.
         trigger_error('s2Member was unable to generate an RSA-SHA1 signature.' . ' Please make sure your installation of PHP is compiled with OpenSSL: `openssl_sign()`.' . ' See: http://php.net/manual/en/function.openssl-sign.php', E_USER_ERROR);
     }
     return !empty($signature) ? $signature : FALSE;
 }