2023-11-01 14:05:45 +03:00
|
|
|
# @mtcute/crypto-node
|
|
|
|
|
|
|
|
📖 [API Reference](https://ref.mtcute.dev/modules/_mtcute_crypto_node.html)
|
2022-08-24 23:37:26 +03:00
|
|
|
|
2021-05-01 21:22:20 +03:00
|
|
|
Native extension for NodeJS that improves performance of the most used
|
|
|
|
cryptographic mode in Telegram (IGE), which is not implemented by OpenSSL.
|
|
|
|
|
|
|
|
Other modes used (i.e. CBC, CTR) and hashes are supported natively by OpenSSL,
|
|
|
|
and they *are* faster than the custom implementation, so OpenSSL will be used for them.
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
You will need all the pre-requisites for [node-gyp](https://github.com/nodejs/node-gyp#installation).
|
|
|
|
Pre-built packages are currently not available.
|
|
|
|
|
|
|
|
Then, install the package as usual. The native library will be built automatically.
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
```typescript
|
2021-08-05 20:38:24 +03:00
|
|
|
import { TelegramClient } from '@mtcute/client'
|
|
|
|
import { NodeNativeCryptoProvider } from '@mtcute/crypto-node'
|
2021-05-01 21:22:20 +03:00
|
|
|
|
|
|
|
const tg = new TelegramClient({
|
|
|
|
...,
|
|
|
|
crypto: () => new NodeNativeCryptoProvider()
|
|
|
|
})
|
|
|
|
```
|
|
|
|
|
2023-11-01 14:05:45 +03:00
|
|
|
> **Tip**: When using `@mtcute/node`, this will be done automatically for you.
|
|
|
|
|
2021-05-01 21:22:20 +03:00
|
|
|
## Acknowledgments
|
|
|
|
Based on [pyrogram/tgcrypto](https://github.com/pyrogram/tgcrypto)
|