{ "version": 3, "sources": ["../../../server/verifier.ts"], "sourcesContent": ["/**\n * Verifier process\n * Pokemon Showdown - http://pokemonshowdown.com/\n *\n * This is just an asynchronous implementation of a verifier for a\n * signed key, because Node.js's crypto functions are synchronous,\n * strangely, considering how everything else is asynchronous.\n *\n * I wrote this one day hoping it would help with performance, but\n * I don't think it had any noticeable effect.\n *\n * @license MIT\n */\nimport * as crypto from 'crypto';\n\nimport {QueryProcessManager} from '../lib/process-manager';\n\nexport const PM = new QueryProcessManager<{data: string, signature: string}, boolean>(module, ({data, signature}) => {\n\tconst verifier = crypto.createVerify(Config.loginserverkeyalgo);\n\tverifier.update(data);\n\tlet success = false;\n\ttry {\n\t\tsuccess = verifier.verify(Config.loginserverpublickey, signature, 'hex');\n\t} catch {}\n\n\treturn success;\n});\n\nexport function verify(data: string, signature: string): Promise {\n\treturn PM.query({data, signature});\n}\n\nif (!PM.isParentProcess) {\n\t// This is a child process!\n\tglobal.Config = require('./config-loader').Config;\n\n\tconst Repl = require('../lib/repl').Repl;\n\t// eslint-disable-next-line no-eval\n\tRepl.start('verifier', (cmd: string) => eval(cmd));\n} else {\n\tPM.spawn(global.Config ? Config.verifierprocesses : 1);\n}\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA,aAAwB;AAExB,6BAAkC;AAflC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBO,MAAM,KAAK,IAAI,2CAAgE,QAAQ,CAAC,EAAC,MAAM,UAAS,MAAM;AACpH,QAAM,WAAW,OAAO,aAAa,OAAO,kBAAkB;AAC9D,WAAS,OAAO,IAAI;AACpB,MAAI,UAAU;AACd,MAAI;AACH,cAAU,SAAS,OAAO,OAAO,sBAAsB,WAAW,KAAK;AAAA,EACxE,QAAE;AAAA,EAAO;AAET,SAAO;AACR,CAAC;AAEM,SAAS,OAAO,MAAc,WAAqC;AACzE,SAAO,GAAG,MAAM,EAAC,MAAM,UAAS,CAAC;AAClC;AAEA,IAAI,CAAC,GAAG,iBAAiB;AAExB,SAAO,SAAS,QAAQ,iBAAiB,EAAE;AAE3C,QAAM,OAAO,QAAQ,aAAa,EAAE;AAEpC,OAAK,MAAM,YAAY,CAAC,QAAgB,KAAK,GAAG,CAAC;AAClD,OAAO;AACN,KAAG,MAAM,OAAO,SAAS,OAAO,oBAAoB,CAAC;AACtD;", "names": [] }