const crypto = require('crypto');
const asn1 = require('asn1.js');
function hexToBuffer(hex) {
return Buffer.from(hex, 'hex');
}
function publicKeyHexToPEM(n, e) {
var RSAPublicKey = asn1.define('RSAPublicKey', function() {
this.seq().obj(
this.key('n').int(),
this.key('e').int()
);
});
var publicKey = RSAPublicKey.encode({
n: hexToBuffer(n),
e: parseInt(e, 16)
}, 'der');
var publicKeyPEM = crypto.createPublicKey({
key: publicKey,
format: 'der',
type: 'pkcs1'
});
return publicKeyPEM.export({
type: 'spki',
format: 'pem'
});
}
var n = "CB99A3A4891FFECEDD94F455C5C486B936D0A37247D750D299D66A711F5F7C1EF8C17EAFD2E1552081DFFD1F78966593D81A499B802B18B0D76EF1D74F217E3FD98E8E05A906245BEDD810557DFB8F653118E59293A08C1E51DDCFA2CC13251A5BE301B080A0C93A587CB71BAED18AEF9F1E27DA6877AFED6BC5649DB12DD021";
var e = "10001";
console.log(publicKeyHexToPEM(n, e));
```
```