Openssl: how can I get the public key from a module?

I generate a key pair using openssl:

shell> ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/Users/mike/.ssh/id_rsa): /path/to/test_rsa Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /path/to/test_rsa. Your public key has been saved in /path/to/test_rsa.pub. 

And then I generate the module from the private key:

 shell> openssl rsa -in /path/to/test_rsa -noout -modulus > /path/to/modulus.txt 

Now, is there a way to get test_rsa.pub (public key) only from a module?

+2
source share
1 answer

You can get the public key in a more standardized format using phpseclib, a pure PHP RSA implementation . eg.

 <?php include('Crypt/RSA.php'); $modulus = 'yEQs2LxSHBZgZCH0rRQQy9kmry8g2tNhQL1B9f5azNz9Ce9pXPgSRjVUo1B9Ggb/FK3jy41wWd2IfS6rse3vBzRsabMj29CVODM/19yZPmwEmjJHCgYd+AA2qweKZanDp4FLsSw/kyV5WoPN16GHEMLmLGkJFNIWtzzH5jV+S80='; $exponent = 'AQAB'; $rsa = new Crypt_RSA(); $modulus = new Math_BigInteger(base64_decode($modulus), 256); $exponent = new Math_BigInteger(base64_decode($exponent), 256); $rsa->loadKey(array('n' => $modulus, 'e' => $exponent)); $rsa->setPublicKey(); echo $rsa->getPublicKey(); 19yZPmwEmjJHCgYd + AA2qweKZanDp4FLsSw / kyV5WoPN16GHEMLmLGkJFNIWtzzH5jV + S80 ='; <?php include('Crypt/RSA.php'); $modulus = 'yEQs2LxSHBZgZCH0rRQQy9kmry8g2tNhQL1B9f5azNz9Ce9pXPgSRjVUo1B9Ggb/FK3jy41wWd2IfS6rse3vBzRsabMj29CVODM/19yZPmwEmjJHCgYd+AA2qweKZanDp4FLsSw/kyV5WoPN16GHEMLmLGkJFNIWtzzH5jV+S80='; $exponent = 'AQAB'; $rsa = new Crypt_RSA(); $modulus = new Math_BigInteger(base64_decode($modulus), 256); $exponent = new Math_BigInteger(base64_decode($exponent), 256); $rsa->loadKey(array('n' => $modulus, 'e' => $exponent)); $rsa->setPublicKey(); echo $rsa->getPublicKey(); 
+7
source

Source: https://habr.com/ru/post/973250/


All Articles