Se você criar um arquivo de texto formatado em ASN1 contendo o módulo e o expoente (além de alguns outros bits), então você pode criar um arquivo PEM assim:
$ openssl asn1parse -genconf key.cnf -out key.der
$ openssl rsa -in key.der -inform der -out private.pem
$ openssl rsa -in key.der -inform der -out public.pem -pubout
em que key.cnf
contém os dados ASN1 e se parece com isso:
asn1=SEQUENCE:rsa_key
[rsa_key]
version=INTEGER:0
modulus=INTEGER:13671936028836425653
pubExp=INTEGER:65537
privExp=INTEGER:531444176792982513
p=INTEGER:3273361529
q=INTEGER:4176726557
e1=INTEGER:1295519345
e2=INTEGER:20202669
coeff=INTEGER:1526950891
Isso é retirado de este artigo, páginas 82-87 , que explica como o RSA funciona e cria um arquivo PEM como parte dessa explicação. O exemplo acima está descrito na página 86.
O acima inclui o expoente privado, mas deve dar-lhe um ponteiro para fazer o que você quer. Você pode encontrar man asn1parse
útil.