WARNING: the library is not implemented yet (consider donation to speed up development process).
C# MTProto Mobile Protocol implementation.
To install SharpMTProto via NuGet, run the following command in the Package Manager Console:
PM> Install-Package SharpMTProto
- .NET Framework 4.5
- .NET for Windows Store apps
- .NET for Windows Phone 8 apps
- Portable Class Libraries
- TcpClientTransport: fixed bug in Dispose method.
- Added 'Client' prefix for all client's things.
SocketExtensions
: addedAcceptAsync
ext-method.TcpClientTransport
: added support for server side.- Build scripts: removed
psake
, added:gitversion
, addedappveyor.yml
build script.
MTProtoConnection
: added MTProtoMethods
property.RpcResultHandler
: added support forIRpcError
.- Fixed bug with incorrect container
seqno
checking. - Added
KeyChain
property toAuthKeyNegotiator
. MessageSendingFlags
: addedRPC
value.TcpTransport
: added a disposable bits.MTProtoConnection
:Dispose()
method now callsDispose()
of an underlying transport.
- Changed target framework .NET 4.5 <- 4.5.1.
- Added
MTProtoBuilder
. It allows easily building ofIMTProtoConnection
andIAuthKeyNegotiator
. - Renamed
TransportConfig
toITransportConfig
. - Extracted
IAuthKeyNegotiator
fromAuthKeyNegotiator
. - Added
HashServices
for PCL.
- Updated ref to SharpTL v0.7.2.
- Update psake lib for a build script.
- Added test for
MTProtoConnectionFactory
.
- Updated NuGet package dependencies to correspond project dependencies.
- Fix
MessageSerializer
bug. The problem was in wrongTLStreamer
position retained after writing of the body length before the body, hence position left on a serialized message body beginning, but must be at the end. - Fix
Message.Equals()
bug with badBody
comparing. - Replace dependency type with interface.
FirstRequestResponseHandler
: replace dependency type (RequestsManager
) with interface (IRequestsManager
). - Various additions in a tests project to cover a new code after last huge refactoring.
- Updated
BadMsgNotificationHandler
(refactoring). Updated debug message and added throwing ofNotImplementedException
on every unhandled error code. - Updated completed task returning from Nito.AsyncEx.
- Updated dependent packages.
- Implemented
RPC
inMTProtoConnection
. - Huge refactoring (thanks to Frank Ebersoll for ideas).
- Renamed
MessageProcessor
toMessageCodec
. - Renamed
MessageCodec
methods:Wrap()
/Unwrap()
toEncode()
/Decode()
. - Added
RandomGenerator
. - Updated build script.
- Added
SendEncryptedMessage<TResponse>()
mthod to theIMTProtoConnection
. MTProtoConnection
:SendMessage
'sTResponse
now can be value type too.
- Added computation of an initial salt in
AuthKeyNegotiator
. - Added serializers preparation into
MTProtoConnection
.
- Change log messages format for hex strings.
- Added
AuthKeyNegotiator
as separate class (moved fromMTProtoClient
). - Added sending/receiving encrypted messages to the
MTProtoConnection
class. - Added checking of
MsgKey
in theEcryptedMessage
class. - Renamed
UnencryptedMessage
toPlainMessage
. - Fixed message ID generator and unix time utils.
- Added EncryptedMessage class.
- Fixed bytes alignment in MTProtoClient.
- Updated to SharpTL 0.5.
- Updated build scripts.
- Implemented correct RSA encryption.
- Added a couple of checks and default timeouts to the
MTProtoConnection
. - Fixed transport bugs.
- Improved build scripts.
- SharpTL referenced as NuGet package. Submodule removed.
-Implemented the
KeyChain
's compute key fingerprint logic. - Added timeout and cancellation logic to the MTProtoClient and MTProtoConnection.
- Added MTProtoConnectionFactory.
- Implemented creation of auth key logic.
- Implemented in/out logic of the MTProtoConnection with RX. Changed MTProtoSchema names of items to PascalCase. Working on creating auth key logic.
Bitcoin address: 1FgVQvPmaZ1cdM8TqaH5UPuwp7CPTiMm4h