sync source
This commit is contained in:
parent
6a2e72a8e7
commit
b4d92c1e51
@ -2,7 +2,7 @@
|
||||
|
||||
const package = require('./package.json')
|
||||
const config = require('./cli.js')
|
||||
.program({name: package.name, version: package.version})
|
||||
.program({name: package.name.replace(/@.+\//, ''), version: package.version})
|
||||
.option(['-v', '--version'], {action: 'version'})
|
||||
.option(['-p', '--port'], {metavar: 'port', help: 'specify server port'})
|
||||
.option(['-u', '--proxy-url'], {metavar: 'url', help: 'request through upstream proxy'})
|
||||
|
||||
@ -52,7 +52,7 @@ module.exports = {
|
||||
miguapi: {
|
||||
encrypt: object => {
|
||||
let text = JSON.stringify(object)
|
||||
const EVP_BytesToKey = (password, salt, keyLength, ivSize) => {
|
||||
const derive = (password, salt, keyLength, ivSize) => { // EVP_BytesToKey
|
||||
salt = salt || Buffer.alloc(0)
|
||||
let keySize = keyLength / 8
|
||||
let repeat = Math.ceil((keySize + ivSize * 8) / 32)
|
||||
@ -66,8 +66,8 @@ module.exports = {
|
||||
}
|
||||
let password = Buffer.from(crypto.randomBytes(32).toString('hex')), salt = crypto.randomBytes(8),
|
||||
key = '-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8asrfSaoOb4je+DSmKdriQJKWVJ2oDZrs3wi5W67m3LwTB9QVR+cE3XWU21Nx+YBxS0yun8wDcjgQvYt625ZCcgin2ro/eOkNyUOTBIbuj9CvMnhUYiR61lC1f1IGbrSYYimqBVSjpifVufxtx/I3exReZosTByYp4Xwpb1+WAQIDAQAB\n-----END PUBLIC KEY-----'
|
||||
let parameter = EVP_BytesToKey(password, salt, 256, 16)
|
||||
let cipher = crypto.createCipheriv('aes-256-cbc', parameter.key, parameter.iv)
|
||||
let secret = derive(password, salt, 256, 16)
|
||||
let cipher = crypto.createCipheriv('aes-256-cbc', secret.key, secret.iv)
|
||||
return bodyify({
|
||||
data: Buffer.concat([Buffer.from('Salted__'), salt, cipher.update(Buffer.from(text)), cipher.final()]).toString('base64'),
|
||||
secKey: crypto.publicEncrypt({key, padding: crypto.constants.RSA_PKCS1_PADDING}, password).toString('base64')
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "unblockneteasemusic",
|
||||
"version": "0.16.0",
|
||||
"version": "0.16.2",
|
||||
"lockfileVersion": 1
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "unblockneteasemusic",
|
||||
"version": "0.16.0",
|
||||
"name": "@nondanee/unblockneteasemusic",
|
||||
"version": "0.16.2",
|
||||
"description": "Revive unavailable songs for Netease Cloud Music",
|
||||
"main": "provider/match.js",
|
||||
"bin": {
|
||||
@ -21,5 +21,8 @@
|
||||
},
|
||||
"author": "nondanee",
|
||||
"license": "MIT",
|
||||
"dependencies": {}
|
||||
"dependencies": {},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
}
|
||||
}
|
||||
|
||||
@ -159,13 +159,13 @@ const proxy = {
|
||||
const message = `HTTP/${req.httpVersion} 200 Connection established\r\n\r\n`
|
||||
socket.write(message)
|
||||
},
|
||||
pipe: ctx => new Promise((resolve, reject) => {
|
||||
if(ctx.decision === 'blank') return reject(ctx.error = ctx.decision)
|
||||
pipe: ctx => {
|
||||
if(ctx.decision === 'blank') return Promise.reject(ctx.error = ctx.decision)
|
||||
const socket = ctx.socket
|
||||
const proxySocket = ctx.proxySocket.on('error', () => proxy.abort(ctx.proxySocket, 'proxySocket'))
|
||||
socket.pipe(proxySocket)
|
||||
proxySocket.pipe(socket)
|
||||
}),
|
||||
},
|
||||
close: ctx => {
|
||||
proxy.abort(ctx.socket, 'tunnel')
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user