X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=src%2FUtil%2FCrypto.php;h=1781dfb77988a0389484bed24cea973effe19c05;hb=24c32cff0dcd38d5aa509208f5f17abb05a8b140;hp=0ff911ba798115ceba2bd49ec5587fe121194fb5;hpb=90346f61bacf2c2e5867001d87f65e41ede9f651;p=friendica.git diff --git a/src/Util/Crypto.php b/src/Util/Crypto.php index 0ff911ba79..1781dfb779 100644 --- a/src/Util/Crypto.php +++ b/src/Util/Crypto.php @@ -1,6 +1,6 @@ loadKey([ - 'e' => new BigInteger($e, 256), - 'n' => new BigInteger($m, 256) - ]); - return $rsa->getPublicKey(); - } - /** * Transform RSA public keys to standard PEM output * @@ -89,29 +72,7 @@ class Crypto */ public static function rsaToPem(string $key) { - $publicKey = new RSA(); - $publicKey->setPublicKey($key); - - return $publicKey->getPublicKey(RSA::PUBLIC_FORMAT_PKCS8); - } - - /** - * Extracts the modulo and exponent reference from a public PEM key - * - * @param string $key public PEM key - * @param string $modulus (ref) modulo reference - * @param string $exponent (ref) exponent reference - * - * @return void - */ - public static function pemToMe(string $key, &$modulus, &$exponent) - { - $publicKey = new RSA(); - $publicKey->loadKey($key); - $publicKey->setPublicKey(); - - $modulus = $publicKey->modulus->toBytes(); - $exponent = $publicKey->exponent->toBytes(); + return (string)PublicKeyLoader::load($key); } /** @@ -134,7 +95,7 @@ class Crypto $result = openssl_pkey_new($openssl_options); if (empty($result)) { - Logger::log('new_keypair: failed'); + Logger::notice('new_keypair: failed'); return false; } @@ -152,13 +113,13 @@ class Crypto /** * Encrypt a string with 'aes-256-cbc' cipher method. - * + * * Ported from Hubzilla: https://framagit.org/hubzilla/core/blob/master/include/crypto.php - * + * * @param string $data * @param string $key The key used for encryption. * @param string $iv A non-NULL Initialization Vector. - * + * * @return string|boolean Encrypted string or false on failure. */ private static function encryptAES256CBC($data, $key, $iv) @@ -168,13 +129,13 @@ class Crypto /** * Decrypt a string with 'aes-256-cbc' cipher method. - * + * * Ported from Hubzilla: https://framagit.org/hubzilla/core/blob/master/include/crypto.php - * + * * @param string $data * @param string $key The key used for decryption. * @param string $iv A non-NULL Initialization Vector. - * + * * @return string|boolean Decrypted string or false on failure. */ private static function decryptAES256CBC($data, $key, $iv) @@ -215,7 +176,7 @@ class Crypto private static function encapsulateOther($data, $pubkey, $alg) { if (!$pubkey) { - Logger::log('no key. data: '.$data); + Logger::notice('no key. data: '.$data); } $fn = 'encrypt' . strtoupper($alg); if (method_exists(__CLASS__, $fn)) { @@ -257,7 +218,7 @@ class Crypto private static function encapsulateAes($data, $pubkey) { if (!$pubkey) { - Logger::log('aes_encapsulate: no key. data: ' . $data); + Logger::notice('aes_encapsulate: no key. data: ' . $data); } $key = random_bytes(32); @@ -268,7 +229,7 @@ class Crypto // log the offending call so we can track it down if (!openssl_public_encrypt($key, $k, $pubkey)) { $x = debug_backtrace(); - Logger::log('aes_encapsulate: RSA failed. ' . print_r($x[0], true)); + Logger::notice('aes_encapsulate: RSA failed.', ['data' => $x[0]]); } $result['alg'] = 'aes256cbc';