ccxt 4.5.60 → 4.5.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -54
- package/dist/ccxt.browser.min.js +4 -4
- package/dist/cjs/ccxt.js +6 -2
- package/dist/cjs/src/aftermath.js +1 -1
- package/dist/cjs/src/apex.js +2 -2
- package/dist/cjs/src/ascendex.js +1 -1
- package/dist/cjs/src/aster.js +3 -4
- package/dist/cjs/src/backpack.js +1 -1
- package/dist/cjs/src/base/Exchange.js +6 -38
- package/dist/cjs/src/base/functions/crypto.js +72 -15
- package/dist/cjs/src/base/functions/rsa.js +25 -10
- package/dist/cjs/src/base/functions.js +1 -0
- package/dist/cjs/src/bequant.js +1 -1
- package/dist/cjs/src/bigone.js +1 -1
- package/dist/cjs/src/binance.js +1 -1
- package/dist/cjs/src/bingx.js +4 -4
- package/dist/cjs/src/bit2c.js +1 -1
- package/dist/cjs/src/bitbank.js +1 -1
- package/dist/cjs/src/bitbns.js +1 -1
- package/dist/cjs/src/bitfinex.js +5 -5
- package/dist/cjs/src/bitflyer.js +1 -1
- package/dist/cjs/src/bitget.js +2 -2
- package/dist/cjs/src/bithumb.js +1 -1
- package/dist/cjs/src/bitmart.js +2 -2
- package/dist/cjs/src/bitmex.js +3 -3
- package/dist/cjs/src/bitopro.js +1 -1
- package/dist/cjs/src/bitrue.js +1 -1
- package/dist/cjs/src/bitso.js +2 -2
- package/dist/cjs/src/bitstamp.js +1 -1
- package/dist/cjs/src/bittrade.js +2 -2
- package/dist/cjs/src/bitvavo.js +2 -2
- package/dist/cjs/src/blockchaincom.js +1 -1
- package/dist/cjs/src/blofin.js +3 -4
- package/dist/cjs/src/btcbox.js +1 -1
- package/dist/cjs/src/btcmarkets.js +1 -1
- package/dist/cjs/src/btcturk.js +2 -2
- package/dist/cjs/src/bullish.js +1 -1
- package/dist/cjs/src/bybit.js +1 -1
- package/dist/cjs/src/bydfi.js +1 -1
- package/dist/cjs/src/cex.js +2 -2
- package/dist/cjs/src/coinbase.js +1 -1
- package/dist/cjs/src/coinbaseexchange.js +2 -2
- package/dist/cjs/src/coincheck.js +2 -2
- package/dist/cjs/src/coinex.js +1 -1
- package/dist/cjs/src/coinmate.js +1 -1
- package/dist/cjs/src/coinmetro.js +1 -1
- package/dist/cjs/src/coinone.js +1 -1
- package/dist/cjs/src/coinsph.js +1 -1
- package/dist/cjs/src/coinspot.js +1 -1
- package/dist/cjs/src/cryptocom.js +1 -1
- package/dist/cjs/src/cryptomus.js +2 -2
- package/dist/cjs/src/deepcoin.js +1 -1
- package/dist/cjs/src/delta.js +1 -1
- package/dist/cjs/src/deribit.js +1 -1
- package/dist/cjs/src/derive.js +2 -3
- package/dist/cjs/src/digifinex.js +1 -1
- package/dist/cjs/src/dydx.js +2 -2
- package/dist/cjs/src/exmo.js +1 -1
- package/dist/cjs/src/extended.js +5 -5
- package/dist/cjs/src/foxbit.js +1 -1
- package/dist/cjs/src/gate.js +3 -3
- package/dist/cjs/src/gateeu.js +60 -0
- package/dist/cjs/src/gemini.js +1 -1
- package/dist/cjs/src/grvt.js +1 -1
- package/dist/cjs/src/hashkey.js +2 -2
- package/dist/cjs/src/hibachi.js +1 -1
- package/dist/cjs/src/hitbtc.js +1 -1
- package/dist/cjs/src/hollaex.js +1 -1
- package/dist/cjs/src/htx.js +1 -1
- package/dist/cjs/src/hyperliquid.js +1 -1
- package/dist/cjs/src/independentreserve.js +1 -1
- package/dist/cjs/src/indodax.js +1 -1
- package/dist/cjs/src/kraken.js +1 -1
- package/dist/cjs/src/kucoin.js +1 -1
- package/dist/cjs/src/latoken.js +1 -1
- package/dist/cjs/src/lbank.js +1 -1
- package/dist/cjs/src/lighter.js +1 -1
- package/dist/cjs/src/luno.js +2 -2
- package/dist/cjs/src/mercado.js +1 -1
- package/dist/cjs/src/mexc.js +1 -1
- package/dist/cjs/src/modetrade.js +3 -5
- package/dist/cjs/src/ndax.js +1 -1
- package/dist/cjs/src/novadax.js +1 -1
- package/dist/cjs/src/okx.js +1 -1
- package/dist/cjs/src/onetrading.js +2 -2
- package/dist/cjs/src/p2b.js +2 -3
- package/dist/cjs/src/pacifica.js +2 -2
- package/dist/cjs/src/paradex.js +1 -1
- package/dist/cjs/src/paymium.js +1 -1
- package/dist/cjs/src/phemex.js +1 -1
- package/dist/cjs/src/poloniex.js +1 -1
- package/dist/cjs/src/pro/aftermath.js +1 -1
- package/dist/cjs/src/pro/alpaca.js +1 -1
- package/dist/cjs/src/pro/apex.js +2 -2
- package/dist/cjs/src/pro/ascendex.js +1 -1
- package/dist/cjs/src/pro/aster.js +4 -4
- package/dist/cjs/src/pro/backpack.js +4 -4
- package/dist/cjs/src/pro/binance.js +5 -5
- package/dist/cjs/src/pro/bingx.js +2 -2
- package/dist/cjs/src/pro/bitfinex.js +1 -1
- package/dist/cjs/src/pro/bitget.js +4 -4
- package/dist/cjs/src/pro/bitmart.js +4 -4
- package/dist/cjs/src/pro/bitmex.js +2 -2
- package/dist/cjs/src/pro/bitopro.js +1 -1
- package/dist/cjs/src/pro/bitstamp.js +1 -1
- package/dist/cjs/src/pro/bittrade.js +1 -1
- package/dist/cjs/src/pro/bitvavo.js +1 -1
- package/dist/cjs/src/pro/blockchaincom.js +1 -1
- package/dist/cjs/src/pro/blofin.js +2 -2
- package/dist/cjs/src/pro/bullish.js +1 -1
- package/dist/cjs/src/pro/bybit.js +4 -4
- package/dist/cjs/src/pro/bydfi.js +4 -4
- package/dist/cjs/src/pro/cex.js +1 -1
- package/dist/cjs/src/pro/coinbase.js +3 -3
- package/dist/cjs/src/pro/coinbaseexchange.js +2 -2
- package/dist/cjs/src/pro/coinbaseinternational.js +2 -2
- package/dist/cjs/src/pro/coincheck.js +1 -1
- package/dist/cjs/src/pro/coinex.js +2 -2
- package/dist/cjs/src/pro/coinone.js +1 -1
- package/dist/cjs/src/pro/cryptocom.js +4 -4
- package/dist/cjs/src/pro/deepcoin.js +2 -2
- package/dist/cjs/src/pro/deribit.js +2 -2
- package/dist/cjs/src/pro/derive.js +2 -2
- package/dist/cjs/src/pro/dydx.js +2 -2
- package/dist/cjs/src/pro/exmo.js +1 -1
- package/dist/cjs/src/pro/extended.js +1 -1
- package/dist/cjs/src/pro/gate.js +46 -15
- package/dist/cjs/src/pro/gateeu.js +32 -0
- package/dist/cjs/src/pro/gemini.js +2 -3
- package/dist/cjs/src/pro/grvt.js +2 -2
- package/dist/cjs/src/pro/hashkey.js +1 -1
- package/dist/cjs/src/pro/hitbtc.js +1 -1
- package/dist/cjs/src/pro/hollaex.js +1 -1
- package/dist/cjs/src/pro/htx.js +440 -102
- package/dist/cjs/src/pro/hyperliquid.js +2 -2
- package/dist/cjs/src/pro/independentreserve.js +1 -1
- package/dist/cjs/src/pro/kraken.js +2 -2
- package/dist/cjs/src/pro/krakenfutures.js +2 -2
- package/dist/cjs/src/pro/kucoin.js +4 -4
- package/dist/cjs/src/pro/lighter.js +2 -2
- package/dist/cjs/src/pro/luno.js +1 -1
- package/dist/cjs/src/pro/mexc.js +2 -2
- package/dist/cjs/src/pro/modetrade.js +1 -1
- package/dist/cjs/src/pro/ndax.js +1 -1
- package/dist/cjs/src/pro/okx.js +4 -4
- package/dist/cjs/src/pro/onetrading.js +1 -1
- package/dist/cjs/src/pro/p2b.js +1 -1
- package/dist/cjs/src/pro/pacifica.js +2 -2
- package/dist/cjs/src/pro/paradex.js +1 -1
- package/dist/cjs/src/pro/phemex.js +1 -1
- package/dist/cjs/src/pro/poloniex.js +1 -1
- package/dist/cjs/src/pro/toobit.js +2 -2
- package/dist/cjs/src/pro/upbit.js +1 -1
- package/dist/cjs/src/pro/weex.js +4 -4
- package/dist/cjs/src/pro/whitebit.js +1 -1
- package/dist/cjs/src/pro/woo.js +2 -2
- package/dist/cjs/src/pro/woofipro.js +1 -1
- package/dist/cjs/src/tokocrypto.js +1 -1
- package/dist/cjs/src/toobit.js +2 -2
- package/dist/cjs/src/upbit.js +1 -1
- package/dist/cjs/src/weex.js +2 -2
- package/dist/cjs/src/whitebit.js +1 -1
- package/dist/cjs/src/woo.js +1 -1
- package/dist/cjs/src/woofipro.js +2 -4
- package/dist/cjs/src/xt.js +1 -1
- package/dist/cjs/src/zaif.js +2 -2
- package/dist/cjs/src/zebpay.js +2 -2
- package/js/ccxt.d.ts +8 -2
- package/js/ccxt.js +6 -3
- package/js/src/abstract/gateeu.d.ts +346 -0
- package/js/src/{static_dependencies/jsencrypt/index.js → abstract/gateeu.js} +5 -3
- package/js/src/aftermath.d.ts +1 -1
- package/js/src/aftermath.js +1 -1
- package/js/src/apex.d.ts +1 -1
- package/js/src/apex.js +2 -2
- package/js/src/ascendex.d.ts +1 -1
- package/js/src/ascendex.js +1 -1
- package/js/src/aster.d.ts +1 -1
- package/js/src/aster.js +3 -4
- package/js/src/backpack.js +1 -1
- package/js/src/base/Exchange.d.ts +1 -1
- package/js/src/base/Exchange.js +6 -38
- package/js/src/base/functions/crypto.d.ts +2 -1
- package/js/src/base/functions/crypto.js +72 -16
- package/js/src/base/functions/rsa.js +18 -7
- package/js/src/bequant.js +1 -1
- package/js/src/bigone.d.ts +1 -1
- package/js/src/bigone.js +1 -1
- package/js/src/binance.d.ts +1 -1
- package/js/src/binance.js +1 -1
- package/js/src/bingx.d.ts +1 -1
- package/js/src/bingx.js +4 -4
- package/js/src/bit2c.d.ts +1 -1
- package/js/src/bit2c.js +1 -1
- package/js/src/bitbank.d.ts +1 -1
- package/js/src/bitbank.js +1 -1
- package/js/src/bitbns.d.ts +1 -1
- package/js/src/bitbns.js +1 -1
- package/js/src/bitfinex.d.ts +1 -1
- package/js/src/bitfinex.js +5 -5
- package/js/src/bitflyer.d.ts +1 -1
- package/js/src/bitflyer.js +1 -1
- package/js/src/bitget.d.ts +1 -1
- package/js/src/bitget.js +2 -2
- package/js/src/bithumb.d.ts +1 -1
- package/js/src/bithumb.js +1 -1
- package/js/src/bitmart.d.ts +1 -1
- package/js/src/bitmart.js +2 -2
- package/js/src/bitmex.d.ts +1 -1
- package/js/src/bitmex.js +3 -3
- package/js/src/bitopro.d.ts +1 -1
- package/js/src/bitopro.js +1 -1
- package/js/src/bitrue.d.ts +1 -1
- package/js/src/bitrue.js +1 -1
- package/js/src/bitso.d.ts +1 -1
- package/js/src/bitso.js +2 -2
- package/js/src/bitstamp.d.ts +1 -1
- package/js/src/bitstamp.js +1 -1
- package/js/src/bittrade.d.ts +1 -1
- package/js/src/bittrade.js +2 -2
- package/js/src/bitvavo.d.ts +1 -1
- package/js/src/bitvavo.js +2 -2
- package/js/src/blockchaincom.d.ts +1 -1
- package/js/src/blockchaincom.js +1 -1
- package/js/src/blofin.d.ts +1 -1
- package/js/src/blofin.js +3 -4
- package/js/src/btcbox.d.ts +1 -1
- package/js/src/btcbox.js +1 -1
- package/js/src/btcmarkets.d.ts +1 -1
- package/js/src/btcmarkets.js +1 -1
- package/js/src/btcturk.d.ts +1 -1
- package/js/src/btcturk.js +2 -2
- package/js/src/bullish.d.ts +1 -1
- package/js/src/bullish.js +1 -1
- package/js/src/bybit.d.ts +1 -1
- package/js/src/bybit.js +1 -1
- package/js/src/bydfi.js +1 -1
- package/js/src/cex.d.ts +1 -1
- package/js/src/cex.js +2 -2
- package/js/src/coinbase.d.ts +1 -1
- package/js/src/coinbase.js +1 -1
- package/js/src/coinbaseexchange.d.ts +1 -1
- package/js/src/coinbaseexchange.js +2 -2
- package/js/src/coincheck.d.ts +1 -1
- package/js/src/coincheck.js +2 -2
- package/js/src/coinex.d.ts +1 -1
- package/js/src/coinex.js +1 -1
- package/js/src/coinmate.d.ts +1 -1
- package/js/src/coinmate.js +1 -1
- package/js/src/coinmetro.d.ts +1 -1
- package/js/src/coinmetro.js +1 -1
- package/js/src/coinone.d.ts +1 -1
- package/js/src/coinone.js +1 -1
- package/js/src/coinsph.d.ts +1 -1
- package/js/src/coinsph.js +1 -1
- package/js/src/coinspot.d.ts +1 -1
- package/js/src/coinspot.js +1 -1
- package/js/src/cryptocom.d.ts +1 -1
- package/js/src/cryptocom.js +1 -1
- package/js/src/cryptomus.d.ts +1 -1
- package/js/src/cryptomus.js +2 -2
- package/js/src/deepcoin.d.ts +1 -1
- package/js/src/deepcoin.js +1 -1
- package/js/src/delta.d.ts +1 -1
- package/js/src/delta.js +1 -1
- package/js/src/deribit.d.ts +1 -1
- package/js/src/deribit.js +1 -1
- package/js/src/derive.js +2 -3
- package/js/src/digifinex.d.ts +1 -1
- package/js/src/digifinex.js +1 -1
- package/js/src/dydx.d.ts +1 -1
- package/js/src/dydx.js +2 -2
- package/js/src/exmo.d.ts +1 -1
- package/js/src/exmo.js +1 -1
- package/js/src/extended.d.ts +1 -1
- package/js/src/extended.js +5 -5
- package/js/src/foxbit.d.ts +1 -1
- package/js/src/foxbit.js +1 -1
- package/js/src/gate.d.ts +1 -1
- package/js/src/gate.js +3 -3
- package/js/src/gateeu.d.ts +4 -0
- package/js/src/gateeu.js +59 -0
- package/js/src/gemini.d.ts +1 -1
- package/js/src/gemini.js +1 -1
- package/js/src/grvt.js +1 -1
- package/js/src/hashkey.d.ts +1 -1
- package/js/src/hashkey.js +2 -2
- package/js/src/hibachi.js +1 -1
- package/js/src/hitbtc.d.ts +1 -1
- package/js/src/hitbtc.js +1 -1
- package/js/src/hollaex.d.ts +1 -1
- package/js/src/hollaex.js +1 -1
- package/js/src/htx.d.ts +1 -1
- package/js/src/htx.js +1 -1
- package/js/src/hyperliquid.d.ts +1 -1
- package/js/src/hyperliquid.js +1 -1
- package/js/src/independentreserve.d.ts +1 -1
- package/js/src/independentreserve.js +1 -1
- package/js/src/indodax.d.ts +1 -1
- package/js/src/indodax.js +1 -1
- package/js/src/kraken.d.ts +1 -1
- package/js/src/kraken.js +1 -1
- package/js/src/kucoin.d.ts +1 -1
- package/js/src/kucoin.js +1 -1
- package/js/src/latoken.d.ts +1 -1
- package/js/src/latoken.js +1 -1
- package/js/src/lbank.d.ts +1 -1
- package/js/src/lbank.js +1 -1
- package/js/src/lighter.d.ts +1 -1
- package/js/src/lighter.js +1 -1
- package/js/src/luno.d.ts +1 -1
- package/js/src/luno.js +2 -2
- package/js/src/mercado.d.ts +1 -1
- package/js/src/mercado.js +1 -1
- package/js/src/mexc.d.ts +1 -1
- package/js/src/mexc.js +1 -1
- package/js/src/modetrade.d.ts +1 -1
- package/js/src/modetrade.js +3 -5
- package/js/src/ndax.d.ts +1 -1
- package/js/src/ndax.js +1 -1
- package/js/src/novadax.d.ts +1 -1
- package/js/src/novadax.js +1 -1
- package/js/src/okx.d.ts +1 -1
- package/js/src/okx.js +1 -1
- package/js/src/onetrading.d.ts +1 -1
- package/js/src/onetrading.js +2 -2
- package/js/src/p2b.d.ts +1 -1
- package/js/src/p2b.js +2 -3
- package/js/src/pacifica.d.ts +1 -1
- package/js/src/pacifica.js +2 -2
- package/js/src/paradex.d.ts +1 -1
- package/js/src/paradex.js +1 -1
- package/js/src/paymium.d.ts +1 -1
- package/js/src/paymium.js +1 -1
- package/js/src/phemex.d.ts +1 -1
- package/js/src/phemex.js +1 -1
- package/js/src/poloniex.d.ts +1 -1
- package/js/src/poloniex.js +1 -1
- package/js/src/pro/aftermath.d.ts +1 -1
- package/js/src/pro/aftermath.js +1 -1
- package/js/src/pro/alpaca.d.ts +1 -1
- package/js/src/pro/alpaca.js +1 -1
- package/js/src/pro/apex.d.ts +2 -2
- package/js/src/pro/apex.js +2 -2
- package/js/src/pro/ascendex.d.ts +1 -1
- package/js/src/pro/ascendex.js +1 -1
- package/js/src/pro/aster.d.ts +4 -4
- package/js/src/pro/aster.js +4 -4
- package/js/src/pro/backpack.d.ts +4 -4
- package/js/src/pro/backpack.js +4 -4
- package/js/src/pro/binance.d.ts +5 -5
- package/js/src/pro/binance.js +5 -5
- package/js/src/pro/bingx.d.ts +2 -2
- package/js/src/pro/bingx.js +2 -2
- package/js/src/pro/bitfinex.d.ts +1 -1
- package/js/src/pro/bitfinex.js +1 -1
- package/js/src/pro/bitget.d.ts +4 -4
- package/js/src/pro/bitget.js +4 -4
- package/js/src/pro/bitmart.d.ts +4 -4
- package/js/src/pro/bitmart.js +4 -4
- package/js/src/pro/bitmex.d.ts +2 -2
- package/js/src/pro/bitmex.js +2 -2
- package/js/src/pro/bitopro.d.ts +1 -1
- package/js/src/pro/bitopro.js +1 -1
- package/js/src/pro/bitstamp.d.ts +1 -1
- package/js/src/pro/bitstamp.js +1 -1
- package/js/src/pro/bittrade.d.ts +1 -1
- package/js/src/pro/bittrade.js +1 -1
- package/js/src/pro/bitvavo.d.ts +1 -1
- package/js/src/pro/bitvavo.js +1 -1
- package/js/src/pro/blockchaincom.d.ts +1 -1
- package/js/src/pro/blockchaincom.js +1 -1
- package/js/src/pro/blofin.d.ts +2 -2
- package/js/src/pro/blofin.js +2 -2
- package/js/src/pro/bullish.d.ts +1 -1
- package/js/src/pro/bullish.js +1 -1
- package/js/src/pro/bybit.d.ts +4 -4
- package/js/src/pro/bybit.js +4 -4
- package/js/src/pro/bydfi.d.ts +4 -4
- package/js/src/pro/bydfi.js +4 -4
- package/js/src/pro/cex.d.ts +1 -1
- package/js/src/pro/cex.js +1 -1
- package/js/src/pro/coinbase.d.ts +3 -3
- package/js/src/pro/coinbase.js +3 -3
- package/js/src/pro/coinbaseexchange.d.ts +2 -2
- package/js/src/pro/coinbaseexchange.js +2 -2
- package/js/src/pro/coinbaseinternational.d.ts +2 -2
- package/js/src/pro/coinbaseinternational.js +2 -2
- package/js/src/pro/coincheck.d.ts +1 -1
- package/js/src/pro/coincheck.js +1 -1
- package/js/src/pro/coinex.d.ts +2 -2
- package/js/src/pro/coinex.js +2 -2
- package/js/src/pro/coinone.d.ts +1 -1
- package/js/src/pro/coinone.js +1 -1
- package/js/src/pro/cryptocom.d.ts +4 -4
- package/js/src/pro/cryptocom.js +4 -4
- package/js/src/pro/deepcoin.d.ts +2 -2
- package/js/src/pro/deepcoin.js +2 -2
- package/js/src/pro/deribit.d.ts +2 -2
- package/js/src/pro/deribit.js +2 -2
- package/js/src/pro/derive.d.ts +2 -2
- package/js/src/pro/derive.js +2 -2
- package/js/src/pro/dydx.d.ts +2 -2
- package/js/src/pro/dydx.js +2 -2
- package/js/src/pro/exmo.d.ts +1 -1
- package/js/src/pro/exmo.js +1 -1
- package/js/src/pro/extended.d.ts +1 -1
- package/js/src/pro/extended.js +1 -1
- package/js/src/pro/gate.d.ts +3 -2
- package/js/src/pro/gate.js +46 -15
- package/js/src/pro/gateeu.d.ts +4 -0
- package/js/src/pro/gateeu.js +31 -0
- package/js/src/pro/gemini.d.ts +2 -2
- package/js/src/pro/gemini.js +2 -3
- package/js/src/pro/grvt.d.ts +2 -2
- package/js/src/pro/grvt.js +2 -2
- package/js/src/pro/hashkey.d.ts +1 -1
- package/js/src/pro/hashkey.js +1 -1
- package/js/src/pro/hitbtc.d.ts +1 -1
- package/js/src/pro/hitbtc.js +1 -1
- package/js/src/pro/hollaex.d.ts +1 -1
- package/js/src/pro/hollaex.js +1 -1
- package/js/src/pro/htx.d.ts +9 -8
- package/js/src/pro/htx.js +440 -100
- package/js/src/pro/hyperliquid.d.ts +2 -2
- package/js/src/pro/hyperliquid.js +2 -2
- package/js/src/pro/independentreserve.d.ts +1 -1
- package/js/src/pro/independentreserve.js +1 -1
- package/js/src/pro/kraken.d.ts +2 -2
- package/js/src/pro/kraken.js +2 -2
- package/js/src/pro/krakenfutures.d.ts +2 -2
- package/js/src/pro/krakenfutures.js +2 -2
- package/js/src/pro/kucoin.d.ts +4 -4
- package/js/src/pro/kucoin.js +4 -4
- package/js/src/pro/lighter.d.ts +2 -2
- package/js/src/pro/lighter.js +2 -2
- package/js/src/pro/luno.d.ts +1 -1
- package/js/src/pro/luno.js +1 -1
- package/js/src/pro/mexc.d.ts +2 -2
- package/js/src/pro/mexc.js +2 -2
- package/js/src/pro/modetrade.d.ts +1 -1
- package/js/src/pro/modetrade.js +1 -1
- package/js/src/pro/ndax.d.ts +1 -1
- package/js/src/pro/ndax.js +1 -1
- package/js/src/pro/okx.d.ts +4 -4
- package/js/src/pro/okx.js +4 -4
- package/js/src/pro/onetrading.d.ts +1 -1
- package/js/src/pro/onetrading.js +1 -1
- package/js/src/pro/p2b.d.ts +1 -1
- package/js/src/pro/p2b.js +1 -1
- package/js/src/pro/pacifica.d.ts +2 -2
- package/js/src/pro/pacifica.js +2 -2
- package/js/src/pro/paradex.d.ts +1 -1
- package/js/src/pro/paradex.js +1 -1
- package/js/src/pro/phemex.d.ts +1 -1
- package/js/src/pro/phemex.js +1 -1
- package/js/src/pro/poloniex.d.ts +1 -1
- package/js/src/pro/poloniex.js +1 -1
- package/js/src/pro/toobit.d.ts +2 -2
- package/js/src/pro/toobit.js +2 -2
- package/js/src/pro/upbit.d.ts +1 -1
- package/js/src/pro/upbit.js +1 -1
- package/js/src/pro/weex.d.ts +4 -4
- package/js/src/pro/weex.js +4 -4
- package/js/src/pro/whitebit.d.ts +1 -1
- package/js/src/pro/whitebit.js +1 -1
- package/js/src/pro/woo.d.ts +2 -2
- package/js/src/pro/woo.js +2 -2
- package/js/src/pro/woofipro.d.ts +1 -1
- package/js/src/pro/woofipro.js +1 -1
- package/js/src/tokocrypto.d.ts +1 -1
- package/js/src/tokocrypto.js +1 -1
- package/js/src/toobit.d.ts +1 -1
- package/js/src/toobit.js +2 -2
- package/js/src/upbit.d.ts +1 -1
- package/js/src/upbit.js +1 -1
- package/js/src/weex.d.ts +1 -1
- package/js/src/weex.js +2 -2
- package/js/src/whitebit.d.ts +1 -1
- package/js/src/whitebit.js +1 -1
- package/js/src/woo.d.ts +1 -1
- package/js/src/woo.js +1 -1
- package/js/src/woofipro.d.ts +1 -1
- package/js/src/woofipro.js +2 -4
- package/js/src/xt.js +1 -1
- package/js/src/zaif.d.ts +1 -1
- package/js/src/zaif.js +2 -2
- package/js/src/zebpay.d.ts +1 -1
- package/js/src/zebpay.js +2 -2
- package/package.json +18 -8
- package/js/src/static_dependencies/jsencrypt/JSEncrypt.d.ts +0 -116
- package/js/src/static_dependencies/jsencrypt/JSEncrypt.js +0 -194
- package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.d.ts +0 -142
- package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +0 -307
- package/js/src/static_dependencies/jsencrypt/index.d.ts +0 -3
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.d.ts +0 -51
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +0 -565
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.d.ts +0 -5
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +0 -94
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.d.ts +0 -3
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +0 -70
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.d.ts +0 -9
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +0 -91
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/oids.d.ts +0 -9778
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/oids.js +0 -1968
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.d.ts +0 -3
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +0 -25
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +0 -101
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +0 -1757
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.d.ts +0 -10
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +0 -50
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.d.ts +0 -3
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +0 -80
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.d.ts +0 -23
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +0 -377
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/util.d.ts +0 -7
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +0 -64
- package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.d.ts +0 -24
- package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +0 -1627
- package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.d.ts +0 -5
- package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +0 -75
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
// ----------------------------------------------------------------------------
|
|
2
|
-
|
|
3
|
-
// PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
|
|
4
|
-
// https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
|
|
5
|
-
// EDIT THE CORRESPONDENT .ts FILE INSTEAD
|
|
6
|
-
|
|
7
|
-
// prng4.js - uses Arcfour as a PRNG
|
|
8
|
-
export class Arcfour {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.i = 0;
|
|
11
|
-
this.j = 0;
|
|
12
|
-
this.S = [];
|
|
13
|
-
}
|
|
14
|
-
// Arcfour.prototype.init = ARC4init;
|
|
15
|
-
// Initialize arcfour context from key, an array of ints, each from [0..255]
|
|
16
|
-
init(key) {
|
|
17
|
-
let i;
|
|
18
|
-
let j;
|
|
19
|
-
let t;
|
|
20
|
-
for (i = 0; i < 256; ++i) {
|
|
21
|
-
this.S[i] = i;
|
|
22
|
-
}
|
|
23
|
-
j = 0;
|
|
24
|
-
for (i = 0; i < 256; ++i) {
|
|
25
|
-
j = (j + this.S[i] + key[i % key.length]) & 255;
|
|
26
|
-
t = this.S[i];
|
|
27
|
-
this.S[i] = this.S[j];
|
|
28
|
-
this.S[j] = t;
|
|
29
|
-
}
|
|
30
|
-
this.i = 0;
|
|
31
|
-
this.j = 0;
|
|
32
|
-
}
|
|
33
|
-
// Arcfour.prototype.next = ARC4next;
|
|
34
|
-
next() {
|
|
35
|
-
let t;
|
|
36
|
-
this.i = (this.i + 1) & 255;
|
|
37
|
-
this.j = (this.j + this.S[this.i]) & 255;
|
|
38
|
-
t = this.S[this.i];
|
|
39
|
-
this.S[this.i] = this.S[this.j];
|
|
40
|
-
this.S[this.j] = t;
|
|
41
|
-
return this.S[(t + this.S[this.i]) & 255];
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
// Plug in your RNG constructor here
|
|
45
|
-
export function prng_newstate() {
|
|
46
|
-
return new Arcfour();
|
|
47
|
-
}
|
|
48
|
-
// Pool size must be a multiple of 4 and greater than 32.
|
|
49
|
-
// An array of bytes the size of the pool will be passed to init()
|
|
50
|
-
export let rng_psize = 256;
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
// ----------------------------------------------------------------------------
|
|
2
|
-
|
|
3
|
-
// PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
|
|
4
|
-
// https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
|
|
5
|
-
// EDIT THE CORRESPONDENT .ts FILE INSTEAD
|
|
6
|
-
|
|
7
|
-
// Random number generator - requires a PRNG backend, e.g. prng4.js
|
|
8
|
-
import { prng_newstate, rng_psize } from "./prng4.js";
|
|
9
|
-
let rng_state;
|
|
10
|
-
let rng_pool = null;
|
|
11
|
-
let rng_pptr;
|
|
12
|
-
// Initialize the pool with junk if needed.
|
|
13
|
-
if (rng_pool == null) {
|
|
14
|
-
rng_pool = [];
|
|
15
|
-
rng_pptr = 0;
|
|
16
|
-
let t;
|
|
17
|
-
if (typeof window !== 'undefined' && window.crypto && window.crypto.getRandomValues) {
|
|
18
|
-
// Extract entropy (2048 bits) from RNG if available
|
|
19
|
-
const z = new Uint32Array(256);
|
|
20
|
-
window.crypto.getRandomValues(z);
|
|
21
|
-
for (t = 0; t < z.length; ++t) {
|
|
22
|
-
rng_pool[rng_pptr++] = z[t] & 255;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
// Use mouse events for entropy, if we do not have enough entropy by the time
|
|
26
|
-
// we need it, entropy will be generated by Math.random.
|
|
27
|
-
var count = 0;
|
|
28
|
-
const onMouseMoveListener = function (ev) {
|
|
29
|
-
count = count || 0;
|
|
30
|
-
if (count >= 256 || rng_pptr >= rng_psize) {
|
|
31
|
-
if (window.removeEventListener) {
|
|
32
|
-
window.removeEventListener("mousemove", onMouseMoveListener, false);
|
|
33
|
-
}
|
|
34
|
-
else if (window.detachEvent) {
|
|
35
|
-
window.detachEvent("onmousemove", onMouseMoveListener);
|
|
36
|
-
}
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
try {
|
|
40
|
-
const mouseCoordinates = ev.x + ev.y;
|
|
41
|
-
rng_pool[rng_pptr++] = mouseCoordinates & 255;
|
|
42
|
-
count += 1;
|
|
43
|
-
}
|
|
44
|
-
catch (e) {
|
|
45
|
-
// Sometimes Firefox will deny permission to access event properties for some reason. Ignore.
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
if (typeof window !== 'undefined') {
|
|
49
|
-
if (window.addEventListener) {
|
|
50
|
-
window.addEventListener("mousemove", onMouseMoveListener, false);
|
|
51
|
-
}
|
|
52
|
-
else if (window.attachEvent) {
|
|
53
|
-
window.attachEvent("onmousemove", onMouseMoveListener);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
function rng_get_byte() {
|
|
58
|
-
if (rng_state == null) {
|
|
59
|
-
rng_state = prng_newstate();
|
|
60
|
-
// At this point, we may not have collected enough entropy. If not, fall back to Math.random
|
|
61
|
-
while (rng_pptr < rng_psize) {
|
|
62
|
-
const random = Math.floor(65536 * Math.random());
|
|
63
|
-
rng_pool[rng_pptr++] = random & 255;
|
|
64
|
-
}
|
|
65
|
-
rng_state.init(rng_pool);
|
|
66
|
-
for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) {
|
|
67
|
-
rng_pool[rng_pptr] = 0;
|
|
68
|
-
}
|
|
69
|
-
rng_pptr = 0;
|
|
70
|
-
}
|
|
71
|
-
// TODO: allow reseeding after first request
|
|
72
|
-
return rng_state.next();
|
|
73
|
-
}
|
|
74
|
-
export class SecureRandom {
|
|
75
|
-
nextBytes(ba) {
|
|
76
|
-
for (let i = 0; i < ba.length; ++i) {
|
|
77
|
-
ba[i] = rng_get_byte();
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { BigInteger } from "./jsbn.js";
|
|
2
|
-
export declare class RSAKey {
|
|
3
|
-
constructor();
|
|
4
|
-
doPublic(x: BigInteger): BigInteger;
|
|
5
|
-
doPrivate(x: BigInteger): BigInteger;
|
|
6
|
-
setPublic(N: string, E: string): void;
|
|
7
|
-
encrypt(text: string): string;
|
|
8
|
-
setPrivate(N: string, E: string, D: string): void;
|
|
9
|
-
setPrivateEx(N: string, E: string, D: string, P: string, Q: string, DP: string, DQ: string, C: string): void;
|
|
10
|
-
generate(B: number, E: string): void;
|
|
11
|
-
decrypt(ctext: string): string;
|
|
12
|
-
generateAsync(B: number, E: string, callback: () => void): void;
|
|
13
|
-
sign(text: string, digestMethod: (str: string) => string, digestName: string): string;
|
|
14
|
-
verify(text: string, signature: string, digestMethod: (str: string) => string): boolean;
|
|
15
|
-
protected n: BigInteger;
|
|
16
|
-
protected e: number;
|
|
17
|
-
protected d: BigInteger;
|
|
18
|
-
protected p: BigInteger;
|
|
19
|
-
protected q: BigInteger;
|
|
20
|
-
protected dmp1: BigInteger;
|
|
21
|
-
protected dmq1: BigInteger;
|
|
22
|
-
protected coeff: BigInteger;
|
|
23
|
-
}
|
|
@@ -1,377 +0,0 @@
|
|
|
1
|
-
// ----------------------------------------------------------------------------
|
|
2
|
-
|
|
3
|
-
// PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
|
|
4
|
-
// https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
|
|
5
|
-
// EDIT THE CORRESPONDENT .ts FILE INSTEAD
|
|
6
|
-
|
|
7
|
-
// Depends on jsbn.js and rng.js
|
|
8
|
-
// Version 1.1: support utf-8 encoding in pkcs1pad2
|
|
9
|
-
// convert a (hex) string to a bignum object
|
|
10
|
-
import { BigInteger, nbi, parseBigInt } from "./jsbn.js";
|
|
11
|
-
import { SecureRandom } from "./rng.js";
|
|
12
|
-
// function linebrk(s,n) {
|
|
13
|
-
// var ret = "";
|
|
14
|
-
// var i = 0;
|
|
15
|
-
// while(i + n < s.length) {
|
|
16
|
-
// ret += s.substring(i,i+n) + "\n";
|
|
17
|
-
// i += n;
|
|
18
|
-
// }
|
|
19
|
-
// return ret + s.substring(i,s.length);
|
|
20
|
-
// }
|
|
21
|
-
// function byte2Hex(b) {
|
|
22
|
-
// if(b < 0x10)
|
|
23
|
-
// return "0" + b.toString(16);
|
|
24
|
-
// else
|
|
25
|
-
// return b.toString(16);
|
|
26
|
-
// }
|
|
27
|
-
function pkcs1pad1(s, n) {
|
|
28
|
-
if (n < s.length + 22) {
|
|
29
|
-
console.error("Message too long for RSA");
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
const len = n - s.length - 6;
|
|
33
|
-
let filler = "";
|
|
34
|
-
for (let f = 0; f < len; f += 2) {
|
|
35
|
-
filler += "ff";
|
|
36
|
-
}
|
|
37
|
-
const m = "0001" + filler + "00" + s;
|
|
38
|
-
return parseBigInt(m, 16);
|
|
39
|
-
}
|
|
40
|
-
// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint
|
|
41
|
-
function pkcs1pad2(s, n) {
|
|
42
|
-
if (n < s.length + 11) { // TODO: fix for utf-8
|
|
43
|
-
console.error("Message too long for RSA");
|
|
44
|
-
return null;
|
|
45
|
-
}
|
|
46
|
-
const ba = [];
|
|
47
|
-
let i = s.length - 1;
|
|
48
|
-
while (i >= 0 && n > 0) {
|
|
49
|
-
const c = s.charCodeAt(i--);
|
|
50
|
-
if (c < 128) { // encode using utf-8
|
|
51
|
-
ba[--n] = c;
|
|
52
|
-
}
|
|
53
|
-
else if ((c > 127) && (c < 2048)) {
|
|
54
|
-
ba[--n] = (c & 63) | 128;
|
|
55
|
-
ba[--n] = (c >> 6) | 192;
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
ba[--n] = (c & 63) | 128;
|
|
59
|
-
ba[--n] = ((c >> 6) & 63) | 128;
|
|
60
|
-
ba[--n] = (c >> 12) | 224;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
ba[--n] = 0;
|
|
64
|
-
const rng = new SecureRandom();
|
|
65
|
-
const x = [];
|
|
66
|
-
while (n > 2) { // random non-zero pad
|
|
67
|
-
x[0] = 0;
|
|
68
|
-
while (x[0] == 0) {
|
|
69
|
-
rng.nextBytes(x);
|
|
70
|
-
}
|
|
71
|
-
ba[--n] = x[0];
|
|
72
|
-
}
|
|
73
|
-
ba[--n] = 2;
|
|
74
|
-
ba[--n] = 0;
|
|
75
|
-
return new BigInteger(ba);
|
|
76
|
-
}
|
|
77
|
-
// "empty" RSA key constructor
|
|
78
|
-
export class RSAKey {
|
|
79
|
-
constructor() {
|
|
80
|
-
this.n = null;
|
|
81
|
-
this.e = 0;
|
|
82
|
-
this.d = null;
|
|
83
|
-
this.p = null;
|
|
84
|
-
this.q = null;
|
|
85
|
-
this.dmp1 = null;
|
|
86
|
-
this.dmq1 = null;
|
|
87
|
-
this.coeff = null;
|
|
88
|
-
}
|
|
89
|
-
//#region PROTECTED
|
|
90
|
-
// protected
|
|
91
|
-
// RSAKey.prototype.doPublic = RSADoPublic;
|
|
92
|
-
// Perform raw public operation on "x": return x^e (mod n)
|
|
93
|
-
doPublic(x) {
|
|
94
|
-
return x.modPowInt(this.e, this.n);
|
|
95
|
-
}
|
|
96
|
-
// RSAKey.prototype.doPrivate = RSADoPrivate;
|
|
97
|
-
// Perform raw private operation on "x": return x^d (mod n)
|
|
98
|
-
doPrivate(x) {
|
|
99
|
-
if (this.p == null || this.q == null) {
|
|
100
|
-
return x.modPow(this.d, this.n);
|
|
101
|
-
}
|
|
102
|
-
// TODO: re-calculate any missing CRT params
|
|
103
|
-
let xp = x.mod(this.p).modPow(this.dmp1, this.p);
|
|
104
|
-
const xq = x.mod(this.q).modPow(this.dmq1, this.q);
|
|
105
|
-
while (xp.compareTo(xq) < 0) {
|
|
106
|
-
xp = xp.add(this.p);
|
|
107
|
-
}
|
|
108
|
-
return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);
|
|
109
|
-
}
|
|
110
|
-
//#endregion PROTECTED
|
|
111
|
-
//#region PUBLIC
|
|
112
|
-
// RSAKey.prototype.setPublic = RSASetPublic;
|
|
113
|
-
// Set the public key fields N and e from hex strings
|
|
114
|
-
setPublic(N, E) {
|
|
115
|
-
if (N != null && E != null && N.length > 0 && E.length > 0) {
|
|
116
|
-
this.n = parseBigInt(N, 16);
|
|
117
|
-
this.e = parseInt(E, 16);
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
console.error("Invalid RSA public key");
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
// RSAKey.prototype.encrypt = RSAEncrypt;
|
|
124
|
-
// Return the PKCS#1 RSA encryption of "text" as an even-length hex string
|
|
125
|
-
encrypt(text) {
|
|
126
|
-
const maxLength = (this.n.bitLength() + 7) >> 3;
|
|
127
|
-
const m = pkcs1pad2(text, maxLength);
|
|
128
|
-
if (m == null) {
|
|
129
|
-
return null;
|
|
130
|
-
}
|
|
131
|
-
const c = this.doPublic(m);
|
|
132
|
-
if (c == null) {
|
|
133
|
-
return null;
|
|
134
|
-
}
|
|
135
|
-
let h = c.toString(16);
|
|
136
|
-
let length = h.length;
|
|
137
|
-
// fix zero before result
|
|
138
|
-
for (let i = 0; i < maxLength * 2 - length; i++) {
|
|
139
|
-
h = "0" + h;
|
|
140
|
-
}
|
|
141
|
-
return h;
|
|
142
|
-
}
|
|
143
|
-
// RSAKey.prototype.setPrivate = RSASetPrivate;
|
|
144
|
-
// Set the private key fields N, e, and d from hex strings
|
|
145
|
-
setPrivate(N, E, D) {
|
|
146
|
-
if (N != null && E != null && N.length > 0 && E.length > 0) {
|
|
147
|
-
this.n = parseBigInt(N, 16);
|
|
148
|
-
this.e = parseInt(E, 16);
|
|
149
|
-
this.d = parseBigInt(D, 16);
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
console.error("Invalid RSA private key");
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
// RSAKey.prototype.setPrivateEx = RSASetPrivateEx;
|
|
156
|
-
// Set the private key fields N, e, d and CRT params from hex strings
|
|
157
|
-
setPrivateEx(N, E, D, P, Q, DP, DQ, C) {
|
|
158
|
-
if (N != null && E != null && N.length > 0 && E.length > 0) {
|
|
159
|
-
this.n = parseBigInt(N, 16);
|
|
160
|
-
this.e = parseInt(E, 16);
|
|
161
|
-
this.d = parseBigInt(D, 16);
|
|
162
|
-
this.p = parseBigInt(P, 16);
|
|
163
|
-
this.q = parseBigInt(Q, 16);
|
|
164
|
-
this.dmp1 = parseBigInt(DP, 16);
|
|
165
|
-
this.dmq1 = parseBigInt(DQ, 16);
|
|
166
|
-
this.coeff = parseBigInt(C, 16);
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
console.error("Invalid RSA private key");
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
// RSAKey.prototype.generate = RSAGenerate;
|
|
173
|
-
// Generate a new random private key B bits long, using public expt E
|
|
174
|
-
generate(B, E) {
|
|
175
|
-
const rng = new SecureRandom();
|
|
176
|
-
const qs = B >> 1;
|
|
177
|
-
this.e = parseInt(E, 16);
|
|
178
|
-
const ee = new BigInteger(E, 16);
|
|
179
|
-
for (;;) {
|
|
180
|
-
for (;;) {
|
|
181
|
-
this.p = new BigInteger(B - qs, 1, rng);
|
|
182
|
-
if (this.p.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) {
|
|
183
|
-
break;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
for (;;) {
|
|
187
|
-
this.q = new BigInteger(qs, 1, rng);
|
|
188
|
-
if (this.q.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) {
|
|
189
|
-
break;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
if (this.p.compareTo(this.q) <= 0) {
|
|
193
|
-
const t = this.p;
|
|
194
|
-
this.p = this.q;
|
|
195
|
-
this.q = t;
|
|
196
|
-
}
|
|
197
|
-
const p1 = this.p.subtract(BigInteger.ONE);
|
|
198
|
-
const q1 = this.q.subtract(BigInteger.ONE);
|
|
199
|
-
const phi = p1.multiply(q1);
|
|
200
|
-
if (phi.gcd(ee).compareTo(BigInteger.ONE) == 0) {
|
|
201
|
-
this.n = this.p.multiply(this.q);
|
|
202
|
-
this.d = ee.modInverse(phi);
|
|
203
|
-
this.dmp1 = this.d.mod(p1);
|
|
204
|
-
this.dmq1 = this.d.mod(q1);
|
|
205
|
-
this.coeff = this.q.modInverse(this.p);
|
|
206
|
-
break;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
// RSAKey.prototype.decrypt = RSADecrypt;
|
|
211
|
-
// Return the PKCS#1 RSA decryption of "ctext".
|
|
212
|
-
// "ctext" is an even-length hex string and the output is a plain string.
|
|
213
|
-
decrypt(ctext) {
|
|
214
|
-
const c = parseBigInt(ctext, 16);
|
|
215
|
-
const m = this.doPrivate(c);
|
|
216
|
-
if (m == null) {
|
|
217
|
-
return null;
|
|
218
|
-
}
|
|
219
|
-
return pkcs1unpad2(m, (this.n.bitLength() + 7) >> 3);
|
|
220
|
-
}
|
|
221
|
-
// Generate a new random private key B bits long, using public expt E
|
|
222
|
-
generateAsync(B, E, callback) {
|
|
223
|
-
const rng = new SecureRandom();
|
|
224
|
-
const qs = B >> 1;
|
|
225
|
-
this.e = parseInt(E, 16);
|
|
226
|
-
const ee = new BigInteger(E, 16);
|
|
227
|
-
const rsa = this;
|
|
228
|
-
// These functions have non-descript names because they were originally for(;;) loops.
|
|
229
|
-
// I don't know about cryptography to give them better names than loop1-4.
|
|
230
|
-
const loop1 = function () {
|
|
231
|
-
const loop4 = function () {
|
|
232
|
-
if (rsa.p.compareTo(rsa.q) <= 0) {
|
|
233
|
-
const t = rsa.p;
|
|
234
|
-
rsa.p = rsa.q;
|
|
235
|
-
rsa.q = t;
|
|
236
|
-
}
|
|
237
|
-
const p1 = rsa.p.subtract(BigInteger.ONE);
|
|
238
|
-
const q1 = rsa.q.subtract(BigInteger.ONE);
|
|
239
|
-
const phi = p1.multiply(q1);
|
|
240
|
-
if (phi.gcd(ee).compareTo(BigInteger.ONE) == 0) {
|
|
241
|
-
rsa.n = rsa.p.multiply(rsa.q);
|
|
242
|
-
rsa.d = ee.modInverse(phi);
|
|
243
|
-
rsa.dmp1 = rsa.d.mod(p1);
|
|
244
|
-
rsa.dmq1 = rsa.d.mod(q1);
|
|
245
|
-
rsa.coeff = rsa.q.modInverse(rsa.p);
|
|
246
|
-
setTimeout(function () { callback(); }, 0); // escape
|
|
247
|
-
}
|
|
248
|
-
else {
|
|
249
|
-
setTimeout(loop1, 0);
|
|
250
|
-
}
|
|
251
|
-
};
|
|
252
|
-
const loop3 = function () {
|
|
253
|
-
rsa.q = nbi();
|
|
254
|
-
rsa.q.fromNumberAsync(qs, 1, rng, function () {
|
|
255
|
-
rsa.q.subtract(BigInteger.ONE).gcda(ee, function (r) {
|
|
256
|
-
if (r.compareTo(BigInteger.ONE) == 0 && rsa.q.isProbablePrime(10)) {
|
|
257
|
-
setTimeout(loop4, 0);
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
setTimeout(loop3, 0);
|
|
261
|
-
}
|
|
262
|
-
});
|
|
263
|
-
});
|
|
264
|
-
};
|
|
265
|
-
const loop2 = function () {
|
|
266
|
-
rsa.p = nbi();
|
|
267
|
-
rsa.p.fromNumberAsync(B - qs, 1, rng, function () {
|
|
268
|
-
rsa.p.subtract(BigInteger.ONE).gcda(ee, function (r) {
|
|
269
|
-
if (r.compareTo(BigInteger.ONE) == 0 && rsa.p.isProbablePrime(10)) {
|
|
270
|
-
setTimeout(loop3, 0);
|
|
271
|
-
}
|
|
272
|
-
else {
|
|
273
|
-
setTimeout(loop2, 0);
|
|
274
|
-
}
|
|
275
|
-
});
|
|
276
|
-
});
|
|
277
|
-
};
|
|
278
|
-
setTimeout(loop2, 0);
|
|
279
|
-
};
|
|
280
|
-
setTimeout(loop1, 0);
|
|
281
|
-
}
|
|
282
|
-
sign(text, digestMethod, digestName) {
|
|
283
|
-
const header = getDigestHeader(digestName);
|
|
284
|
-
const digest = header + digestMethod(text).toString();
|
|
285
|
-
const m = pkcs1pad1(digest, this.n.bitLength() / 4);
|
|
286
|
-
if (m == null) {
|
|
287
|
-
return null;
|
|
288
|
-
}
|
|
289
|
-
const c = this.doPrivate(m);
|
|
290
|
-
if (c == null) {
|
|
291
|
-
return null;
|
|
292
|
-
}
|
|
293
|
-
const h = c.toString(16);
|
|
294
|
-
if ((h.length & 1) == 0) {
|
|
295
|
-
return h;
|
|
296
|
-
}
|
|
297
|
-
else {
|
|
298
|
-
return "0" + h;
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
verify(text, signature, digestMethod) {
|
|
302
|
-
const c = parseBigInt(signature, 16);
|
|
303
|
-
const m = this.doPublic(c);
|
|
304
|
-
if (m == null) {
|
|
305
|
-
return null;
|
|
306
|
-
}
|
|
307
|
-
const unpadded = m.toString(16).replace(/^1f+00/, "");
|
|
308
|
-
const digest = removeDigestHeader(unpadded);
|
|
309
|
-
return digest == digestMethod(text).toString();
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
// Undo PKCS#1 (type 2, random) padding and, if valid, return the plaintext
|
|
313
|
-
function pkcs1unpad2(d, n) {
|
|
314
|
-
const b = d.toByteArray();
|
|
315
|
-
let i = 0;
|
|
316
|
-
while (i < b.length && b[i] == 0) {
|
|
317
|
-
++i;
|
|
318
|
-
}
|
|
319
|
-
if (b.length - i != n - 1 || b[i] != 2) {
|
|
320
|
-
return null;
|
|
321
|
-
}
|
|
322
|
-
++i;
|
|
323
|
-
while (b[i] != 0) {
|
|
324
|
-
if (++i >= b.length) {
|
|
325
|
-
return null;
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
let ret = "";
|
|
329
|
-
while (++i < b.length) {
|
|
330
|
-
const c = b[i] & 255;
|
|
331
|
-
if (c < 128) { // utf-8 decode
|
|
332
|
-
ret += String.fromCharCode(c);
|
|
333
|
-
}
|
|
334
|
-
else if ((c > 191) && (c < 224)) {
|
|
335
|
-
ret += String.fromCharCode(((c & 31) << 6) | (b[i + 1] & 63));
|
|
336
|
-
++i;
|
|
337
|
-
}
|
|
338
|
-
else {
|
|
339
|
-
ret += String.fromCharCode(((c & 15) << 12) | ((b[i + 1] & 63) << 6) | (b[i + 2] & 63));
|
|
340
|
-
i += 2;
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
return ret;
|
|
344
|
-
}
|
|
345
|
-
// https://tools.ietf.org/html/rfc3447#page-43
|
|
346
|
-
const DIGEST_HEADERS = {
|
|
347
|
-
md2: "3020300c06082a864886f70d020205000410",
|
|
348
|
-
md5: "3020300c06082a864886f70d020505000410",
|
|
349
|
-
sha1: "3021300906052b0e03021a05000414",
|
|
350
|
-
sha224: "302d300d06096086480165030402040500041c",
|
|
351
|
-
sha256: "3031300d060960864801650304020105000420",
|
|
352
|
-
sha384: "3041300d060960864801650304020205000430",
|
|
353
|
-
sha512: "3051300d060960864801650304020305000440",
|
|
354
|
-
ripemd160: "3021300906052b2403020105000414"
|
|
355
|
-
};
|
|
356
|
-
function getDigestHeader(name) {
|
|
357
|
-
return DIGEST_HEADERS[name] || "";
|
|
358
|
-
}
|
|
359
|
-
function removeDigestHeader(str) {
|
|
360
|
-
for (const name in DIGEST_HEADERS) {
|
|
361
|
-
if (DIGEST_HEADERS.hasOwnProperty(name)) {
|
|
362
|
-
const header = DIGEST_HEADERS[name];
|
|
363
|
-
const len = header.length;
|
|
364
|
-
if (str.substr(0, len) == header) {
|
|
365
|
-
return str.substr(len);
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
return str;
|
|
370
|
-
}
|
|
371
|
-
// Return the PKCS#1 RSA encryption of "text" as a Base64-encoded string
|
|
372
|
-
// function RSAEncryptB64(text) {
|
|
373
|
-
// var h = this.encrypt(text);
|
|
374
|
-
// if(h) return hex2b64(h); else return null;
|
|
375
|
-
// }
|
|
376
|
-
// public
|
|
377
|
-
// RSAKey.prototype.encrypt_b64 = RSAEncryptB64;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare function int2char(n: number): string;
|
|
2
|
-
export declare function op_and(x: number, y: number): number;
|
|
3
|
-
export declare function op_or(x: number, y: number): number;
|
|
4
|
-
export declare function op_xor(x: number, y: number): number;
|
|
5
|
-
export declare function op_andnot(x: number, y: number): number;
|
|
6
|
-
export declare function lbit(x: number): number;
|
|
7
|
-
export declare function cbit(x: number): number;
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
// ----------------------------------------------------------------------------
|
|
2
|
-
|
|
3
|
-
// PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
|
|
4
|
-
// https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
|
|
5
|
-
// EDIT THE CORRESPONDENT .ts FILE INSTEAD
|
|
6
|
-
|
|
7
|
-
const BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
|
|
8
|
-
export function int2char(n) {
|
|
9
|
-
return BI_RM.charAt(n);
|
|
10
|
-
}
|
|
11
|
-
//#region BIT_OPERATIONS
|
|
12
|
-
// (public) this & a
|
|
13
|
-
export function op_and(x, y) {
|
|
14
|
-
return x & y;
|
|
15
|
-
}
|
|
16
|
-
// (public) this | a
|
|
17
|
-
export function op_or(x, y) {
|
|
18
|
-
return x | y;
|
|
19
|
-
}
|
|
20
|
-
// (public) this ^ a
|
|
21
|
-
export function op_xor(x, y) {
|
|
22
|
-
return x ^ y;
|
|
23
|
-
}
|
|
24
|
-
// (public) this & ~a
|
|
25
|
-
export function op_andnot(x, y) {
|
|
26
|
-
return x & ~y;
|
|
27
|
-
}
|
|
28
|
-
// return index of lowest 1-bit in x, x < 2^31
|
|
29
|
-
export function lbit(x) {
|
|
30
|
-
if (x == 0) {
|
|
31
|
-
return -1;
|
|
32
|
-
}
|
|
33
|
-
let r = 0;
|
|
34
|
-
if ((x & 0xffff) == 0) {
|
|
35
|
-
x >>= 16;
|
|
36
|
-
r += 16;
|
|
37
|
-
}
|
|
38
|
-
if ((x & 0xff) == 0) {
|
|
39
|
-
x >>= 8;
|
|
40
|
-
r += 8;
|
|
41
|
-
}
|
|
42
|
-
if ((x & 0xf) == 0) {
|
|
43
|
-
x >>= 4;
|
|
44
|
-
r += 4;
|
|
45
|
-
}
|
|
46
|
-
if ((x & 3) == 0) {
|
|
47
|
-
x >>= 2;
|
|
48
|
-
r += 2;
|
|
49
|
-
}
|
|
50
|
-
if ((x & 1) == 0) {
|
|
51
|
-
++r;
|
|
52
|
-
}
|
|
53
|
-
return r;
|
|
54
|
-
}
|
|
55
|
-
// return number of 1 bits in x
|
|
56
|
-
export function cbit(x) {
|
|
57
|
-
let r = 0;
|
|
58
|
-
while (x != 0) {
|
|
59
|
-
x &= x - 1;
|
|
60
|
-
++r;
|
|
61
|
-
}
|
|
62
|
-
return r;
|
|
63
|
-
}
|
|
64
|
-
//#endregion BIT_OPERATIONS
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileOverview
|
|
3
|
-
* @name asn1-1.0.js
|
|
4
|
-
* @author Kenji Urushima kenji.urushima@gmail.com
|
|
5
|
-
* @version asn1 1.0.13 (2017-Jun-02)
|
|
6
|
-
* @since jsrsasign 2.1
|
|
7
|
-
* @license <a href="https://kjur.github.io/jsrsasign/license/">MIT License</a>
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* kjur's class library name space
|
|
11
|
-
* <p>
|
|
12
|
-
* This name space provides following name spaces:
|
|
13
|
-
* <ul>
|
|
14
|
-
* <li>{@link KJUR.asn1} - ASN.1 primitive hexadecimal encoder</li>
|
|
15
|
-
* <li>{@link KJUR.asn1.x509} - ASN.1 structure for X.509 certificate and CRL</li>
|
|
16
|
-
* <li>{@link KJUR.crypto} - Java Cryptographic Extension(JCE) style MessageDigest/Signature
|
|
17
|
-
* class and utilities</li>
|
|
18
|
-
* </ul>
|
|
19
|
-
* </p>
|
|
20
|
-
* NOTE: Please ignore method summary and document of this namespace. This caused by a bug of jsdoc2.
|
|
21
|
-
* @name KJUR
|
|
22
|
-
* @namespace kjur's class library name space
|
|
23
|
-
*/
|
|
24
|
-
export declare var KJUR: any;
|