static async restore({ session, keychain, authKey }) {
    const _authKey = new bitcoreLib.PrivateKey(authKey);
    $.checkArgument(_authKey.toString('hex') === authKey.toString('hex') || _authKey.toWIF() === authKey, 'Unrecognized authKey format');
    session = decrypt(Buffer.from(session, 'base64'), _authKey.publicKey, _authKey).toString('utf8');
    const [
      round,
      partySize,
      minSigners,
      partyId,
      derivationPath,
      dsgSessionBytes,
      messageHash,
    ] = session.split(':');
    const signer = new Sign({
      keychain,
      n: parseInt(partySize),
      m: parseInt(minSigners),
      partyId: parseInt(partyId),
      derivationPath,
      messageHash: Buffer.from(messageHash, 'base64'),
      authKey,
      round: parseInt(round)
    });
    await signer.#dsg.setSession(Buffer.from(dsgSessionBytes, 'base64'));
    return signer;
  }
Restore a signing session from an exported session
@param {Object} params
@param {string} params.session Base64 encoded session string
@param {Keychain} params.keychain Keychain to use for signing
@param {bitcoreLib.PrivateKey} params.authKey Private key to use for decrypting the session
@returns {Sign}