ccxt 4.5.60 → 4.5.61
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 +46 -45
- 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 +1 -1
- 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 +2 -2
- 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 +1 -1
- 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 +1 -1
- 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 +3 -3
- package/dist/cjs/src/foxbit.js +1 -1
- package/dist/cjs/src/gate.js +2 -2
- 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 +2 -2
- 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 +1 -1
- 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 +2 -2
- 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 +1 -1
- 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 +1 -1
- 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 +3 -3
- 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 +2 -2
- 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 +2 -2
- package/js/src/pro/htx.js +2 -2
- 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 +17 -7
- 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,142 +0,0 @@
|
|
|
1
|
-
import { RSAKey } from "./lib/jsbn/rsa.js";
|
|
2
|
-
/**
|
|
3
|
-
* Create a new JSEncryptRSAKey that extends Tom Wu's RSA key object.
|
|
4
|
-
* This object is just a decorator for parsing the key parameter
|
|
5
|
-
* @param {string|Object} key - The key in string format, or an object containing
|
|
6
|
-
* the parameters needed to build a RSAKey object.
|
|
7
|
-
* @constructor
|
|
8
|
-
*/
|
|
9
|
-
export declare class JSEncryptRSAKey extends RSAKey {
|
|
10
|
-
constructor(key?: string);
|
|
11
|
-
/**
|
|
12
|
-
* Method to parse a pem encoded string containing both a public or private key.
|
|
13
|
-
* The method will translate the pem encoded string in a der encoded string and
|
|
14
|
-
* will parse private key and public key parameters. This method accepts public key
|
|
15
|
-
* in the rsaencryption pkcs #1 format (oid: 1.2.840.113549.1.1.1).
|
|
16
|
-
*
|
|
17
|
-
* @todo Check how many rsa formats use the same format of pkcs #1.
|
|
18
|
-
*
|
|
19
|
-
* The format is defined as:
|
|
20
|
-
* PublicKeyInfo ::= SEQUENCE {
|
|
21
|
-
* algorithm AlgorithmIdentifier,
|
|
22
|
-
* PublicKey BIT STRING
|
|
23
|
-
* }
|
|
24
|
-
* Where AlgorithmIdentifier is:
|
|
25
|
-
* AlgorithmIdentifier ::= SEQUENCE {
|
|
26
|
-
* algorithm OBJECT IDENTIFIER, the OID of the enc algorithm
|
|
27
|
-
* parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)
|
|
28
|
-
* }
|
|
29
|
-
* and PublicKey is a SEQUENCE encapsulated in a BIT STRING
|
|
30
|
-
* RSAPublicKey ::= SEQUENCE {
|
|
31
|
-
* modulus INTEGER, -- n
|
|
32
|
-
* publicExponent INTEGER -- e
|
|
33
|
-
* }
|
|
34
|
-
* it's possible to examine the structure of the keys obtained from openssl using
|
|
35
|
-
* an asn.1 dumper as the one used here to parse the components: http://lapo.it/asn1js/
|
|
36
|
-
* @argument {string} pem the pem encoded string, can include the BEGIN/END header/footer
|
|
37
|
-
* @private
|
|
38
|
-
*/
|
|
39
|
-
parseKey(pem: string): boolean;
|
|
40
|
-
/**
|
|
41
|
-
* Translate rsa parameters in a hex encoded string representing the rsa key.
|
|
42
|
-
*
|
|
43
|
-
* The translation follow the ASN.1 notation :
|
|
44
|
-
* RSAPrivateKey ::= SEQUENCE {
|
|
45
|
-
* version Version,
|
|
46
|
-
* modulus INTEGER, -- n
|
|
47
|
-
* publicExponent INTEGER, -- e
|
|
48
|
-
* privateExponent INTEGER, -- d
|
|
49
|
-
* prime1 INTEGER, -- p
|
|
50
|
-
* prime2 INTEGER, -- q
|
|
51
|
-
* exponent1 INTEGER, -- d mod (p1)
|
|
52
|
-
* exponent2 INTEGER, -- d mod (q-1)
|
|
53
|
-
* coefficient INTEGER, -- (inverse of q) mod p
|
|
54
|
-
* }
|
|
55
|
-
* @returns {string} DER Encoded String representing the rsa private key
|
|
56
|
-
* @private
|
|
57
|
-
*/
|
|
58
|
-
getPrivateBaseKey(): any;
|
|
59
|
-
/**
|
|
60
|
-
* base64 (pem) encoded version of the DER encoded representation
|
|
61
|
-
* @returns {string} pem encoded representation without header and footer
|
|
62
|
-
* @public
|
|
63
|
-
*/
|
|
64
|
-
getPrivateBaseKeyB64(): string;
|
|
65
|
-
/**
|
|
66
|
-
* Translate rsa parameters in a hex encoded string representing the rsa public key.
|
|
67
|
-
* The representation follow the ASN.1 notation :
|
|
68
|
-
* PublicKeyInfo ::= SEQUENCE {
|
|
69
|
-
* algorithm AlgorithmIdentifier,
|
|
70
|
-
* PublicKey BIT STRING
|
|
71
|
-
* }
|
|
72
|
-
* Where AlgorithmIdentifier is:
|
|
73
|
-
* AlgorithmIdentifier ::= SEQUENCE {
|
|
74
|
-
* algorithm OBJECT IDENTIFIER, the OID of the enc algorithm
|
|
75
|
-
* parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)
|
|
76
|
-
* }
|
|
77
|
-
* and PublicKey is a SEQUENCE encapsulated in a BIT STRING
|
|
78
|
-
* RSAPublicKey ::= SEQUENCE {
|
|
79
|
-
* modulus INTEGER, -- n
|
|
80
|
-
* publicExponent INTEGER -- e
|
|
81
|
-
* }
|
|
82
|
-
* @returns {string} DER Encoded String representing the rsa public key
|
|
83
|
-
* @private
|
|
84
|
-
*/
|
|
85
|
-
getPublicBaseKey(): any;
|
|
86
|
-
/**
|
|
87
|
-
* base64 (pem) encoded version of the DER encoded representation
|
|
88
|
-
* @returns {string} pem encoded representation without header and footer
|
|
89
|
-
* @public
|
|
90
|
-
*/
|
|
91
|
-
getPublicBaseKeyB64(): string;
|
|
92
|
-
/**
|
|
93
|
-
* wrap the string in block of width chars. The default value for rsa keys is 64
|
|
94
|
-
* characters.
|
|
95
|
-
* @param {string} str the pem encoded string without header and footer
|
|
96
|
-
* @param {Number} [width=64] - the length the string has to be wrapped at
|
|
97
|
-
* @returns {string}
|
|
98
|
-
* @private
|
|
99
|
-
*/
|
|
100
|
-
static wordwrap(str: string, width?: number): string;
|
|
101
|
-
/**
|
|
102
|
-
* Retrieve the pem encoded private key
|
|
103
|
-
* @returns {string} the pem encoded private key with header/footer
|
|
104
|
-
* @public
|
|
105
|
-
*/
|
|
106
|
-
getPrivateKey(): string;
|
|
107
|
-
/**
|
|
108
|
-
* Retrieve the pem encoded public key
|
|
109
|
-
* @returns {string} the pem encoded public key with header/footer
|
|
110
|
-
* @public
|
|
111
|
-
*/
|
|
112
|
-
getPublicKey(): string;
|
|
113
|
-
/**
|
|
114
|
-
* Check if the object contains the necessary parameters to populate the rsa modulus
|
|
115
|
-
* and public exponent parameters.
|
|
116
|
-
* @param {object} [obj={}] - An object that may contain the two public key
|
|
117
|
-
* parameters
|
|
118
|
-
* @returns {boolean} true if the object contains both the modulus and the public exponent
|
|
119
|
-
* properties (n and e)
|
|
120
|
-
* @todo check for types of n and e. N should be a parseable bigInt object, E should
|
|
121
|
-
* be a parseable integer number
|
|
122
|
-
* @private
|
|
123
|
-
*/
|
|
124
|
-
static hasPublicKeyProperty(obj: object): boolean;
|
|
125
|
-
/**
|
|
126
|
-
* Check if the object contains ALL the parameters of an RSA key.
|
|
127
|
-
* @param {object} [obj={}] - An object that may contain nine rsa key
|
|
128
|
-
* parameters
|
|
129
|
-
* @returns {boolean} true if the object contains all the parameters needed
|
|
130
|
-
* @todo check for types of the parameters all the parameters but the public exponent
|
|
131
|
-
* should be parseable bigint objects, the public exponent should be a parseable integer number
|
|
132
|
-
* @private
|
|
133
|
-
*/
|
|
134
|
-
static hasPrivateKeyProperty(obj: object): boolean;
|
|
135
|
-
/**
|
|
136
|
-
* Parse the properties of obj in the current rsa object. Obj should AT LEAST
|
|
137
|
-
* include the modulus and public exponent (n, e) parameters.
|
|
138
|
-
* @param {object} obj - the object containing rsa parameters
|
|
139
|
-
* @private
|
|
140
|
-
*/
|
|
141
|
-
parsePropertiesFrom(obj: any): void;
|
|
142
|
-
}
|
|
@@ -1,307 +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
|
-
import { hex2b64 } from "./lib/jsbn/base64.js";
|
|
8
|
-
import { Hex } from "./lib/asn1js/hex.js";
|
|
9
|
-
import { Base64 } from "./lib/asn1js/base64.js";
|
|
10
|
-
import { ASN1 } from "./lib/asn1js/asn1.js";
|
|
11
|
-
import { RSAKey } from "./lib/jsbn/rsa.js";
|
|
12
|
-
import { parseBigInt } from "./lib/jsbn/jsbn.js";
|
|
13
|
-
import { KJUR } from "./lib/jsrsasign/asn1-1.0.js";
|
|
14
|
-
/**
|
|
15
|
-
* Create a new JSEncryptRSAKey that extends Tom Wu's RSA key object.
|
|
16
|
-
* This object is just a decorator for parsing the key parameter
|
|
17
|
-
* @param {string|Object} key - The key in string format, or an object containing
|
|
18
|
-
* the parameters needed to build a RSAKey object.
|
|
19
|
-
* @constructor
|
|
20
|
-
*/
|
|
21
|
-
export class JSEncryptRSAKey extends RSAKey {
|
|
22
|
-
constructor(key) {
|
|
23
|
-
super();
|
|
24
|
-
// Call the super constructor.
|
|
25
|
-
// RSAKey.call(this);
|
|
26
|
-
// If a key key was provided.
|
|
27
|
-
if (key) {
|
|
28
|
-
// If this is a string...
|
|
29
|
-
if (typeof key === "string") {
|
|
30
|
-
this.parseKey(key);
|
|
31
|
-
}
|
|
32
|
-
else if (JSEncryptRSAKey.hasPrivateKeyProperty(key) ||
|
|
33
|
-
JSEncryptRSAKey.hasPublicKeyProperty(key)) {
|
|
34
|
-
// Set the values for the key.
|
|
35
|
-
this.parsePropertiesFrom(key);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Method to parse a pem encoded string containing both a public or private key.
|
|
41
|
-
* The method will translate the pem encoded string in a der encoded string and
|
|
42
|
-
* will parse private key and public key parameters. This method accepts public key
|
|
43
|
-
* in the rsaencryption pkcs #1 format (oid: 1.2.840.113549.1.1.1).
|
|
44
|
-
*
|
|
45
|
-
* @todo Check how many rsa formats use the same format of pkcs #1.
|
|
46
|
-
*
|
|
47
|
-
* The format is defined as:
|
|
48
|
-
* PublicKeyInfo ::= SEQUENCE {
|
|
49
|
-
* algorithm AlgorithmIdentifier,
|
|
50
|
-
* PublicKey BIT STRING
|
|
51
|
-
* }
|
|
52
|
-
* Where AlgorithmIdentifier is:
|
|
53
|
-
* AlgorithmIdentifier ::= SEQUENCE {
|
|
54
|
-
* algorithm OBJECT IDENTIFIER, the OID of the enc algorithm
|
|
55
|
-
* parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)
|
|
56
|
-
* }
|
|
57
|
-
* and PublicKey is a SEQUENCE encapsulated in a BIT STRING
|
|
58
|
-
* RSAPublicKey ::= SEQUENCE {
|
|
59
|
-
* modulus INTEGER, -- n
|
|
60
|
-
* publicExponent INTEGER -- e
|
|
61
|
-
* }
|
|
62
|
-
* it's possible to examine the structure of the keys obtained from openssl using
|
|
63
|
-
* an asn.1 dumper as the one used here to parse the components: http://lapo.it/asn1js/
|
|
64
|
-
* @argument {string} pem the pem encoded string, can include the BEGIN/END header/footer
|
|
65
|
-
* @private
|
|
66
|
-
*/
|
|
67
|
-
parseKey(pem) {
|
|
68
|
-
try {
|
|
69
|
-
let modulus = 0;
|
|
70
|
-
let public_exponent = 0;
|
|
71
|
-
const reHex = /^\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\s*)+$/;
|
|
72
|
-
const der = reHex.test(pem) ? Hex.decode(pem) : Base64.unarmor(pem);
|
|
73
|
-
let asn1 = ASN1.decode(der);
|
|
74
|
-
// Fixes a bug with OpenSSL 1.0+ private keys
|
|
75
|
-
if (asn1.sub.length === 3) {
|
|
76
|
-
asn1 = asn1.sub[2].sub[0];
|
|
77
|
-
}
|
|
78
|
-
if (asn1.sub.length === 9) {
|
|
79
|
-
// Parse the private key.
|
|
80
|
-
modulus = asn1.sub[1].getHexStringValue(); // bigint
|
|
81
|
-
this.n = parseBigInt(modulus, 16);
|
|
82
|
-
public_exponent = asn1.sub[2].getHexStringValue(); // int
|
|
83
|
-
this.e = parseInt(public_exponent, 16);
|
|
84
|
-
const private_exponent = asn1.sub[3].getHexStringValue(); // bigint
|
|
85
|
-
this.d = parseBigInt(private_exponent, 16);
|
|
86
|
-
const prime1 = asn1.sub[4].getHexStringValue(); // bigint
|
|
87
|
-
this.p = parseBigInt(prime1, 16);
|
|
88
|
-
const prime2 = asn1.sub[5].getHexStringValue(); // bigint
|
|
89
|
-
this.q = parseBigInt(prime2, 16);
|
|
90
|
-
const exponent1 = asn1.sub[6].getHexStringValue(); // bigint
|
|
91
|
-
this.dmp1 = parseBigInt(exponent1, 16);
|
|
92
|
-
const exponent2 = asn1.sub[7].getHexStringValue(); // bigint
|
|
93
|
-
this.dmq1 = parseBigInt(exponent2, 16);
|
|
94
|
-
const coefficient = asn1.sub[8].getHexStringValue(); // bigint
|
|
95
|
-
this.coeff = parseBigInt(coefficient, 16);
|
|
96
|
-
}
|
|
97
|
-
else if (asn1.sub.length === 2) {
|
|
98
|
-
if (asn1.sub[0].sub) {
|
|
99
|
-
// Parse ASN.1 SubjectPublicKeyInfo type as defined by X.509
|
|
100
|
-
var bit_string = asn1.sub[1];
|
|
101
|
-
var sequence = bit_string.sub[0];
|
|
102
|
-
modulus = sequence.sub[0].getHexStringValue();
|
|
103
|
-
this.n = parseBigInt(modulus, 16);
|
|
104
|
-
public_exponent = sequence.sub[1].getHexStringValue();
|
|
105
|
-
this.e = parseInt(public_exponent, 16);
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
// Parse ASN.1 RSAPublicKey type as defined by PKCS #1
|
|
109
|
-
modulus = asn1.sub[0].getHexStringValue();
|
|
110
|
-
this.n = parseBigInt(modulus, 16);
|
|
111
|
-
public_exponent = asn1.sub[1].getHexStringValue();
|
|
112
|
-
this.e = parseInt(public_exponent, 16);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
return false;
|
|
117
|
-
}
|
|
118
|
-
return true;
|
|
119
|
-
}
|
|
120
|
-
catch (ex) {
|
|
121
|
-
return false;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Translate rsa parameters in a hex encoded string representing the rsa key.
|
|
126
|
-
*
|
|
127
|
-
* The translation follow the ASN.1 notation :
|
|
128
|
-
* RSAPrivateKey ::= SEQUENCE {
|
|
129
|
-
* version Version,
|
|
130
|
-
* modulus INTEGER, -- n
|
|
131
|
-
* publicExponent INTEGER, -- e
|
|
132
|
-
* privateExponent INTEGER, -- d
|
|
133
|
-
* prime1 INTEGER, -- p
|
|
134
|
-
* prime2 INTEGER, -- q
|
|
135
|
-
* exponent1 INTEGER, -- d mod (p1)
|
|
136
|
-
* exponent2 INTEGER, -- d mod (q-1)
|
|
137
|
-
* coefficient INTEGER, -- (inverse of q) mod p
|
|
138
|
-
* }
|
|
139
|
-
* @returns {string} DER Encoded String representing the rsa private key
|
|
140
|
-
* @private
|
|
141
|
-
*/
|
|
142
|
-
getPrivateBaseKey() {
|
|
143
|
-
const options = {
|
|
144
|
-
array: [
|
|
145
|
-
new KJUR.asn1.DERInteger({ int: 0 }),
|
|
146
|
-
new KJUR.asn1.DERInteger({ bigint: this.n }),
|
|
147
|
-
new KJUR.asn1.DERInteger({ int: this.e }),
|
|
148
|
-
new KJUR.asn1.DERInteger({ bigint: this.d }),
|
|
149
|
-
new KJUR.asn1.DERInteger({ bigint: this.p }),
|
|
150
|
-
new KJUR.asn1.DERInteger({ bigint: this.q }),
|
|
151
|
-
new KJUR.asn1.DERInteger({ bigint: this.dmp1 }),
|
|
152
|
-
new KJUR.asn1.DERInteger({ bigint: this.dmq1 }),
|
|
153
|
-
new KJUR.asn1.DERInteger({ bigint: this.coeff }),
|
|
154
|
-
],
|
|
155
|
-
};
|
|
156
|
-
const seq = new KJUR.asn1.DERSequence(options);
|
|
157
|
-
return seq.getEncodedHex();
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* base64 (pem) encoded version of the DER encoded representation
|
|
161
|
-
* @returns {string} pem encoded representation without header and footer
|
|
162
|
-
* @public
|
|
163
|
-
*/
|
|
164
|
-
getPrivateBaseKeyB64() {
|
|
165
|
-
return hex2b64(this.getPrivateBaseKey());
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Translate rsa parameters in a hex encoded string representing the rsa public key.
|
|
169
|
-
* The representation follow the ASN.1 notation :
|
|
170
|
-
* PublicKeyInfo ::= SEQUENCE {
|
|
171
|
-
* algorithm AlgorithmIdentifier,
|
|
172
|
-
* PublicKey BIT STRING
|
|
173
|
-
* }
|
|
174
|
-
* Where AlgorithmIdentifier is:
|
|
175
|
-
* AlgorithmIdentifier ::= SEQUENCE {
|
|
176
|
-
* algorithm OBJECT IDENTIFIER, the OID of the enc algorithm
|
|
177
|
-
* parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)
|
|
178
|
-
* }
|
|
179
|
-
* and PublicKey is a SEQUENCE encapsulated in a BIT STRING
|
|
180
|
-
* RSAPublicKey ::= SEQUENCE {
|
|
181
|
-
* modulus INTEGER, -- n
|
|
182
|
-
* publicExponent INTEGER -- e
|
|
183
|
-
* }
|
|
184
|
-
* @returns {string} DER Encoded String representing the rsa public key
|
|
185
|
-
* @private
|
|
186
|
-
*/
|
|
187
|
-
getPublicBaseKey() {
|
|
188
|
-
const first_sequence = new KJUR.asn1.DERSequence({
|
|
189
|
-
array: [
|
|
190
|
-
new KJUR.asn1.DERObjectIdentifier({ oid: "1.2.840.113549.1.1.1" }), // RSA Encryption pkcs #1 oid
|
|
191
|
-
new KJUR.asn1.DERNull(),
|
|
192
|
-
],
|
|
193
|
-
});
|
|
194
|
-
const second_sequence = new KJUR.asn1.DERSequence({
|
|
195
|
-
array: [
|
|
196
|
-
new KJUR.asn1.DERInteger({ bigint: this.n }),
|
|
197
|
-
new KJUR.asn1.DERInteger({ int: this.e }),
|
|
198
|
-
],
|
|
199
|
-
});
|
|
200
|
-
const bit_string = new KJUR.asn1.DERBitString({
|
|
201
|
-
hex: "00" + second_sequence.getEncodedHex(),
|
|
202
|
-
});
|
|
203
|
-
const seq = new KJUR.asn1.DERSequence({
|
|
204
|
-
array: [first_sequence, bit_string],
|
|
205
|
-
});
|
|
206
|
-
return seq.getEncodedHex();
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* base64 (pem) encoded version of the DER encoded representation
|
|
210
|
-
* @returns {string} pem encoded representation without header and footer
|
|
211
|
-
* @public
|
|
212
|
-
*/
|
|
213
|
-
getPublicBaseKeyB64() {
|
|
214
|
-
return hex2b64(this.getPublicBaseKey());
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* wrap the string in block of width chars. The default value for rsa keys is 64
|
|
218
|
-
* characters.
|
|
219
|
-
* @param {string} str the pem encoded string without header and footer
|
|
220
|
-
* @param {Number} [width=64] - the length the string has to be wrapped at
|
|
221
|
-
* @returns {string}
|
|
222
|
-
* @private
|
|
223
|
-
*/
|
|
224
|
-
static wordwrap(str, width) {
|
|
225
|
-
width = width || 64;
|
|
226
|
-
if (!str) {
|
|
227
|
-
return str;
|
|
228
|
-
}
|
|
229
|
-
const regex = "(.{1," + width + "})( +|$\n?)|(.{1," + width + "})";
|
|
230
|
-
return str.match(RegExp(regex, "g")).join("\n");
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Retrieve the pem encoded private key
|
|
234
|
-
* @returns {string} the pem encoded private key with header/footer
|
|
235
|
-
* @public
|
|
236
|
-
*/
|
|
237
|
-
getPrivateKey() {
|
|
238
|
-
let key = "-----BEGIN RSA PRIVATE KEY-----\n";
|
|
239
|
-
key += JSEncryptRSAKey.wordwrap(this.getPrivateBaseKeyB64()) + "\n";
|
|
240
|
-
key += "-----END RSA PRIVATE KEY-----";
|
|
241
|
-
return key;
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* Retrieve the pem encoded public key
|
|
245
|
-
* @returns {string} the pem encoded public key with header/footer
|
|
246
|
-
* @public
|
|
247
|
-
*/
|
|
248
|
-
getPublicKey() {
|
|
249
|
-
let key = "-----BEGIN PUBLIC KEY-----\n";
|
|
250
|
-
key += JSEncryptRSAKey.wordwrap(this.getPublicBaseKeyB64()) + "\n";
|
|
251
|
-
key += "-----END PUBLIC KEY-----";
|
|
252
|
-
return key;
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* Check if the object contains the necessary parameters to populate the rsa modulus
|
|
256
|
-
* and public exponent parameters.
|
|
257
|
-
* @param {object} [obj={}] - An object that may contain the two public key
|
|
258
|
-
* parameters
|
|
259
|
-
* @returns {boolean} true if the object contains both the modulus and the public exponent
|
|
260
|
-
* properties (n and e)
|
|
261
|
-
* @todo check for types of n and e. N should be a parseable bigInt object, E should
|
|
262
|
-
* be a parseable integer number
|
|
263
|
-
* @private
|
|
264
|
-
*/
|
|
265
|
-
static hasPublicKeyProperty(obj) {
|
|
266
|
-
obj = obj || {};
|
|
267
|
-
return obj.hasOwnProperty("n") && obj.hasOwnProperty("e");
|
|
268
|
-
}
|
|
269
|
-
/**
|
|
270
|
-
* Check if the object contains ALL the parameters of an RSA key.
|
|
271
|
-
* @param {object} [obj={}] - An object that may contain nine rsa key
|
|
272
|
-
* parameters
|
|
273
|
-
* @returns {boolean} true if the object contains all the parameters needed
|
|
274
|
-
* @todo check for types of the parameters all the parameters but the public exponent
|
|
275
|
-
* should be parseable bigint objects, the public exponent should be a parseable integer number
|
|
276
|
-
* @private
|
|
277
|
-
*/
|
|
278
|
-
static hasPrivateKeyProperty(obj) {
|
|
279
|
-
obj = obj || {};
|
|
280
|
-
return (obj.hasOwnProperty("n") &&
|
|
281
|
-
obj.hasOwnProperty("e") &&
|
|
282
|
-
obj.hasOwnProperty("d") &&
|
|
283
|
-
obj.hasOwnProperty("p") &&
|
|
284
|
-
obj.hasOwnProperty("q") &&
|
|
285
|
-
obj.hasOwnProperty("dmp1") &&
|
|
286
|
-
obj.hasOwnProperty("dmq1") &&
|
|
287
|
-
obj.hasOwnProperty("coeff"));
|
|
288
|
-
}
|
|
289
|
-
/**
|
|
290
|
-
* Parse the properties of obj in the current rsa object. Obj should AT LEAST
|
|
291
|
-
* include the modulus and public exponent (n, e) parameters.
|
|
292
|
-
* @param {object} obj - the object containing rsa parameters
|
|
293
|
-
* @private
|
|
294
|
-
*/
|
|
295
|
-
parsePropertiesFrom(obj) {
|
|
296
|
-
this.n = obj.n;
|
|
297
|
-
this.e = obj.e;
|
|
298
|
-
if (obj.hasOwnProperty("d")) {
|
|
299
|
-
this.d = obj.d;
|
|
300
|
-
this.p = obj.p;
|
|
301
|
-
this.q = obj.q;
|
|
302
|
-
this.dmp1 = obj.dmp1;
|
|
303
|
-
this.dmq1 = obj.dmq1;
|
|
304
|
-
this.coeff = obj.coeff;
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Int10 } from "./int10.js";
|
|
2
|
-
export declare class Stream {
|
|
3
|
-
constructor(enc: Stream | number[], pos?: number);
|
|
4
|
-
private enc;
|
|
5
|
-
pos: number;
|
|
6
|
-
get(pos?: number): number;
|
|
7
|
-
hexDigits: string;
|
|
8
|
-
hexByte(b: number): string;
|
|
9
|
-
hexDump(start: number, end: number, raw: boolean): string;
|
|
10
|
-
isASCII(start: number, end: number): boolean;
|
|
11
|
-
parseStringISO(start: number, end: number): string;
|
|
12
|
-
parseStringUTF(start: number, end: number): string;
|
|
13
|
-
parseStringBMP(start: number, end: number): string;
|
|
14
|
-
parseTime(start: number, end: number, shortYear: boolean): string;
|
|
15
|
-
parseInteger(start: number, end: number): string | 0 | -1;
|
|
16
|
-
parseBitString(start: number, end: number, maxLength: number): string;
|
|
17
|
-
parseOctetString(start: number, end: number, maxLength: number): string;
|
|
18
|
-
parseOID(start: number, end: number, maxLength: number): string;
|
|
19
|
-
}
|
|
20
|
-
export declare class ASN1 {
|
|
21
|
-
constructor(stream: Stream, header: number, length: number, tag: ASN1Tag, sub: ASN1[]);
|
|
22
|
-
private stream;
|
|
23
|
-
private header;
|
|
24
|
-
private length;
|
|
25
|
-
private tag;
|
|
26
|
-
sub: ASN1[];
|
|
27
|
-
typeName(): string;
|
|
28
|
-
content(maxLength: number): string | 0 | -1;
|
|
29
|
-
toString(): string;
|
|
30
|
-
toPrettyString(indent: string): string;
|
|
31
|
-
posStart(): number;
|
|
32
|
-
posContent(): number;
|
|
33
|
-
posEnd(): number;
|
|
34
|
-
toHexString(): string;
|
|
35
|
-
static decodeLength(stream: Stream): number;
|
|
36
|
-
/**
|
|
37
|
-
* Retrieve the hexadecimal value (as a string) of the current ASN.1 element
|
|
38
|
-
* @returns {string}
|
|
39
|
-
* @public
|
|
40
|
-
*/
|
|
41
|
-
getHexStringValue(): string;
|
|
42
|
-
static decode(str: Stream | number[]): ASN1;
|
|
43
|
-
}
|
|
44
|
-
export declare class ASN1Tag {
|
|
45
|
-
constructor(stream: Stream);
|
|
46
|
-
tagClass: number;
|
|
47
|
-
tagConstructed: boolean;
|
|
48
|
-
tagNumber: number | Int10;
|
|
49
|
-
isUniversal(): boolean;
|
|
50
|
-
isEOC(): boolean;
|
|
51
|
-
}
|