Tylko że to nie jest klucz publiczny używany przez phpseclib ale certyfikat który oni udostępniają. Wystarczy że sobie to sparsujesz tak:
$data = file_get_contents('klucz.pem');
$cainfo = openssl_x509_parse($data);
var_dump($caifno);
I będziesz miał jak na dłoni co tam jest.
Tymczasem phpseclib generuje coś takiego:
$rsa = new Crypt_RSA();
extract($rsa->createKey());
var_dump($publickey, $privatekey);
i phpseclib generuje to:
-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3Ms8ex4edWbL9oUcldjqEgJ7G S62C3v7yd4tCgt9ujuINeeW/3d2RgRQWtJCHN8iwU7YEQ1QN6B8dMrZN4Qn+JtfE UWlJjoKdkpM8j4GkhkR+Dx7NhRjH/uK3m2IiAZDVGefUL2/WuBeOCKFppRAOXB7r G1I+SsOB+UYW9idk4wIDAQAB -----END PUBLIC KEY-----
-----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQC3Ms8ex4edWbL9oUcldjqEgJ7GS62C3v7yd4tCgt9ujuINeeW/ 3d2RgRQWtJCHN8iwU7YEQ1QN6B8dMrZN4Qn+JtfEUWlJjoKdkpM8j4GkhkR+Dx7N hRjH/uK3m2IiAZDVGefUL2/WuBeOCKFppRAOXB7rG1I+SsOB+UYW9idk4wIDAQAB AoGAV9JCmhW6vEK43H9I9Pt1V/m0o4i52AgAncmS98J3S6+xTBaIfe7k/ZCsSaor sraaPXUTx31jOPtylvOtky3zNJP1J1HYWYhfBZpfib8qtdRrGoZft070gNg/rBdr HOlCWg2d7yI4BnMKuz0O00fSuFWgAQjwN8i4OAauqf8IO9kCQQDmD2WZHQCa2AW4 G4QYXHL3iOH25/JwSFUERjREt8AT/qjUKO7tbo2fmClFcDaLLXTFxy93HduPLdxx vp4/uOuHAkEAy9rEVtyIsw+X7oDpOmk/35L/kSjqlyqndxU83rXircAJvVMJVoNt XSnGh4MrmWiRQbn1DDnKVSy8wNkSoZoqxQJBAMPtvPMHViqJa2V+WaN9qJPTyc3D gB/MGkuHlqAndbgRm6sEKWegTZDrv8pZZLpnPhnqJyxlC0YHIsTkOFXAoSUCQChp dgLCNVdKABSH+bRaqQ7pVUCxm8/b5Nb2ntqHtCg9qbCehXthEo0levXiSwJeeG1P MAT8b9/yvnh8j/T5WwECQBdbJ/tzYXIzpXlfesOPPuVZhUa5XhhDJOVC7IzQlQr8 RmAy7aZUgWOj16cpcOMEchdQg0ufxgme6vmgWm+CV34= -----END RSA PRIVATE KEY-----
Czyli to co udostępniają to nie to czego potrzebujesz mając na uwadze wykorzystanie phpseclib.