getPublicKey(); $privateKeyComponents = PKCS1::load($privateKey->toString('PKCS1')); $nkey = new OpenPGP_SecretKeyPacket(array( 'n' => $privateKeyComponents["modulus"]->toBytes(), 'e' => $privateKeyComponents["publicExponent"]->toBytes(), 'd' => $privateKeyComponents["privateExponent"]->toBytes(), 'p' => $privateKeyComponents["primes"][1]->toBytes(), 'q' => $privateKeyComponents["primes"][2]->toBytes(), 'u' => $privateKeyComponents["coefficients"][2]->toBytes() )); $uid = new OpenPGP_UserIDPacket('Test '); $wkey = new OpenPGP_Crypt_RSA($nkey); $m = $wkey->sign_key_userid(array($nkey, $uid)); // Serialize private key print $m->to_bytes(); // Serialize public key message $pubm = clone($m); $pubm[0] = new OpenPGP_PublicKeyPacket($pubm[0]); $public_bytes = $pubm->to_bytes();