function encodeRSAPrivateKeyToPem(privateKey) { return forge.pki.privateKeyToPem(privateKey); } function encodeRSAPublicKeyToPem(publicKey) { return forge.pki.publicKeyToPem(publicKey); } function rsaPrivateKeyFromPem(pem) { return forge.pki.privateKeyFromPem(pem); } function generateToken(time, userId, deviceToken, privateKeyPem) { const privateKey = forge.pki.privateKeyFromPem(privateKeyPem); const data = `${userId}-${deviceToken}-${time}`; const md = forge.md.sha256.create(); md.update(data, 'utf8'); const signature = privateKey.sign(md); return forge.util.encode64(signature); }