diff --git a/src/ozonetel/ozonetel-admin-auth.service.ts b/src/ozonetel/ozonetel-admin-auth.service.ts index d3c70ca..c7d1f60 100644 --- a/src/ozonetel/ozonetel-admin-auth.service.ts +++ b/src/ozonetel/ozonetel-admin-auth.service.ts @@ -54,10 +54,14 @@ export class OzonetelAdminAuthService implements OnModuleInit { return this.login(); } - private rsaEncrypt(publicKeyPem: string, plaintext: string): string { + private rsaEncrypt(publicKeyRaw: string, plaintext: string): string { + // Ozonetel returns raw base64 without PEM headers — wrap it + const pem = publicKeyRaw.includes('-----BEGIN') + ? publicKeyRaw + : `-----BEGIN PUBLIC KEY-----\n${publicKeyRaw}\n-----END PUBLIC KEY-----`; const buffer = Buffer.from(plaintext, 'utf8'); const encrypted = publicEncrypt( - { key: publicKeyPem, padding: cryptoConstants.RSA_PKCS1_PADDING }, + { key: pem, padding: cryptoConstants.RSA_PKCS1_PADDING }, buffer, ); return encrypted.toString('base64');