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: addedAcceptAsyncext-method.TcpClientTransport: added support for server side.- Build scripts: removed
psake, added:gitversion, addedappveyor.ymlbuild script.
MTProtoConnection: added MTProtoMethodsproperty.RpcResultHandler: added support forIRpcError.- Fixed bug with incorrect container
seqnochecking. - Added
KeyChainproperty toAuthKeyNegotiator. MessageSendingFlags: addedRPCvalue.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 ofIMTProtoConnectionandIAuthKeyNegotiator. - Renamed
TransportConfigtoITransportConfig. - Extracted
IAuthKeyNegotiatorfromAuthKeyNegotiator. - Added
HashServicesfor 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
MessageSerializerbug. The problem was in wrongTLStreamerposition 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 badBodycomparing. - 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 ofNotImplementedExceptionon every unhandled error code. - Updated completed task returning from Nito.AsyncEx.
- Updated dependent packages.
- Implemented
RPCinMTProtoConnection. - Huge refactoring (thanks to Frank Ebersoll for ideas).
- Renamed
MessageProcessortoMessageCodec. - Renamed
MessageCodecmethods:Wrap()/Unwrap()toEncode()/Decode(). - Added
RandomGenerator. - Updated build script.
- Added
SendEncryptedMessage<TResponse>()mthod to theIMTProtoConnection. MTProtoConnection:SendMessage'sTResponsenow 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
AuthKeyNegotiatoras separate class (moved fromMTProtoClient). - Added sending/receiving encrypted messages to the
MTProtoConnectionclass. - Added checking of
MsgKeyin theEcryptedMessageclass. - Renamed
UnencryptedMessagetoPlainMessage. - 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