/** * @param $bits * @return KeyPair */ public function buildKeyPair($bits) { $this->rsa_imp->setPrivateKeyFormat(CRYPT_RSA_PRIVATE_FORMAT_PKCS1); $this->rsa_imp->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_PKCS1); $list = $this->rsa_imp->createKey($bits); return new KeyPair(new _RSAPublicKeyPEMFornat($list['publickey']), new _RSAPrivateKeyPEMFornat($list['privatekey'])); }
function generateAndAdd() { $rsa = new \Crypt_RSA(); $rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_OPENSSH); $this->set($rsa->createKey()); $this->save(); }
/** * Generate an SSH public / private key pair * @return array */ public static function generateKeyPair() { $publickey = ''; $privatekey = ''; $rsa = new \Crypt_RSA(); $rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_OPENSSH); extract($rsa->createKey()); $publickey = str_replace('phpseclib-generated-key', self::SSH_KEY_NAME, $publickey); return array($publickey, $privatekey); }
private function generateSshKeys() { $rsa = new \Crypt_RSA(); $rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_OPENSSH); $rsa->setPassword(\OC::$server->getConfig()->getSystemValue('secret', '')); $key = $rsa->createKey(); // Replace the placeholder label with a more meaningful one $key['publicKey'] = str_replace('phpseclib-generated-key', gethostname(), $key['publickey']); return $key; }
/** * Generates random key with optonal passphrase and stores it * in the model */ function generateKey($pack = null) { $rsa = new Crypt_RSA(); if ($pack) { $rsa->setPassword($pack); } $rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_OPENSSH); $key = $rsa->createKey(); $this['kind'] = 'key'; $this['host'] = '*'; $this['data'] = $key['privatekey']; $this['is_secure'] = (bool) $pack; $this['notes'] = $key['publickey']; }
public function creat_public_key() { $oldIncludePath = get_include_path(); $include = realpath(dirname(__FILE__)); set_include_path($include . DIRECTORY_SEPARATOR . 'CryptLib'); include_once 'Crypt/RSA.php'; $rsa = new Crypt_RSA(); $rsa->setPrivateKeyFormat(CRYPT_RSA_PRIVATE_FORMAT_PKCS1); $rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_PKCS1); //define('CRYPT_RSA_EXPONENT', 65537); //define('CRYPT_RSA_SMALLEST_PRIME', 64); // makes it so multi-prime RSA is used $a = $rsa->createKey(); // == $rsa->createKey(1024) where 1024 is the key size return $a; }
public function encrypt() { $binaryKey = bin2hex(base64_decode(GOOGLE_DEFAULT_PUBLIC_KEY)); $half = substr($binaryKey, 8, 256); $modulus = new Math_BigInteger(hex2bin($half), 256); $half = substr($binaryKey, 272, 6); $exponent = new Math_BigInteger(hex2bin($half), 256); $sha1 = sha1(base64_decode($googleDefaultPublicKey), true); $signature = "00" . bin2hex(substr($sha1, 0, 4)); $rsa = new Crypt_RSA(); $rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_RAW); $rsa->loadKey(array("n" => $modulus, "e" => $exponent)); $rsa->setPublicKey(); $plain = "{$email}{$password}"; $rsa->setEncryptionMode("CRYPT_RSA_ENCRYPTION_OAEP"); $encrypted = bin2hex($rsa->encrypt($plain)); $output = hex2bin($signature . $encrypted); $b64EncryptedPasswd = str_replace(array("+", "/"), array("-", "_"), mb_convert_encoding(base64_encode($output), "US-ASCII")); return $b64EncryptedPasswd; }
public function encryptPassword($email, $password) { $googleDefaultPublicKey = "AAAAgMom/1a/v0lblO2Ubrt60J2gcuXSljGFQXgcyZWveWLEwo6prwgi3iJIZdodyhKZQrNWp5nKJ3srRXcUW+F1BD3baEVGcmEgqaLZUNBjm057pKRI16kB0YppeGx5qIQ5QjKzsR8ETQbKLNWgRY0QRNVz34kMJR3P/LgHax/6rmf5AAAAAwEAAQ=="; $binaryKey = bin2hex(base64_decode($googleDefaultPublicKey)); $half = substr($binaryKey, 8, 256); $modulus = new Math_BigInteger(hex2bin($half), 256); $half = substr($binaryKey, 272, 6); $exponent = new Math_BigInteger(hex2bin($half), 256); $sha1 = sha1(base64_decode($googleDefaultPublicKey), true); $signature = "00" . bin2hex(substr($sha1, 0, 4)); $rsa = new Crypt_RSA(); $rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_RAW); $rsa->loadKey(array("n" => $modulus, "e" => $exponent)); $rsa->setPublicKey(); $plain = "{$email}{$password}"; $rsa->setEncryptionMode("CRYPT_RSA_ENCRYPTION_OAEP"); $encrypted = bin2hex($rsa->encrypt($plain)); $output = hex2bin($signature . $encrypted); $b64EncryptedPasswd = str_replace(array("+", "/"), array("-", "_"), mb_convert_encoding(base64_encode($output), "US-ASCII")); return $b64EncryptedPasswd; }
public function rsa_encrypt($input_str, $key) { $rsa = new Crypt_RSA(); $rsa->setPrivateKeyFormat(CRYPT_RSA_PRIVATE_FORMAT_PKCS1); $rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_PKCS1); $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1); $public_key = array('n' => new Math_BigInteger($key, 16), 'e' => new Math_BigInteger('65537', 10)); $rsa->loadKey($public_key, CRYPT_RSA_PUBLIC_FORMAT_RAW); return $rsa->encrypt($input_str); }
public function git_ssh_gen() { //errors need to be on while experimental error_reporting(E_ALL); ini_set("display_errors", 1); $gitpath = preg_replace("#/\$#", "", sanitize_text_field($_POST['sshpath'])); //create the folder if doesn't exist if (!file_exists($gitpath)) { mkdir($gitpath, 0700); } //create known hosts if doesn't exist if (!file_exists($gitpath . "/known_hosts")) { touch($gitpath . "/known_hosts"); chmod($gitpath . "/known_hosts", 0700); } //create keys if not exist if (!file_exists($gitpath . "/id_rsa") || !file_exists($gitpath . "/id_rsa.pub")) { set_include_path(get_include_path() . PATH_SEPARATOR . plugin_dir_path(__FILE__) . 'git/phpseclib'); include 'Crypt/RSA.php'; $rsa = new Crypt_RSA(); $rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_OPENSSH); extract($rsa->createKey()); // == $rsa->createKey(1024) where 1024 is the key size - $privatekey and $publickey //create private key file_put_contents($gitpath . "/id_rsa", $privatekey); chmod($gitpath . "/id_rsa", 0700); //create public key file_put_contents($gitpath . "/id_rsa.pub", $publickey); chmod($gitpath . "/id_rsa.pub", 0700); } //return public key echo "\n\n" . file_get_contents($gitpath . "/id_rsa.pub") . "\n\n"; die; }
<?php set_time_limit(0); if (file_exists('private.key')) { echo base64_encode(file_get_contents('private.key')); } else { include 'Crypt/RSA.php'; $rsa = new Crypt_RSA(); $rsa->setHash('sha1'); $rsa->setMGFHash('sha1'); $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_OAEP); $rsa->setPrivateKeyFormat(CRYPT_RSA_PRIVATE_FORMAT_PKCS1); $rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_PKCS1); $res = $rsa->createKey(1024); $privateKey = $res['privatekey']; $publicKey = $res['publickey']; file_put_contents('public.key', $publicKey); file_put_contents('private.key', $privateKey); echo base64_encode($privateKey); }
exit('Critical error while installing ! Unable to write to /conf/secret.keys.ini !'); } if (is_writable(CONF_API_KEY_INI)) { $handle = fopen(CONF_API_KEY_INI, 'w'); $data = "; API KEY FILE\nAPP_API_KEY \t\t= \"" . $APP_API_KEY . "\"\n"; fwrite($handle, $data); fclose($handle); unset($handle); } else { exit('Critical error while installing ! Unable to write to /conf/api.conf.ini !'); } //---------------------------------------------------------+ // Generating RSA Keys if (is_writable(RSA_KEYS_DIR)) { $rsa = new Crypt_RSA(); $rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_OPENSSH); $keypair = $rsa->createKey(2048); $handle = fopen(RSA_PRIVATE_KEY_FILE, 'w'); $data = $keypair['privatekey']; fwrite($handle, $data); fclose($handle); unset($handle); $handle = fopen(RSA_PUBLIC_KEY_FILE, 'w'); $data = $keypair['publickey']; fwrite($handle, $data); fclose($handle); unset($handle); } else { exit('Critical error while installing ! Unable to write to /app/crypto/ !'); } //---------------------------------------------------------+
public static function encrypt_value($encrypt_key_id, $value) { $encrypt_key = self::get_encrypt_key($encrypt_key_id); if ($encrypt_key && $encrypt_key['public_key']) { $dir = getcwd(); chdir('includes/plugin_encrypt/phpseclib/'); require_once 'Crypt/RSA.php'; chdir($dir); // if encrypt fails return plain tet $rsa = new Crypt_RSA(); //echo "Public Key: '".$encrypt_key['public_key']."'\n\n"; $rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_RAW); $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1); $public_key = array('n' => new Math_BigInteger($encrypt_key['public_key'], 16), 'e' => new Math_BigInteger($encrypt_key['e'], 16)); $rsa->loadKey($public_key, CRYPT_RSA_PUBLIC_FORMAT_RAW); $ciphertext = $rsa->encrypt($value); return bin2hex($ciphertext); } return false; }
<?php if (!isset($_POST) || empty($_POST['pcname'])) { exit; } set_include_path(get_include_path() . PATH_SEPARATOR . 'lib'); include 'lib/Crypt/RSA.php'; $rsa = new Crypt_RSA(); $rsa->setPrivateKeyFormat(CRYPT_RSA_PRIVATE_FORMAT_XML); $rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_XML); extract($rsa->createKey(2048)); $pcname = $_POST['pcname']; $username = $_POST['username']; include 'db.php'; $stmt = $connection->prepare('INSERT INTO dummy (pcname, username, privatekey) VALUES (?, ?, ?)'); $stmt->execute([$pcname, $username, $privatekey]); //var_dump($privatekey); echo $publickey;
/** * @return array */ public function DoGetPublicKey() { if ($this->Config()->Get('security', 'use_rsa_encryption', false)) { \RainLoop\Service::$__HIDE_ERROR_NOTICES = true; if (!\class_exists('Crypt_RSA')) { \set_include_path(\get_include_path() . PATH_SEPARATOR . APP_VERSION_ROOT_PATH . 'app/libraries/phpseclib'); \defined('CRYPT_RSA_MODE') || \define('CRYPT_RSA_MODE', CRYPT_RSA_MODE_INTERNAL); include_once 'Crypt/RSA.php'; } $oRsa = new \Crypt_RSA(); $oRsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_RAW); $aKeys = $oRsa->createKey(1024); if (!empty($aKeys['privatekey']) && !empty($aKeys['publickey']['e']) && !empty($aKeys['publickey']['n'])) { $e = new \Math_BigInteger($aKeys['publickey']['e'], 10); $n = new \Math_BigInteger($aKeys['publickey']['n'], 10); $sHash = \md5($e->toHex() . $n->toHex()); \RainLoop\Service::$__HIDE_ERROR_NOTICES = false; return $this->DefaultResponse(__FUNCTION__, $this->Cacher()->Set(\RainLoop\KeyPathHelper::RsaCacherKey($sHash), $aKeys['privatekey']) ? array($sHash, $e->toHex(), $n->toHex()) : false); } } \RainLoop\Service::$__HIDE_ERROR_NOTICES = false; return $this->FalseResponse(__FUNCTION__); }