diff --git a/data/corefork.telegram.org/api/layers.html b/data/corefork.telegram.org/api/layers.html index e39d446e13..e5fe7471a3 100644 --- a/data/corefork.telegram.org/api/layers.html +++ b/data/corefork.telegram.org/api/layers.html @@ -59,7 +59,7 @@ You can visit the schema for an updated list of constructo

Layer 132

Chat themes and sponsored messages, save video recordings of group calls and livestreams.

-

Scheme changes

+

Schema changes

New Methods
-

Scheme

+

Schema

chatFull#49a0a5d9 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:int about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int groupcall_default_join_as:flags.15?Peer theme_emoticon:flags.16?string = ChatFull;
userFull#d697ff05 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true user:User about:flags.1?string settings:PeerSettings profile_photo:flags.2?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string = UserFull;
channelFull#2f532f3c flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string = ChatFull;
@@ -116,7 +116,7 @@ You can visit the schema for an updated list of constructo channels.getSponsoredMessages#ec210fbf channel:InputChannel = messages.SponsoredMessages;

Layer 131

2FA password reset for logged-in accounts, add a method to check the validity of the e-mail recovery code before use.

-

Scheme changes

+

Schema changes

New Methods
-

Scheme

+

Schema

account.password#185b184f flags:# has_recovery:flags.0?true has_secure_values:flags.1?true has_password:flags.2?true current_algo:flags.2?PasswordKdfAlgo srp_B:flags.2?bytes srp_id:flags.2?long hint:flags.3?string email_unconfirmed_pattern:flags.4?string new_algo:PasswordKdfAlgo new_secure_algo:SecurePasswordKdfAlgo secure_random:bytes pending_reset_date:flags.5?int = account.Password;
groupCall#d597650c flags:# join_muted:flags.1?true can_change_join_muted:flags.2?true join_date_asc:flags.6?true schedule_start_subscribed:flags.8?true can_start_video:flags.9?true record_video_active:flags.11?true id:long access_hash:long participants_count:int title:flags.3?string stream_dc_id:flags.4?int record_start_date:flags.5?int schedule_date:flags.7?int unmuted_video_count:flags.10?int unmuted_video_limit:int version:int = GroupCall; groupCallParticipantVideo#67753ac8 flags:# paused:flags.0?true endpoint:string source_groups:Vector<GroupCallParticipantVideoSourceGroup> audio_source:flags.1?int = GroupCallParticipantVideo;
@@ -161,18 +161,18 @@ You can visit the schema for an updated list of constructo auth.checkRecoveryPassword#0d36bf79 code:string = Bool;

Layer 130

Custom placeholder for bot reply keyboards.

-

Scheme changes

+

Schema changes

Changed Constructors
-

Scheme

+

Schema

replyKeyboardForceReply#86b40b08 flags:# single_use:flags.1?true selective:flags.2?true placeholder:flags.3?string = ReplyMarkup;
 replyKeyboardMarkup#85dd99d1 flags:# resize:flags.0?true single_use:flags.1?true selective:flags.2?true rows:Vector<KeyboardButtonRow> placeholder:flags.3?string = ReplyMarkup;

Layer 129

Group call screen sharing, short name suggestions for stickerpacks, scoped bot commands, imported stickers, wallpaper and group call improvements.

-

Scheme changes

+

Schema changes

New Methods
-

Scheme

+

Schema

help.appUpdate#ccbbce30 flags:# can_not_skip:flags.0?true id:int version:string text:string entities:Vector<MessageEntity> document:flags.1?Document url:flags.2?string sticker:flags.3?Document = help.AppUpdate;
wallPaperSettings#1dc1bca4 flags:# blur:flags.1?true motion:flags.2?true background_color:flags.0?int second_background_color:flags.4?int third_background_color:flags.5?int fourth_background_color:flags.6?int intensity:flags.3?int rotation:flags.4?int = WallPaperSettings;
inputWallPaperNoFile#967a462e id:long = InputWallPaper;
@@ -247,7 +247,7 @@ You can visit the schema for an updated list of constructo

Layer 128

Deprecate legacy profile picture locations, group call improvements.
See the file documentation article for more info on the new file constructors ».

-

Scheme changes

+

Schema changes

Changed Methods
diff --git a/data/corefork.telegram.org/constructor/updateUserTyping.html b/data/corefork.telegram.org/constructor/updateUserTyping.html index f81c877a1b..5450dcd762 100644 --- a/data/corefork.telegram.org/constructor/updateUserTyping.html +++ b/data/corefork.telegram.org/constructor/updateUserTyping.html @@ -79,7 +79,7 @@

Update

Related pages

Layers

-

Below you will find information on scheme changes. For more details on the use of layers, see Invoking API methods.

+

Below you will find information on schema changes. For more details on the use of layers, see Invoking API methods.

diff --git a/data/corefork.telegram.org/constructor/updates.state b/data/corefork.telegram.org/constructor/updates.state index b5b090da83..7a3626e915 100644 --- a/data/corefork.telegram.org/constructor/updates.state +++ b/data/corefork.telegram.org/constructor/updates.state @@ -96,7 +96,7 @@

End-to-End Encryption, Secret Chats

New feature for end-to-end-encrypted messaging.

Layers

-

Below you will find information on scheme changes. For more details on the use of layers, see Invoking API methods.

+

Below you will find information on schema changes. For more details on the use of layers, see Invoking API methods.

diff --git a/data/corefork.telegram.org/constructor/userProfilePhoto.html b/data/corefork.telegram.org/constructor/userProfilePhoto.html index 073ea91179..4068d0e13f 100644 --- a/data/corefork.telegram.org/constructor/userProfilePhoto.html +++ b/data/corefork.telegram.org/constructor/userProfilePhoto.html @@ -96,7 +96,7 @@

Uploading and Downloading Files

How to transfer large data batches correctly.

Layers

-

Below you will find information on scheme changes. For more details on the use of layers, see Invoking API methods.

+

Below you will find information on schema changes. For more details on the use of layers, see Invoking API methods.

diff --git a/data/corefork.telegram.org/method/messages.setTyping b/data/corefork.telegram.org/method/messages.setTyping index afc2894e47..211216bbc7 100644 --- a/data/corefork.telegram.org/method/messages.setTyping +++ b/data/corefork.telegram.org/method/messages.setTyping @@ -162,7 +162,7 @@

Threads

Telegram allows commenting on a channel post or on a generic supergroup message, thanks to message threads.

Layers

-

Below you will find information on scheme changes. For more details on the use of layers, see Invoking API methods.

+

Below you will find information on schema changes. For more details on the use of layers, see Invoking API methods.

SendMessageAction

User actions. Use this to provide users with detailed info about their chat partners' actions: typing or sending attachments of all kinds.

diff --git a/data/corefork.telegram.org/passport/encryption.html b/data/corefork.telegram.org/passport/encryption.html index 02678c97bb..a4cf14cbac 100644 --- a/data/corefork.telegram.org/passport/encryption.html +++ b/data/corefork.telegram.org/passport/encryption.html @@ -50,7 +50,7 @@

When using Telegram Passport normally, it must be downloaded and decrypted for use as described in Passport Secret Decryption.

The passport secret must also be downloaded, re-encrypted and re-uploaded as described in Passport Secret Encryption if a new, more secure encryption algorithm is defined in a newer version of Telegram or the 2FA password is updated.

Passport Secret Encryption

-

First of all, server-side passport parameters are fetched, scheme:

+

First of all, server-side passport parameters are fetched, schema:

account.password#185b184f flags:# has_recovery:flags.0?true has_secure_values:flags.1?true has_password:flags.2?true current_algo:flags.2?PasswordKdfAlgo srp_B:flags.2?bytes srp_id:flags.2?long hint:flags.3?string email_unconfirmed_pattern:flags.4?string new_algo:PasswordKdfAlgo new_secure_algo:SecurePasswordKdfAlgo secure_random:bytes pending_reset_date:flags.5?int = account.Password;
 
 securePasswordKdfAlgoUnknown#4a8537 = SecurePasswordKdfAlgo;
@@ -62,7 +62,7 @@
 
 account.getPassword#548a30f5 = account.Password;

When Telegram Passport is first used, the client generates a passport_secret (a 32-byte number with the modulo 255 sum of bytes equal to 239), using a part of server-generated random secure_random from account.password as an additional source of entropy for OpenSSL (when re-encrypting the passport_secret with a more secure algorithm or after a 2FA password change, the previous passport_secret is used, instead). -Then passport_secret is then encrypted using the user's password and hashed using the scheme and parameters specified in the new_algo field of account.password.

+Then passport_secret is then encrypted using the user's password and hashed using the schema and parameters specified in the new_algo field of account.password.

The server should always return a securePasswordKdfAlgoPBKDF2HMACSHA512iter100000 constructor in the new_algo field. If securePasswordKdfAlgoUnknown is returned, the remotely stored secret is encrypted using a new algorithm, not supported by the current client: the user should update their app.

The other constructors may be used only when decrypting old passport parameters generated by a legacy client; in this case, the passport secret should be re-encrypted and updated using new_algo.

@@ -102,7 +102,7 @@ iv = slice( password_hash, 32, 16 )
  • The encrypted_passport_secret is stored on the server together with the passport_secret_salt and the fingerprint of the secret passport_secret_fingerprint: -Scheme:

    +Schema:

    boolFalse#bc799737 = Bool;
     boolTrue#997275b5 = Bool;
     
    @@ -134,7 +134,7 @@ Scheme: 

    In case the password is changed or a more secure algorithm is introduced in an update of the API, the client re-encrypts the passport_secret using the new password. If the password is disabled, all Telegram Passport data is lost.

    Passport Secret Decryption

    -

    Scheme:

    +

    Schema:

    securePasswordKdfAlgoUnknown#4a8537 = SecurePasswordKdfAlgo;
     securePasswordKdfAlgoPBKDF2HMACSHA512iter100000#bbf2dda0 salt:bytes = SecurePasswordKdfAlgo;
     securePasswordKdfAlgoSHA512#86471d92 salt:bytes = SecurePasswordKdfAlgo;
    @@ -219,7 +219,7 @@ iv = slice( secret_hash, 32, 16 )
  • encrypted_data together with the encrypted_data_secret and data_hash are saved on the server:

    -

    Scheme:

    +

    Schema:

    inputSecureFileUploaded#3334b0f0 id:long parts:int md5_checksum:string file_hash:bytes secret:bytes = InputSecureFile;
     inputSecureFile#5367e5be id:long access_hash:long = InputSecureFile;
     
    @@ -365,7 +365,7 @@ To verify a phone number or email and use it in Telegram Passport, use the appro
     secureData#8aeabec3 data:bytes data_hash:bytes secret:bytes = SecureData;
     
     inputSecureValue#db21d0a7 flags:# type:SecureValueType data:flags.0?SecureData front_side:flags.1?InputSecureFile reverse_side:flags.2?InputSecureFile selfie:flags.3?InputSecureFile translation:flags.6?Vector<InputSecureFile> files:flags.4?Vector<InputSecureFile> plain_data:flags.5?SecurePlainData = InputSecureValue;
    -

    The scheme for the inputSecureValue constructor defines the constructor to use for each field.

    +

    The schema for the inputSecureValue constructor defines the constructor to use for each field.

    diff --git a/data/corefork.telegram.org/schema/end-to-end.html b/data/corefork.telegram.org/schema/end-to-end.html index 4e0d4da524..7b144c9c8f 100644 --- a/data/corefork.telegram.org/schema/end-to-end.html +++ b/data/corefork.telegram.org/schema/end-to-end.html @@ -46,8 +46,9 @@ End-to-end encryption in MTProto,…">

    Below you will find the current end-to-end TL-schema. More details on TL »

    -

    See also:
    End-to-end encryption in MTProto, Secret Chats
    Detailed schema in JSON

    -
    +

    See also: +End-to-end encryption in MTProto, Secret Chats +Detailed schema in JSON