async authenticate()

in src/dal/remotelogin.ts [38:60]


    async authenticate(serverUrl: string, user: string, password: string): Promise<string> {
        const client: xmlrpc.Client = this.createClient(serverUrl);
        const rsaPublicKey: RcaPublicKey = await this.getPublicKey(client);
        if (!rsaPublicKey) {
            throw MessageConstants.XMLRPC_AUTH_EXCEPTION + " rsaPublicKey is absent";
        }
        const encPass = rsaPublicKey.encrypt(password);
        const hexEncPass = forge.util.createBuffer(encPass).toHex();
        return new Promise<string>((resolve, reject) => {
            client.methodCall("RemoteAuthenticationServer.authenticate", [user, hexEncPass], (err: any, data) => {
                /* tslint:disable:no-null-keyword */
                if (err && err.message && err.message.indexOf("Incorrect username or password") !== -1) {
                    Logger.logError("RemoteAuthenticationServer.authenticate: return an error: " + Utils.formatErrorMessage(err));
                    return reject(MessageConstants.STATUS_CODE_401);
                } else if (err !== null) {
                    Logger.logError("RemoteAuthenticationServer.authenticate: return an error: " + Utils.formatErrorMessage(err));
                    return reject(Utils.formatErrorMessage(err));
                }
                /* tslint:enable:no-null-keyword */
                resolve(data);
            });
        });
    }