Update content of files

This commit is contained in:
GitHub Action 2024-06-15 13:15:45 +00:00
parent d122fa69ae
commit 4b61454eae
21 changed files with 206 additions and 3220 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,118 +0,0 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Page not found</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="">
<meta property="og:title" content="Page not found">
<meta property="og:image" content="">
<meta property="og:description" content="">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png">
<link rel="alternate icon" href="/img/favicon.ico" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?237" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class=""><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class="active"><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li></li></ul></div>
<h1 id="dev_page_title">Page not found</h1>
<div id="dev_page_content">The page has not been saved</div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/privacy">Privacy</a></li>
<li><a href="//telegram.org/press">Press</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/android">Android</a></li>
<li><a href="//telegram.org/dl/web">Mobile Web</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="//core.telegram.org/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="//core.telegram.org/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/press">Press</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?47"></script>
<script>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -1,118 +0,0 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Page not found</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="">
<meta property="og:title" content="Page not found">
<meta property="og:image" content="">
<meta property="og:description" content="">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png">
<link rel="alternate icon" href="/img/favicon.ico" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?237" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class=""><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class="active"><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li></li></ul></div>
<h1 id="dev_page_title">Page not found</h1>
<div id="dev_page_content">The page has not been saved</div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/privacy">Privacy</a></li>
<li><a href="//telegram.org/press">Press</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/android">Android</a></li>
<li><a href="//telegram.org/dl/web">Mobile Web</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="//core.telegram.org/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="//core.telegram.org/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/press">Press</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?47"></script>
<script>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -1,118 +0,0 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Page not found</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="">
<meta property="og:title" content="Page not found">
<meta property="og:image" content="">
<meta property="og:description" content="">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png">
<link rel="alternate icon" href="/img/favicon.ico" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?237" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class="active"><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/methods" >All Methods</a></li><i class="icon icon-breadcrumb-divider"></i><li></li></ul></div>
<h1 id="dev_page_title">Page not found</h1>
<div id="dev_page_content">The page has not been saved</div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/privacy">Privacy</a></li>
<li><a href="//telegram.org/press">Press</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/android">Android</a></li>
<li><a href="//telegram.org/dl/web">Mobile Web</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="//core.telegram.org/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="//core.telegram.org/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/press">Press</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?47"></script>
<script>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,118 +0,0 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Page not found</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="">
<meta property="og:title" content="Page not found">
<meta property="og:image" content="">
<meta property="og:description" content="">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png">
<link rel="alternate icon" href="/img/favicon.ico" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?237" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class="active"><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/methods" >All Methods</a></li><i class="icon icon-breadcrumb-divider"></i><li></li></ul></div>
<h1 id="dev_page_title">Page not found</h1>
<div id="dev_page_content">The page has not been saved</div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/privacy">Privacy</a></li>
<li><a href="//telegram.org/press">Press</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/android">Android</a></li>
<li><a href="//telegram.org/dl/web">Mobile Web</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="//core.telegram.org/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="//core.telegram.org/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/press">Press</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?47"></script>
<script>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,118 +0,0 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Page not found</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="">
<meta property="og:title" content="Page not found">
<meta property="og:image" content="">
<meta property="og:description" content="">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png">
<link rel="alternate icon" href="/img/favicon.ico" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?237" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class="active"><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/methods" >All Methods</a></li><i class="icon icon-breadcrumb-divider"></i><li></li></ul></div>
<h1 id="dev_page_title">Page not found</h1>
<div id="dev_page_content">The page has not been saved</div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/privacy">Privacy</a></li>
<li><a href="//telegram.org/press">Press</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/android">Android</a></li>
<li><a href="//telegram.org/dl/web">Mobile Web</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="//core.telegram.org/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="//core.telegram.org/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/press">Press</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?47"></script>
<script>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -1,118 +0,0 @@
<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Page not found</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="">
<meta property="og:title" content="Page not found">
<meta property="og:image" content="">
<meta property="og:description" content="">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png">
<link rel="alternate icon" href="/img/favicon.ico" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?237" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class="active"><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/methods" >All Methods</a></li><i class="icon icon-breadcrumb-divider"></i><li></li></ul></div>
<h1 id="dev_page_title">Page not found</h1>
<div id="dev_page_content">The page has not been saved</div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/privacy">Privacy</a></li>
<li><a href="//telegram.org/press">Press</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/android">Android</a></li>
<li><a href="//telegram.org/dl/web">Mobile Web</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="//core.telegram.org/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="//core.telegram.org/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/press">Press</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?47"></script>
<script>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>

View file

@ -53,9 +53,9 @@
<h5><a class="anchor" href="#1-client-sends-query-to-server" id="1-client-sends-query-to-server" name="1-client-sends-query-to-server"><i class="anchor-icon"></i></a>1) Client sends query to server</h5>
<!-- start req_pq_multi -->
<p>Sent payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 E0 FC 06 00 FC 8E 6D 66
0010 | 14 00 00 00 F1 8E 7E BE A0 7A 5A EC 88 BE AB B1
0020 | 21 CA 05 C7 95 47 49 57</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 80 E7 0D 00 2B 92 6D 66
0010 | 14 00 00 00 F1 8E 7E BE 05 64 65 F4 C5 3A DA 11
0020 | 5F 68 C4 39 92 23 7D FB</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>req_pq_multi#be7e8ef1 nonce:int128 = ResPQ;</code></pre>
<table class="table">
@ -77,7 +77,7 @@
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>E0FC0600FC8E6D66</code></td>
<td><code>80E70D002B926D66</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -95,7 +95,7 @@
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td><code>056465F4C53ADA115F68C43992237DFB</code></td>
<td>Random number</td>
</tr>
</tbody>
@ -104,11 +104,11 @@
<h5><a class="anchor" href="#2-server-sends-response-of-the-form" id="2-server-sends-response-of-the-form" name="2-server-sends-response-of-the-form"><i class="anchor-icon"></i></a>2) Server sends response of the form</h5>
<!-- start resPQ -->
<p>Received payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 08 E3 84 FC 8E 6D 66
0010 | 50 00 00 00 63 24 16 05 A0 7A 5A EC 88 BE AB B1
0020 | 21 CA 05 C7 95 47 49 57 9D EF AA 9F 2F 39 95 32
0030 | 65 3F 46 E0 25 8F D3 07 08 25 E5 22 AD FB B3 44
0040 | 29 00 00 00 15 C4 B5 1C 03 00 00 00 A5 B7 F7 09
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 78 ED 52 2B 92 6D 66
0010 | 88 00 00 00 63 24 16 05 05 64 65 F4 C5 3A DA 11
0020 | 5F 68 C4 39 92 23 7D FB E3 02 5A E4 65 D2 31 FF
0030 | DA 4F 25 8A 8C C6 D2 99 08 23 C4 B6 DD 9A 0B 65
0040 | 95 00 00 00 15 C4 B5 1C 03 00 00 00 A5 B7 F7 09
0050 | 35 5F C3 0B 21 6B E8 6C 02 2B B4 C3 85 FD 64 DE
0060 | 85 1D 9D D0</code></pre>
<p>Payload (de)serialization:</p>
@ -132,13 +132,13 @@
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>0108E384FC8E6D66</code></td>
<td><code>0178ED522B926D66</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
<td>message_length</td>
<td>16, 4</td>
<td><code>50000000</code> (80 in decimal)</td>
<td><code>88000000</code> (136 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -150,19 +150,19 @@
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td><code>056465F4C53ADA115F68C43992237DFB</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>9DEFAA9F2F399532653F46E0258FD307</code></td>
<td><code>E3025AE465D231FFDA4F258A8CC6D299</code></td>
<td>Server-generated random number</td>
</tr>
<tr>
<td>pq</td>
<td>56, 12</td>
<td><code>0825E522ADFBB34429000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2730626879717590057</td>
<td><code>0823C4B6DD9A0B6595000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2577385949651232149</td>
<td>Single-byte prefix denoting length, an 8-byte string, and three bytes of padding</td>
</tr>
<tr>
@ -208,22 +208,22 @@
<h4><a class="anchor" href="#proof-of-work" id="proof-of-work" name="proof-of-work"><i class="anchor-icon"></i></a>Proof of work</h4>
<h5><a class="anchor" href="#3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q" id="3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q" name="3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q"><i class="anchor-icon"></i></a>3) Client decomposes pq into prime factors such that p &lt; q.</h5>
<!-- start pq -->
<pre><code>pq = 2730626879717590057</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>2730626879717590057 = 1558228979 * 1752391283</code></p>
<pre><code>p = 1558228979
q = 1752391283</code></pre>
<pre><code>pq = 2577385949651232149</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>2577385949651232149 = 1302502657 * 1978795157</code></p>
<pre><code>p = 1302502657
q = 1978795157</code></pre>
<!-- end pq -->
<h4><a class="anchor" href="#presenting-proof-of-work-server-authentication" id="presenting-proof-of-work-server-authentication" name="presenting-proof-of-work-server-authentication"><i class="anchor-icon"></i></a>Presenting proof of work; Server authentication</h4>
<h5><a class="anchor" href="#4-encrypted-data-payload-generation" id="4-encrypted-data-payload-generation" name="4-encrypted-data-payload-generation"><i class="anchor-icon"></i></a>4) <code>encrypted_data</code> payload generation</h5>
<p>First of all, generate an <code>encrypted_data</code> payload as follows:</p>
<!-- start p_q_inner_data_dc -->
<p>Generated payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 95 5F F5 A9 08 25 E5 22 AD FB B3 44 29 00 00 00
0010 | 04 5C E0 AF F3 00 00 00 04 68 73 5E 73 00 00 00
0020 | A0 7A 5A EC 88 BE AB B1 21 CA 05 C7 95 47 49 57
0030 | 9D EF AA 9F 2F 39 95 32 65 3F 46 E0 25 8F D3 07
0040 | 2F 45 8E 33 3D AB 1C 14 CD 4E 7D 8D EE D2 CD 2C
0050 | 2F B1 86 FD EC D2 DF 01 03 51 5E 79 68 F4 71 DE
<pre><code>0000 | 95 5F F5 A9 08 23 C4 B6 DD 9A 0B 65 95 00 00 00
0010 | 04 4D A2 9D 01 00 00 00 04 75 F2 04 95 00 00 00
0020 | 05 64 65 F4 C5 3A DA 11 5F 68 C4 39 92 23 7D FB
0030 | E3 02 5A E4 65 D2 31 FF DA 4F 25 8A 8C C6 D2 99
0040 | 5C 0D 1A F5 12 CF 44 9B 24 75 05 AD 1A A1 CB 35
0050 | 8C BC B5 D3 6A 58 59 F8 51 2C B4 78 BE 1E C1 64
0060 | 02 00 00 00</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>p_q_inner_data_dc#a9f55f95 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 dc:int = P_Q_inner_data;</code></pre>
@ -246,37 +246,37 @@ q = 1752391283</code></pre>
<tr>
<td>pq</td>
<td>4, 12</td>
<td><code>0825E522ADFBB34429000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2730626879717590057</td>
<td><code>0823C4B6DD9A0B6595000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2577385949651232149</td>
<td>Single-byte prefix denoting length, 8-byte string, and three bytes of padding</td>
</tr>
<tr>
<td>p</td>
<td>16, 8</td>
<td><code>045CE0AFF3000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1558228979</td>
<td><code>044DA29D01000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1302502657</td>
<td>First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
</tr>
<tr>
<td>q</td>
<td>24, 8</td>
<td><code>0468735E73000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1752391283</td>
<td><code>0475F20495000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1978795157</td>
<td>Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
</tr>
<tr>
<td>nonce</td>
<td>32, 16</td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td><code>056465F4C53ADA115F68C43992237DFB</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>48, 16</td>
<td><code>9DEFAA9F2F399532653F46E0258FD307</code></td>
<td><code>E3025AE465D231FFDA4F258A8CC6D299</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce</td>
<td>64, 32</td>
<td><code>2F458E333DAB1C14CD4E7D8DEED2CD2C</code> <code>2FB186FDECD2DF0103515E7968F471DE</code></td>
<td><code>5C0D1AF512CF449B247505AD1AA1CB35</code> <code>8CBCB5D36A5859F8512CB478BE1EC164</code></td>
<td>Client-generated random number</td>
</tr>
<tr>
@ -291,39 +291,39 @@ q = 1752391283</code></pre>
<p>The serialization of <em>P_Q_inner_data</em> produces <strong>data</strong>, which is used to generate <strong>encrypted_data</strong> as specified in <a href="/mtproto/auth_key">step 4.1</a>.<br>
These are the inputs to the algorithm specified in <a href="/mtproto/auth_key">step 4.1</a>:</p>
<!-- start p_q_inner_data_input -->
<pre><code>data = 955FF5A90825E522ADFBB34429000000045CE0AFF30000000468735E73000000A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD3072F458E333DAB1C14CD4E7D8DEED2CD2C2FB186FDECD2DF0103515E7968F471DE02000000
random_padding_bytes = 69F4155729696E10344C0DC594D4CCF42BCCA7D9D2986865BB59055B8153EA4923521F63BFC18C699480308450D750790BB80E9C26CE18AB51356A863381F839DE6D1245686099425B593E508F00DEE92A5EDFCFD7A6CBA63C83D5F1</code></pre>
<pre><code>data = 955FF5A90823C4B6DD9A0B6595000000044DA29D010000000475F20495000000056465F4C53ADA115F68C43992237DFBE3025AE465D231FFDA4F258A8CC6D2995C0D1AF512CF449B247505AD1AA1CB358CBCB5D36A5859F8512CB478BE1EC16402000000
random_padding_bytes = DAC1BFD8598025A002DC510182ED76EEC0CF5B233022A4D3F0108F8316D4CE7150002C15270E00A2042CCF3A8662B40B9416592BAEA3CB05CCBBB801C4B97DEA06D258E1222FC69BDC98F1E075D9BE22103B3BCAF859C0BFCE8C39A6</code></pre>
<!-- end p_q_inner_data_input -->
<p>And this is the output:</p>
<!-- start p_q_inner_data_output -->
<pre><code>encrypted_data = D6D1FBBE8A517DA3887E06C3F9AB1080A545E9426501E9610AA75C004FA5270E4ECF4ACB2C7089A986BA38DDD91419FD42F3E34583693569FB885ACB7904BBECBE2217FEE22C807661773ADF9DF9A30877CCB0E88A79BABF3C8CF27372668D40DE47E2B5D63B9A12C35E9CA71BC6183866527A23CC6465EDB638F9528D0E672914EF3BED810B96CB202E5C8C074503F84D7FB616A0B52F793AD56D9AEA65179F3F18A6AE10A79925D95B68664525681172E721FB514C920C25AF9EB9E513BB9C16C2E1BCAF5AAE8CFC75649B44E8E0214F31C252BB6D5344B972CE39CB1B55F02D011AB29B1735915C861AB70A7FD3B853574A0F4106D6954D7E221282AF19AD</code></pre>
<pre><code>encrypted_data = B51158F232081D809DB9B2966B6370102E1C42556CA80B02C4C4DF58980D6F98B4B9928655939600A2924B872AFEBA5F44FDA7FEB2973BEBDD8020AB73E4C951339C5CC9773CE18BF95EF0E5EC1AF07669B87876B4B54D03801D0231118CCC12C8B191B5CBF28AF4F088F0A580DD67FC25EC13535A10EEDC13D9287E01B029CD2C36CB79E5AF89C7E91B0FFF7D69325172120B706E58234CBA4DBA5EA7270C080B7F89565AA8ED02E12B3B536A0D83E8F36CF9167787F3550040B8E7FE0CF24854395AF11EC1980ED353DE1EFCD743D2E8ABBA261BB4D4ADEFFBACBCB2262F28E59ACB9BDA2EE2F9085CBA4D929A099A27F3D2F06EF599BDF9111AEDE0BCAA47</code></pre>
<!-- end p_q_inner_data_output -->
<p>The length of the final string is 256 bytes.</p>
<h5><a class="anchor" href="#5-send-req-dh-params-query-with-generated-encrypted-data" id="5-send-req-dh-params-query-with-generated-encrypted-data" name="5-send-req-dh-params-query-with-generated-encrypted-data"><i class="anchor-icon"></i></a>5) Send req_DH_params query with generated <code>encrypted_data</code></h5>
<!-- start req_DH_params -->
<p>Sent payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 E4 FC 06 00 FC 8E 6D 66
0010 | 40 01 00 00 BE E4 12 D7 A0 7A 5A EC 88 BE AB B1
0020 | 21 CA 05 C7 95 47 49 57 9D EF AA 9F 2F 39 95 32
0030 | 65 3F 46 E0 25 8F D3 07 04 5C E0 AF F3 00 00 00
0040 | 04 68 73 5E 73 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 D6 D1 FB BE 8A 51 7D A3 88 7E 06 C3
0060 | F9 AB 10 80 A5 45 E9 42 65 01 E9 61 0A A7 5C 00
0070 | 4F A5 27 0E 4E CF 4A CB 2C 70 89 A9 86 BA 38 DD
0080 | D9 14 19 FD 42 F3 E3 45 83 69 35 69 FB 88 5A CB
0090 | 79 04 BB EC BE 22 17 FE E2 2C 80 76 61 77 3A DF
00A0 | 9D F9 A3 08 77 CC B0 E8 8A 79 BA BF 3C 8C F2 73
00B0 | 72 66 8D 40 DE 47 E2 B5 D6 3B 9A 12 C3 5E 9C A7
00C0 | 1B C6 18 38 66 52 7A 23 CC 64 65 ED B6 38 F9 52
00D0 | 8D 0E 67 29 14 EF 3B ED 81 0B 96 CB 20 2E 5C 8C
00E0 | 07 45 03 F8 4D 7F B6 16 A0 B5 2F 79 3A D5 6D 9A
00F0 | EA 65 17 9F 3F 18 A6 AE 10 A7 99 25 D9 5B 68 66
0100 | 45 25 68 11 72 E7 21 FB 51 4C 92 0C 25 AF 9E B9
0110 | E5 13 BB 9C 16 C2 E1 BC AF 5A AE 8C FC 75 64 9B
0120 | 44 E8 E0 21 4F 31 C2 52 BB 6D 53 44 B9 72 CE 39
0130 | CB 1B 55 F0 2D 01 1A B2 9B 17 35 91 5C 86 1A B7
0140 | 0A 7F D3 B8 53 57 4A 0F 41 06 D6 95 4D 7E 22 12
0150 | 82 AF 19 AD</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 84 E7 0D 00 2B 92 6D 66
0010 | 40 01 00 00 BE E4 12 D7 05 64 65 F4 C5 3A DA 11
0020 | 5F 68 C4 39 92 23 7D FB E3 02 5A E4 65 D2 31 FF
0030 | DA 4F 25 8A 8C C6 D2 99 04 4D A2 9D 01 00 00 00
0040 | 04 75 F2 04 95 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 B5 11 58 F2 32 08 1D 80 9D B9 B2 96
0060 | 6B 63 70 10 2E 1C 42 55 6C A8 0B 02 C4 C4 DF 58
0070 | 98 0D 6F 98 B4 B9 92 86 55 93 96 00 A2 92 4B 87
0080 | 2A FE BA 5F 44 FD A7 FE B2 97 3B EB DD 80 20 AB
0090 | 73 E4 C9 51 33 9C 5C C9 77 3C E1 8B F9 5E F0 E5
00A0 | EC 1A F0 76 69 B8 78 76 B4 B5 4D 03 80 1D 02 31
00B0 | 11 8C CC 12 C8 B1 91 B5 CB F2 8A F4 F0 88 F0 A5
00C0 | 80 DD 67 FC 25 EC 13 53 5A 10 EE DC 13 D9 28 7E
00D0 | 01 B0 29 CD 2C 36 CB 79 E5 AF 89 C7 E9 1B 0F FF
00E0 | 7D 69 32 51 72 12 0B 70 6E 58 23 4C BA 4D BA 5E
00F0 | A7 27 0C 08 0B 7F 89 56 5A A8 ED 02 E1 2B 3B 53
0100 | 6A 0D 83 E8 F3 6C F9 16 77 87 F3 55 00 40 B8 E7
0110 | FE 0C F2 48 54 39 5A F1 1E C1 98 0E D3 53 DE 1E
0120 | FC D7 43 D2 E8 AB BA 26 1B B4 D4 AD EF FB AC BC
0130 | B2 26 2F 28 E5 9A CB 9B DA 2E E2 F9 08 5C BA 4D
0140 | 92 9A 09 9A 27 F3 D2 F0 6E F5 99 BD F9 11 1A ED
0150 | E0 BC AA 47</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params;</code></pre>
<table class="table">
@ -345,7 +345,7 @@ random_padding_bytes = 69F4155729696E10344C0DC594D4CCF42BCCA7D9D2986865BB59055B8
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>E4FC0600FC8E6D66</code></td>
<td><code>84E70D002B926D66</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -363,25 +363,25 @@ random_padding_bytes = 69F4155729696E10344C0DC594D4CCF42BCCA7D9D2986865BB59055B8
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td><code>056465F4C53ADA115F68C43992237DFB</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>9DEFAA9F2F399532653F46E0258FD307</code></td>
<td><code>E3025AE465D231FFDA4F258A8CC6D299</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>p</td>
<td>56, 8</td>
<td><code>045CE0AFF3000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1558228979</td>
<td><code>044DA29D01000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1302502657</td>
<td>First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
</tr>
<tr>
<td>q</td>
<td>64, 8</td>
<td><code>0468735E73000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1752391283</td>
<td><code>0475F20495000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1978795157</td>
<td>Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
</tr>
<tr>
@ -393,7 +393,7 @@ random_padding_bytes = 69F4155729696E10344C0DC594D4CCF42BCCA7D9D2986865BB59055B8
<tr>
<td>encrypted_data</td>
<td>80, 260</td>
<td><code>FE000100D6D1FBBE8A517DA3887E06C3</code> <code>F9AB1080A545E9426501E9610AA75C00</code> <code>4FA5270E4ECF4ACB2C7089A986BA38DD</code> <code>D91419FD42F3E34583693569FB885ACB</code> <code>7904BBECBE2217FEE22C807661773ADF</code> <code>9DF9A30877CCB0E88A79BABF3C8CF273</code> <code>72668D40DE47E2B5D63B9A12C35E9CA7</code> <code>1BC6183866527A23CC6465EDB638F952</code> <code>8D0E672914EF3BED810B96CB202E5C8C</code> <code>074503F84D7FB616A0B52F793AD56D9A</code> <code>EA65179F3F18A6AE10A79925D95B6866</code> <code>4525681172E721FB514C920C25AF9EB9</code> <code>E513BB9C16C2E1BCAF5AAE8CFC75649B</code> <code>44E8E0214F31C252BB6D5344B972CE39</code> <code>CB1B55F02D011AB29B1735915C861AB7</code> <code>0A7FD3B853574A0F4106D6954D7E2212</code><br> <code>82AF19AD</code></td>
<td><code>FE000100B51158F232081D809DB9B296</code> <code>6B6370102E1C42556CA80B02C4C4DF58</code> <code>980D6F98B4B9928655939600A2924B87</code> <code>2AFEBA5F44FDA7FEB2973BEBDD8020AB</code> <code>73E4C951339C5CC9773CE18BF95EF0E5</code> <code>EC1AF07669B87876B4B54D03801D0231</code> <code>118CCC12C8B191B5CBF28AF4F088F0A5</code> <code>80DD67FC25EC13535A10EEDC13D9287E</code> <code>01B029CD2C36CB79E5AF89C7E91B0FFF</code> <code>7D69325172120B706E58234CBA4DBA5E</code> <code>A7270C080B7F89565AA8ED02E12B3B53</code> <code>6A0D83E8F36CF9167787F3550040B8E7</code> <code>FE0CF24854395AF11EC1980ED353DE1E</code> <code>FCD743D2E8ABBA261BB4D4ADEFFBACBC</code> <code>B2262F28E59ACB9BDA2EE2F9085CBA4D</code> <code>929A099A27F3D2F06EF599BDF9111AED</code><br> <code>E0BCAA47</code></td>
<td>Value generated above</td>
</tr>
</tbody>
@ -402,47 +402,47 @@ random_padding_bytes = 69F4155729696E10344C0DC594D4CCF42BCCA7D9D2986865BB59055B8
<h5><a class="anchor" href="#6-server-responds-with" id="6-server-responds-with" name="6-server-responds-with"><i class="anchor-icon"></i></a>6) Server responds with:</h5>
<!-- start server_DH_params_ok -->
<p>Received payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 B0 27 29 FD 8E 6D 66
0010 | 9C 02 00 00 5C 07 E8 D0 A0 7A 5A EC 88 BE AB B1
0020 | 21 CA 05 C7 95 47 49 57 9D EF AA 9F 2F 39 95 32
0030 | 65 3F 46 E0 25 8F D3 07 FE 50 02 00 AA 13 E4 A4
0040 | F4 81 E8 04 DA F0 18 5A 90 C9 2B F2 0F 4A E4 7A
0050 | 19 CA B4 8F 84 9F AD F6 32 7F 74 AB 2D B5 AC 6D
0060 | 42 7B 0E 52 04 D0 7B 94 9E 97 C8 D9 2E 87 63 8A
0070 | 32 B3 89 1E 5C 99 FA 1E F1 13 96 45 5F FB 9A 43
0080 | 44 88 7F 46 20 12 24 49 FE DD 54 4A 37 BE F6 33
0090 | F1 AC 24 8E BA 11 53 BE 74 29 D1 17 EA 4E 75 30
00A0 | 6D BE 5B 3A A9 34 89 57 9B 9B 38 D1 55 36 32 77
00B0 | B9 25 F3 BB E4 F7 1B 48 75 46 8A DA 56 9F 08 7E
00C0 | 9C F1 94 03 D8 29 8A 32 1C 80 BE D8 80 F6 F0 0E
00D0 | 3E 6E C2 BA A6 22 03 41 49 DF 75 70 0E 9D 64 B1
00E0 | F1 B3 5E 55 E7 DE 8E 86 EB 27 A4 7E AF 0C B0 D8
00F0 | 4D 16 35 CB 83 77 76 A9 6F D6 08 C4 20 6F E3 FB
0100 | 0C 8D 2F 57 05 7A 31 D3 5B C2 F8 13 36 74 F4 37
0110 | 52 3B 46 D9 8D 1C 31 92 C6 76 EE 3E CA 5F AA 67
0120 | 5F 64 74 73 07 E0 31 71 1F 3C 90 49 89 72 B9 54
0130 | 84 9D 1D AE 50 6C 3E B1 27 F4 CC 1D CD E3 F8 DA
0140 | 56 5B 9B C5 83 25 35 B2 2C 86 9D F8 5A 1A B6 01
0150 | E5 67 A4 96 91 96 51 41 C4 D2 09 A4 C0 9E AE DC
0160 | A3 ED CC 9B 9E 14 20 FC B1 F6 BE 14 FB 92 42 E6
0170 | BD AA 52 D9 21 19 8B 8B EA 42 20 EE 1B 42 9C 30
0180 | 38 48 DE 6A 66 19 B6 FC 1A 13 C6 A2 EA 37 83 33
0190 | C0 56 D7 F9 0C 0F BD 83 38 6F C5 DB AB E6 64 6D
01A0 | 95 B0 42 71 58 42 84 88 8D A7 4C 55 8D B5 B0 C7
01B0 | CB 59 E8 4F 5E 60 E2 90 C6 D8 09 0A 0E 94 E6 F0
01C0 | F9 7A FD 88 DB 60 FA C8 35 DE 55 2D A4 6B 11 62
01D0 | CB 32 2A 09 A1 B5 39 B5 22 F6 B7 F5 71 E3 31 56
01E0 | 16 25 4B DD 27 F4 E6 92 97 99 9D 97 87 3D 81 7A
01F0 | DC 95 88 B7 BB 2E 5D F2 E6 95 F2 4A BE 6E 68 FE
0200 | F2 C3 88 C9 15 33 C2 DB BF 23 DC F7 B4 32 CA C8
0210 | 39 4F 45 9D 1D 86 74 99 3A 5B 6F AD 2D 01 8F D3
0220 | EA C1 BA 99 D7 F1 B0 E5 02 27 B8 DD EB A1 FD B6
0230 | 9E 7D F0 1A 4E 69 92 7B 95 A4 D4 75 13 E8 C6 F1
0240 | 58 93 A0 6D A5 38 CA 42 A0 7C 15 EB 86 7A 97 6F
0250 | 48 6A 73 57 23 BF 01 D2 68 BF AF D1 00 09 B9 00
0260 | C3 B1 16 52 32 7F 69 E3 EF 33 C7 AE E1 8D EA 27
0270 | 26 14 A7 9F 11 A1 4A C6 B1 3B 03 F1 E7 A4 44 16
0280 | D0 AE C7 D2 75 A6 F6 EA 23 06 6C EC</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 5C D8 27 2C 92 6D 66
0010 | 9C 02 00 00 5C 07 E8 D0 05 64 65 F4 C5 3A DA 11
0020 | 5F 68 C4 39 92 23 7D FB E3 02 5A E4 65 D2 31 FF
0030 | DA 4F 25 8A 8C C6 D2 99 FE 50 02 00 2F 42 2F F6
0040 | A0 16 8C F5 20 97 A8 80 2C EB 8D 7A 5B 2D 74 5A
0050 | FE 0E F3 5A 43 4E 89 05 78 32 A8 5F C6 3B 96 82
0060 | 83 CE DE CD 18 86 95 1C 96 1E 8C 2C 14 3F 3D EB
0070 | 11 7A 5F 88 DF F1 E7 02 DC BC FB 02 92 7B B8 8D
0080 | F0 CF A0 3F 89 09 3B EC 3D C1 AF 58 A4 88 A5 2B
0090 | C5 02 0A 92 4A 19 21 06 FA DE A5 B7 FC 43 C5 38
00A0 | CD D8 C5 5F E3 AB E8 56 BB 46 08 84 7D 23 62 99
00B0 | 66 44 EB 2A 77 44 6B A6 B8 56 CC 88 49 CF 70 D5
00C0 | 37 6F 10 0A 62 A3 BE 1F C9 82 A5 F8 00 BD B5 5B
00D0 | 71 4C D5 EA 3A 6B F5 34 74 4C A0 CC D6 8C 76 5A
00E0 | 50 3B 5D 88 64 9A 58 6D 09 D6 28 93 E3 15 A0 4C
00F0 | E4 70 81 B7 B8 5A 62 38 7E F9 A9 1E B6 76 87 82
0100 | E9 3E B8 1C D6 0E 27 DC E0 01 8F 1B 5B 71 62 78
0110 | 21 6D 97 88 2B C2 AC A8 57 DB 46 2C 65 F4 05 18
0120 | FC EA BA F3 0A 53 45 49 11 D4 9D FA 35 E8 DB AE
0130 | 4C 71 4E CE 22 11 3E CE 66 68 15 A2 C6 82 CB 9F
0140 | 55 DB 9B 0C 7D 3F B9 D3 E6 62 CF 7A 8B 08 4D BD
0150 | 84 2B AB AC CA 32 07 AD C0 F8 32 9C 4C 2C 09 03
0160 | 78 F8 BE ED 55 EA 40 38 24 81 62 A2 A5 48 9D 0F
0170 | A0 F6 9D A7 58 46 9F 4B 7F CC F8 88 7C 71 D9 D3
0180 | 07 19 AB 6C E0 79 5E 37 55 A6 A3 38 FF 35 63 6F
0190 | B4 71 5A C3 93 A3 0D 11 DF CD 69 43 48 9C EC 97
01A0 | 62 A8 4B 68 23 F1 3F B3 49 38 F9 D1 90 83 61 78
01B0 | 1D DC FA 3E 75 22 BA 24 0D D7 0A C6 71 48 F6 35
01C0 | F8 E2 E4 14 73 16 DF 86 4E F9 B1 A6 6F B1 9A B3
01D0 | 89 8F 7D AC 4E 64 1F 98 FD 44 55 C5 6D 90 62 B8
01E0 | C9 58 16 BD BE E6 C4 73 6B 85 6A 0C 96 4D 1C 6A
01F0 | 2F E2 86 90 47 7B EB F3 A0 C5 CE 9F FC 1E 1A B7
0200 | 13 60 A7 6F 8F 10 68 76 02 1E A1 3A CE 0A 42 4D
0210 | 8A 5C F6 2B 06 69 C6 0F EA AA BD 7C F5 5A 8A DE
0220 | 71 2F E3 03 A2 F6 4C 62 3F DF 6C 6A 3B 9C 1C AB
0230 | 72 8B B3 AA BC B5 8B FF C9 96 39 22 07 84 F0 8E
0240 | D0 EF 58 B9 7B 90 3D 73 6C 69 7A BC 8C CA D3 37
0250 | 79 8A 6E C0 6F 6D 15 B3 9B D4 C9 D9 B0 58 F1 88
0260 | 00 C0 D2 B4 E5 8F 22 6B DA 33 A4 22 42 84 E7 28
0270 | 63 49 6B C8 52 7F 2F 33 05 14 8D A7 EC 32 72 E1
0280 | C1 8C 5E 06 EE A7 4B D4 4D 08 AF CD</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;</code></pre>
<table class="table">
@ -464,7 +464,7 @@ random_padding_bytes = 69F4155729696E10344C0DC594D4CCF42BCCA7D9D2986865BB59055B8
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>01B02729FD8E6D66</code></td>
<td><code>015CD8272C926D66</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -482,19 +482,19 @@ random_padding_bytes = 69F4155729696E10344C0DC594D4CCF42BCCA7D9D2986865BB59055B8
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td><code>056465F4C53ADA115F68C43992237DFB</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>9DEFAA9F2F399532653F46E0258FD307</code></td>
<td><code>E3025AE465D231FFDA4F258A8CC6D299</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_answer</td>
<td>56, 596</td>
<td><code>FE500200AA13E4A4F481E804DAF0185A</code> <code>90C92BF20F4AE47A19CAB48F849FADF6</code> <code>327F74AB2DB5AC6D427B0E5204D07B94</code> <code>9E97C8D92E87638A32B3891E5C99FA1E</code> <code>F11396455FFB9A4344887F4620122449</code> <code>FEDD544A37BEF633F1AC248EBA1153BE</code> <code>7429D117EA4E75306DBE5B3AA9348957</code> <code>9B9B38D155363277B925F3BBE4F71B48</code> <code>75468ADA569F087E9CF19403D8298A32</code> <code>1C80BED880F6F00E3E6EC2BAA6220341</code> <code>49DF75700E9D64B1F1B35E55E7DE8E86</code> <code>EB27A47EAF0CB0D84D1635CB837776A9</code> <code>6FD608C4206FE3FB0C8D2F57057A31D3</code> <code>5BC2F8133674F437523B46D98D1C3192</code> <code>C676EE3ECA5FAA675F64747307E03171</code> <code>1F3C90498972B954849D1DAE506C3EB1</code> <code>27F4CC1DCDE3F8DA565B9BC5832535B2</code> <code>2C869DF85A1AB601E567A49691965141</code> <code>C4D209A4C09EAEDCA3EDCC9B9E1420FC</code> <code>B1F6BE14FB9242E6BDAA52D921198B8B</code> <code>EA4220EE1B429C303848DE6A6619B6FC</code> <code>1A13C6A2EA378333C056D7F90C0FBD83</code> <code>386FC5DBABE6646D95B0427158428488</code> <code>8DA74C558DB5B0C7CB59E84F5E60E290</code> <code>C6D8090A0E94E6F0F97AFD88DB60FAC8</code> <code>35DE552DA46B1162CB322A09A1B539B5</code> <code>22F6B7F571E3315616254BDD27F4E692</code> <code>97999D97873D817ADC9588B7BB2E5DF2</code> <code>E695F24ABE6E68FEF2C388C91533C2DB</code> <code>BF23DCF7B432CAC8394F459D1D867499</code> <code>3A5B6FAD2D018FD3EAC1BA99D7F1B0E5</code> <code>0227B8DDEBA1FDB69E7DF01A4E69927B</code> <code>95A4D47513E8C6F15893A06DA538CA42</code> <code>A07C15EB867A976F486A735723BF01D2</code> <code>68BFAFD10009B900C3B11652327F69E3</code> <code>EF33C7AEE18DEA272614A79F11A14AC6</code> <code>B13B03F1E7A44416D0AEC7D275A6F6EA</code><br> <code>23066CEC</code></td>
<td><code>FE5002002F422FF6A0168CF52097A880</code> <code>2CEB8D7A5B2D745AFE0EF35A434E8905</code> <code>7832A85FC63B968283CEDECD1886951C</code> <code>961E8C2C143F3DEB117A5F88DFF1E702</code> <code>DCBCFB02927BB88DF0CFA03F89093BEC</code> <code>3DC1AF58A488A52BC5020A924A192106</code> <code>FADEA5B7FC43C538CDD8C55FE3ABE856</code> <code>BB4608847D2362996644EB2A77446BA6</code> <code>B856CC8849CF70D5376F100A62A3BE1F</code> <code>C982A5F800BDB55B714CD5EA3A6BF534</code> <code>744CA0CCD68C765A503B5D88649A586D</code> <code>09D62893E315A04CE47081B7B85A6238</code> <code>7EF9A91EB6768782E93EB81CD60E27DC</code> <code>E0018F1B5B716278216D97882BC2ACA8</code> <code>57DB462C65F40518FCEABAF30A534549</code> <code>11D49DFA35E8DBAE4C714ECE22113ECE</code> <code>666815A2C682CB9F55DB9B0C7D3FB9D3</code> <code>E662CF7A8B084DBD842BABACCA3207AD</code> <code>C0F8329C4C2C090378F8BEED55EA4038</code> <code>248162A2A5489D0FA0F69DA758469F4B</code> <code>7FCCF8887C71D9D30719AB6CE0795E37</code> <code>55A6A338FF35636FB4715AC393A30D11</code> <code>DFCD6943489CEC9762A84B6823F13FB3</code> <code>4938F9D1908361781DDCFA3E7522BA24</code> <code>0DD70AC67148F635F8E2E4147316DF86</code> <code>4EF9B1A66FB19AB3898F7DAC4E641F98</code> <code>FD4455C56D9062B8C95816BDBEE6C473</code> <code>6B856A0C964D1C6A2FE28690477BEBF3</code> <code>A0C5CE9FFC1E1AB71360A76F8F106876</code> <code>021EA13ACE0A424D8A5CF62B0669C60F</code> <code>EAAABD7CF55A8ADE712FE303A2F64C62</code> <code>3FDF6C6A3B9C1CAB728BB3AABCB58BFF</code> <code>C99639220784F08ED0EF58B97B903D73</code> <code>6C697ABC8CCAD337798A6EC06F6D15B3</code> <code>9BD4C9D9B058F18800C0D2B4E58F226B</code> <code>DA33A4224284E72863496BC8527F2F33</code> <code>05148DA7EC3272E1C18C5E06EEA74BD4</code><br> <code>4D08AFCD</code></td>
<td>See below</td>
</tr>
</tbody>
@ -502,20 +502,20 @@ random_padding_bytes = 69F4155729696E10344C0DC594D4CCF42BCCA7D9D2986865BB59055B8
<!-- end server_DH_params_ok -->
<p>Decrypt <code>encrypted_answer</code> using the reverse of the process specified in <a href="/mtproto/auth_key#6-server-responds-with">step 6</a>:</p>
<!-- start server_DH_inner_data_input -->
<pre><code>encrypted_answer = AA13E4A4F481E804DAF0185A90C92BF20F4AE47A19CAB48F849FADF6327F74AB2DB5AC6D427B0E5204D07B949E97C8D92E87638A32B3891E5C99FA1EF11396455FFB9A4344887F4620122449FEDD544A37BEF633F1AC248EBA1153BE7429D117EA4E75306DBE5B3AA93489579B9B38D155363277B925F3BBE4F71B4875468ADA569F087E9CF19403D8298A321C80BED880F6F00E3E6EC2BAA622034149DF75700E9D64B1F1B35E55E7DE8E86EB27A47EAF0CB0D84D1635CB837776A96FD608C4206FE3FB0C8D2F57057A31D35BC2F8133674F437523B46D98D1C3192C676EE3ECA5FAA675F64747307E031711F3C90498972B954849D1DAE506C3EB127F4CC1DCDE3F8DA565B9BC5832535B22C869DF85A1AB601E567A49691965141C4D209A4C09EAEDCA3EDCC9B9E1420FCB1F6BE14FB9242E6BDAA52D921198B8BEA4220EE1B429C303848DE6A6619B6FC1A13C6A2EA378333C056D7F90C0FBD83386FC5DBABE6646D95B04271584284888DA74C558DB5B0C7CB59E84F5E60E290C6D8090A0E94E6F0F97AFD88DB60FAC835DE552DA46B1162CB322A09A1B539B522F6B7F571E3315616254BDD27F4E69297999D97873D817ADC9588B7BB2E5DF2E695F24ABE6E68FEF2C388C91533C2DBBF23DCF7B432CAC8394F459D1D8674993A5B6FAD2D018FD3EAC1BA99D7F1B0E50227B8DDEBA1FDB69E7DF01A4E69927B95A4D47513E8C6F15893A06DA538CA42A07C15EB867A976F486A735723BF01D268BFAFD10009B900C3B11652327F69E3EF33C7AEE18DEA272614A79F11A14AC6B13B03F1E7A44416D0AEC7D275A6F6EA23066CEC
tmp_aes_key = 0BD14FBB6C72F5E59B4F5368B5E03E77226548EEC3E3982248C6420793E21030
tmp_aes_iv = 0F97369690C1BEA33CDF14AC2D6F209F96F7496AB4B35925AD9EB6872F458E33</code></pre>
<pre><code>encrypted_answer = 2F422FF6A0168CF52097A8802CEB8D7A5B2D745AFE0EF35A434E89057832A85FC63B968283CEDECD1886951C961E8C2C143F3DEB117A5F88DFF1E702DCBCFB02927BB88DF0CFA03F89093BEC3DC1AF58A488A52BC5020A924A192106FADEA5B7FC43C538CDD8C55FE3ABE856BB4608847D2362996644EB2A77446BA6B856CC8849CF70D5376F100A62A3BE1FC982A5F800BDB55B714CD5EA3A6BF534744CA0CCD68C765A503B5D88649A586D09D62893E315A04CE47081B7B85A62387EF9A91EB6768782E93EB81CD60E27DCE0018F1B5B716278216D97882BC2ACA857DB462C65F40518FCEABAF30A53454911D49DFA35E8DBAE4C714ECE22113ECE666815A2C682CB9F55DB9B0C7D3FB9D3E662CF7A8B084DBD842BABACCA3207ADC0F8329C4C2C090378F8BEED55EA4038248162A2A5489D0FA0F69DA758469F4B7FCCF8887C71D9D30719AB6CE0795E3755A6A338FF35636FB4715AC393A30D11DFCD6943489CEC9762A84B6823F13FB34938F9D1908361781DDCFA3E7522BA240DD70AC67148F635F8E2E4147316DF864EF9B1A66FB19AB3898F7DAC4E641F98FD4455C56D9062B8C95816BDBEE6C4736B856A0C964D1C6A2FE28690477BEBF3A0C5CE9FFC1E1AB71360A76F8F106876021EA13ACE0A424D8A5CF62B0669C60FEAAABD7CF55A8ADE712FE303A2F64C623FDF6C6A3B9C1CAB728BB3AABCB58BFFC99639220784F08ED0EF58B97B903D736C697ABC8CCAD337798A6EC06F6D15B39BD4C9D9B058F18800C0D2B4E58F226BDA33A4224284E72863496BC8527F2F3305148DA7EC3272E1C18C5E06EEA74BD44D08AFCD
tmp_aes_key = BDCEDFD7430D9472DBF8537512CE90FC19328E3DFD04886807DEF74CFD121187
tmp_aes_iv = C74A1AE615CBBB87B43F1CF13C5C7F85E8D7B2D73CFFD9DB621BAA065C0D1AF5</code></pre>
<!-- end server_DH_inner_data_input -->
<p>Yielding:</p>
<!-- start server_DH_inner_data_output -->
<pre><code>answer_with_hash = 5D51B83A750DFA24EE9C70093E1CBFD6466F5DC0BA0D89B5A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD30703000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010032A34B0D25EA91D4CE46EBD9FD2793C245A129CAA10BEB70E582BE547C86A0F5F720AEA02F3F5A773EA55FB450D636B6E9CD68B87BD9F17B1A0D704A82CB629EA4767040F47DFEB4EE3320A32332F03C538AA99DCC5A71DA3C13634BF6617E194D7D3DE34A0C51F16DE01CE3D947F6CEE7B2C89D40A888F2A8B42CBE45E51782C472AEED8431FF4A3F90EBC1EBDC2D422EB4653FF9C599DE92EE796661EC19AF6D589FB00F95F91DFFB0FEF0378F62EB71EA6BF3BAB56FF1AC0A78CA6BB487C5210B7A287498A5030AD066552101E3FDDF5DD4D17E0F58644FE659AF73F6EC597BD977AB2B4ABA552EC9BFBC802D9619745EDD89DFF4197EEE489B9459BD7D69FD8E6D66C8AF159019EB6104
answer = BA0D89B5A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD30703000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010032A34B0D25EA91D4CE46EBD9FD2793C245A129CAA10BEB70E582BE547C86A0F5F720AEA02F3F5A773EA55FB450D636B6E9CD68B87BD9F17B1A0D704A82CB629EA4767040F47DFEB4EE3320A32332F03C538AA99DCC5A71DA3C13634BF6617E194D7D3DE34A0C51F16DE01CE3D947F6CEE7B2C89D40A888F2A8B42CBE45E51782C472AEED8431FF4A3F90EBC1EBDC2D422EB4653FF9C599DE92EE796661EC19AF6D589FB00F95F91DFFB0FEF0378F62EB71EA6BF3BAB56FF1AC0A78CA6BB487C5210B7A287498A5030AD066552101E3FDDF5DD4D17E0F58644FE659AF73F6EC597BD977AB2B4ABA552EC9BFBC802D9619745EDD89DFF4197EEE489B9459BD7D69FD8E6D66C8AF159019EB6104</code></pre>
<pre><code>answer_with_hash = 5220D1E9081BB641872FE1A358D0589AD7DDACF7BA0D89B5056465F4C53ADA115F68C43992237DFBE3025AE465D231FFDA4F258A8CC6D29903000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFEFF000087B9FC92547F6E176F85DAFD7FC1D136AACB99C513BF57BE1E9537FC3C4D08A869069B55816E003A95D918A35E86AAA41E961BC673F6AE07255BA52D59DCAEC5ED287D05A7CC101D8E25FD6AA629C4DA1C24398D996449AF28F345203AC28EC66C8B7CB169062217A2A0AE399FBC3958531A389838044239AC399E1FCB6A974C497CE29904F9C973CBF6258E5780D748C6B3BCE9FEE4CC90BD747452BFE44DC391D1513ECB7E5D06A613A27E4940335FE07E2EBF9FE39B78B5E61FBF23C6BEC702A08C4F2CCA791C62F3A40B32B7661F954B8CAE60E2E844C757B403542046421BE8B9BDA5460B0472D3499B189CADE53D9990B868197C3F4B08016DE6D180002C926D667F599CDE3A2C8D2E
answer = BA0D89B5056465F4C53ADA115F68C43992237DFBE3025AE465D231FFDA4F258A8CC6D29903000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFEFF000087B9FC92547F6E176F85DAFD7FC1D136AACB99C513BF57BE1E9537FC3C4D08A869069B55816E003A95D918A35E86AAA41E961BC673F6AE07255BA52D59DCAEC5ED287D05A7CC101D8E25FD6AA629C4DA1C24398D996449AF28F345203AC28EC66C8B7CB169062217A2A0AE399FBC3958531A389838044239AC399E1FCB6A974C497CE29904F9C973CBF6258E5780D748C6B3BCE9FEE4CC90BD747452BFE44DC391D1513ECB7E5D06A613A27E4940335FE07E2EBF9FE39B78B5E61FBF23C6BEC702A08C4F2CCA791C62F3A40B32B7661F954B8CAE60E2E844C757B403542046421BE8B9BDA5460B0472D3499B189CADE53D9990B868197C3F4B08016DE6D180002C926D667F599CDE3A2C8D2E</code></pre>
<!-- end server_DH_inner_data_output -->
<!-- start server_DH_inner_data -->
<p>Generated payload (excluding transport headers/trailers):</p>
<pre><code>0000 | BA 0D 89 B5 A0 7A 5A EC 88 BE AB B1 21 CA 05 C7
0010 | 95 47 49 57 9D EF AA 9F 2F 39 95 32 65 3F 46 E0
0020 | 25 8F D3 07 03 00 00 00 FE 00 01 00 C7 1C AE B9
<pre><code>0000 | BA 0D 89 B5 05 64 65 F4 C5 3A DA 11 5F 68 C4 39
0010 | 92 23 7D FB E3 02 5A E4 65 D2 31 FF DA 4F 25 8A
0020 | 8C C6 D2 99 03 00 00 00 FE 00 01 00 C7 1C AE B9
0030 | C6 B1 C9 04 8E 6C 52 2F 70 F1 3F 73 98 0D 40 23
0040 | 8E 3E 21 C1 49 34 D0 37 56 3D 93 0F 48 19 8A 0A
0050 | A7 C1 40 58 22 94 93 D2 25 30 F4 DB FA 33 6F 6E
@ -531,24 +531,24 @@ answer = BA0D89B5A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD30
00F0 | E8 3E BE A0 F8 7F A9 FF 5E ED 70 05 0D ED 28 49
0100 | F4 7B F9 59 D9 56 85 0C E9 29 85 1F 0D 81 15 F6
0110 | 35 B1 05 EE 2E 4E 15 D0 4B 24 54 BF 6F 4F AD F0
0120 | 34 B1 04 03 11 9C D8 E3 B9 2F CC 5B FE 00 01 00
0130 | 32 A3 4B 0D 25 EA 91 D4 CE 46 EB D9 FD 27 93 C2
0140 | 45 A1 29 CA A1 0B EB 70 E5 82 BE 54 7C 86 A0 F5
0150 | F7 20 AE A0 2F 3F 5A 77 3E A5 5F B4 50 D6 36 B6
0160 | E9 CD 68 B8 7B D9 F1 7B 1A 0D 70 4A 82 CB 62 9E
0170 | A4 76 70 40 F4 7D FE B4 EE 33 20 A3 23 32 F0 3C
0180 | 53 8A A9 9D CC 5A 71 DA 3C 13 63 4B F6 61 7E 19
0190 | 4D 7D 3D E3 4A 0C 51 F1 6D E0 1C E3 D9 47 F6 CE
01A0 | E7 B2 C8 9D 40 A8 88 F2 A8 B4 2C BE 45 E5 17 82
01B0 | C4 72 AE ED 84 31 FF 4A 3F 90 EB C1 EB DC 2D 42
01C0 | 2E B4 65 3F F9 C5 99 DE 92 EE 79 66 61 EC 19 AF
01D0 | 6D 58 9F B0 0F 95 F9 1D FF B0 FE F0 37 8F 62 EB
01E0 | 71 EA 6B F3 BA B5 6F F1 AC 0A 78 CA 6B B4 87 C5
01F0 | 21 0B 7A 28 74 98 A5 03 0A D0 66 55 21 01 E3 FD
0200 | DF 5D D4 D1 7E 0F 58 64 4F E6 59 AF 73 F6 EC 59
0210 | 7B D9 77 AB 2B 4A BA 55 2E C9 BF BC 80 2D 96 19
0220 | 74 5E DD 89 DF F4 19 7E EE 48 9B 94 59 BD 7D 69
0230 | FD 8E 6D 66</code></pre>
0120 | 34 B1 04 03 11 9C D8 E3 B9 2F CC 5B FE FF 00 00
0130 | 87 B9 FC 92 54 7F 6E 17 6F 85 DA FD 7F C1 D1 36
0140 | AA CB 99 C5 13 BF 57 BE 1E 95 37 FC 3C 4D 08 A8
0150 | 69 06 9B 55 81 6E 00 3A 95 D9 18 A3 5E 86 AA A4
0160 | 1E 96 1B C6 73 F6 AE 07 25 5B A5 2D 59 DC AE C5
0170 | ED 28 7D 05 A7 CC 10 1D 8E 25 FD 6A A6 29 C4 DA
0180 | 1C 24 39 8D 99 64 49 AF 28 F3 45 20 3A C2 8E C6
0190 | 6C 8B 7C B1 69 06 22 17 A2 A0 AE 39 9F BC 39 58
01A0 | 53 1A 38 98 38 04 42 39 AC 39 9E 1F CB 6A 97 4C
01B0 | 49 7C E2 99 04 F9 C9 73 CB F6 25 8E 57 80 D7 48
01C0 | C6 B3 BC E9 FE E4 CC 90 BD 74 74 52 BF E4 4D C3
01D0 | 91 D1 51 3E CB 7E 5D 06 A6 13 A2 7E 49 40 33 5F
01E0 | E0 7E 2E BF 9F E3 9B 78 B5 E6 1F BF 23 C6 BE C7
01F0 | 02 A0 8C 4F 2C CA 79 1C 62 F3 A4 0B 32 B7 66 1F
0200 | 95 4B 8C AE 60 E2 E8 44 C7 57 B4 03 54 20 46 42
0210 | 1B E8 B9 BD A5 46 0B 04 72 D3 49 9B 18 9C AD E5
0220 | 3D 99 90 B8 68 19 7C 3F 4B 08 01 6D E6 D1 80 00
0230 | 2C 92 6D 66</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data;</code></pre>
<table class="table">
@ -570,13 +570,13 @@ answer = BA0D89B5A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD30
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td><code>056465F4C53ADA115F68C43992237DFB</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>9DEFAA9F2F399532653F46E0258FD307</code></td>
<td><code>E3025AE465D231FFDA4F258A8CC6D299</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
@ -594,13 +594,13 @@ answer = BA0D89B5A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD30
<tr>
<td>g_a</td>
<td>300, 260</td>
<td><code>FE00010032A34B0D25EA91D4CE46EBD9</code> <code>FD2793C245A129CAA10BEB70E582BE54</code> <code>7C86A0F5F720AEA02F3F5A773EA55FB4</code> <code>50D636B6E9CD68B87BD9F17B1A0D704A</code> <code>82CB629EA4767040F47DFEB4EE3320A3</code> <code>2332F03C538AA99DCC5A71DA3C13634B</code> <code>F6617E194D7D3DE34A0C51F16DE01CE3</code> <code>D947F6CEE7B2C89D40A888F2A8B42CBE</code> <code>45E51782C472AEED8431FF4A3F90EBC1</code> <code>EBDC2D422EB4653FF9C599DE92EE7966</code> <code>61EC19AF6D589FB00F95F91DFFB0FEF0</code> <code>378F62EB71EA6BF3BAB56FF1AC0A78CA</code> <code>6BB487C5210B7A287498A5030AD06655</code> <code>2101E3FDDF5DD4D17E0F58644FE659AF</code> <code>73F6EC597BD977AB2B4ABA552EC9BFBC</code> <code>802D9619745EDD89DFF4197EEE489B94</code><br> <code>59BD7D69</code></td>
<td><code>FEFF000087B9FC92547F6E176F85DAFD</code> <code>7FC1D136AACB99C513BF57BE1E9537FC</code> <code>3C4D08A869069B55816E003A95D918A3</code> <code>5E86AAA41E961BC673F6AE07255BA52D</code> <code>59DCAEC5ED287D05A7CC101D8E25FD6A</code> <code>A629C4DA1C24398D996449AF28F34520</code> <code>3AC28EC66C8B7CB169062217A2A0AE39</code> <code>9FBC3958531A389838044239AC399E1F</code> <code>CB6A974C497CE29904F9C973CBF6258E</code> <code>5780D748C6B3BCE9FEE4CC90BD747452</code> <code>BFE44DC391D1513ECB7E5D06A613A27E</code> <code>4940335FE07E2EBF9FE39B78B5E61FBF</code> <code>23C6BEC702A08C4F2CCA791C62F3A40B</code> <code>32B7661F954B8CAE60E2E844C757B403</code> <code>542046421BE8B9BDA5460B0472D3499B</code> <code>189CADE53D9990B868197C3F4B08016D</code><br> <code>E6D18000</code></td>
<td><code>g_a</code> diffie-hellman parameter</td>
</tr>
<tr>
<td>server_time</td>
<td>560, 4</td>
<td><code>FD8E6D66</code> (1718456061 in decimal)</td>
<td><code>2C926D66</code> (1718456876 in decimal)</td>
<td>Server time</td>
</tr>
</tbody>
@ -609,34 +609,34 @@ answer = BA0D89B5A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD30
<h5><a class="anchor" href="#7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message" id="7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message" name="7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message"><i class="anchor-icon"></i></a>7) Client computes random 2048-bit number <em>b</em> (using a sufficient amount of entropy) and sends the server a message</h5>
<p>First, generate a secure random 2048-bit number b:</p>
<!-- start b -->
<pre><code>b = C1EFE25AA25368E77343C59C59D7F341192D0A4C20B2A818C831FDA212AE24DEA54134FDBD567CA0B4096A87D3C6180F00CB096CE5C328C5CEA433E277B91CDD6609CF5971124111CDEFD9FEBD28227EE48D4D592A2A2CE6503A4DC8A831908B317BE9FBD59561B2C0523AF9CA96AFE50FCCAB10BB7ED383F99E4452B8074C4AA8D8F3695196F6EEFD130D7466C7DFC4C2209B77ADA73918087E1B53AEFD68896EBACF936FDC59BD78015CFB2F5BA8BE94B28156579AE4999F41F2C68E4AA9C2CC7EE4EE6C4C417B6492E7A9EC44D117FD7E04A4FDE257D6CE66C9A97B1DAF981C4F9982D45E482E71BF7654B8624C6F57A6DE2AD45550BADDE405D77A9DCE13</code></pre>
<pre><code>b = 44B411B51835D7F146DC9E759F61E533D1EECACF0F69BE2914276A97E81B372C5D8EDBA01731293BE5B772CD56450777CECDC70C4D89E48339570CB8AF41AF141C47656CE6A5317879BA59E1EFDA8CBC1AB9AB74253CD4A3BE490CCED4848272BB35CA14F319A56B421B57CD0B0B0D4A2CBC2B11F7A8E535CC02682BF5E08DD388B6F56CED4DC1FE5FA76FCB7ADFC924FC05096305326550B117764D4E3D77DB408C289C900FB7F846DC154D212EA6F6F528EE55DF57623E454F92680237BEA7F8790A0314035051487FCCD07D6345D9B68FFE034CB1A24D4849CD0EEB08F5F61B90824B8F35D3BEC9631743E4A07E64DFBE8CA881A321B1291F9078E985363F</code></pre>
<!-- end b -->
<p>Then compute <code>g_b = pow(g, b) mod dh_prime</code></p>
<!-- start g_b -->
<pre><code>g_b = 6918A223D2AF18B957F13A58ECC2D2D4E1C695D12FC48C20574D69D9DF647769FD71C7C69DF66F0814178792BDE4BF32EA2CF8208644146C0762509DCD360C22591AC42826B710C192EB3C74C72A49491938A5A9905CF370B54D070B978967A643AAB19FA183E58282F8372A13B40FFB8B5512E5396C8C66442FC3649A30A80FBE258FDC8B90E3552B9C77EFCAB0F2BF5FEDFEE4ABE0CCA4FF51B3F4C66BD5EF636978B97C380BC2DB50A91649C2E75AFBA29B4709075B4C57D4F86FDB1B70B9D536FB0574986E2A7147D864C7776134E62F7864FF675E85320251EBAD57A175377502CA9F4D73C8FDBC13FD5F0218D79D75543D8256BC960CEC12C853027A1D</code></pre>
<pre><code>g_b = 113A15E3F60347312A76332E78F0F07C7617EC5585CEB4053ECECDB2FCCCF5469E330AF8672C83255BAA1DDDE1990EA62A60FD85B0669878FEEA5587EF105E7D3EA679497EC7D8E98D871306F7F34AFC50CBAF3ACDC416DA5D93A7CCC20171D8B7873315C38EA1ABF07A12EFF70C8972B6547C104216F6AF12EA5BCDC796D1629D3CC324EE031DF9E78B127F372567BC369544F5B6C1A0843452283AD049D27EBF9E68A90A1CD74ABB605C22D7447A347877FAD619822B5854EC0898BF95F4C77FFB0974EDB74607611FE9F9DCCC147E3C4DE70C2FCEC61758B3EE10A6B73E4A80C406F8324204F3DE8B445FE20314A819773CC2268C7950FB1E43A9E44D35AF</code></pre>
<!-- end g_b -->
<h6>7.1) generation of encrypted_data</h6>
<!-- start client_DH_inner_data -->
<p>Generated payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 54 B6 43 66 A0 7A 5A EC 88 BE AB B1 21 CA 05 C7
0010 | 95 47 49 57 9D EF AA 9F 2F 39 95 32 65 3F 46 E0
0020 | 25 8F D3 07 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | 69 18 A2 23 D2 AF 18 B9 57 F1 3A 58 EC C2 D2 D4
0040 | E1 C6 95 D1 2F C4 8C 20 57 4D 69 D9 DF 64 77 69
0050 | FD 71 C7 C6 9D F6 6F 08 14 17 87 92 BD E4 BF 32
0060 | EA 2C F8 20 86 44 14 6C 07 62 50 9D CD 36 0C 22
0070 | 59 1A C4 28 26 B7 10 C1 92 EB 3C 74 C7 2A 49 49
0080 | 19 38 A5 A9 90 5C F3 70 B5 4D 07 0B 97 89 67 A6
0090 | 43 AA B1 9F A1 83 E5 82 82 F8 37 2A 13 B4 0F FB
00A0 | 8B 55 12 E5 39 6C 8C 66 44 2F C3 64 9A 30 A8 0F
00B0 | BE 25 8F DC 8B 90 E3 55 2B 9C 77 EF CA B0 F2 BF
00C0 | 5F ED FE E4 AB E0 CC A4 FF 51 B3 F4 C6 6B D5 EF
00D0 | 63 69 78 B9 7C 38 0B C2 DB 50 A9 16 49 C2 E7 5A
00E0 | FB A2 9B 47 09 07 5B 4C 57 D4 F8 6F DB 1B 70 B9
00F0 | D5 36 FB 05 74 98 6E 2A 71 47 D8 64 C7 77 61 34
0100 | E6 2F 78 64 FF 67 5E 85 32 02 51 EB AD 57 A1 75
0110 | 37 75 02 CA 9F 4D 73 C8 FD BC 13 FD 5F 02 18 D7
0120 | 9D 75 54 3D 82 56 BC 96 0C EC 12 C8 53 02 7A 1D</code></pre>
<pre><code>0000 | 54 B6 43 66 05 64 65 F4 C5 3A DA 11 5F 68 C4 39
0010 | 92 23 7D FB E3 02 5A E4 65 D2 31 FF DA 4F 25 8A
0020 | 8C C6 D2 99 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | 11 3A 15 E3 F6 03 47 31 2A 76 33 2E 78 F0 F0 7C
0040 | 76 17 EC 55 85 CE B4 05 3E CE CD B2 FC CC F5 46
0050 | 9E 33 0A F8 67 2C 83 25 5B AA 1D DD E1 99 0E A6
0060 | 2A 60 FD 85 B0 66 98 78 FE EA 55 87 EF 10 5E 7D
0070 | 3E A6 79 49 7E C7 D8 E9 8D 87 13 06 F7 F3 4A FC
0080 | 50 CB AF 3A CD C4 16 DA 5D 93 A7 CC C2 01 71 D8
0090 | B7 87 33 15 C3 8E A1 AB F0 7A 12 EF F7 0C 89 72
00A0 | B6 54 7C 10 42 16 F6 AF 12 EA 5B CD C7 96 D1 62
00B0 | 9D 3C C3 24 EE 03 1D F9 E7 8B 12 7F 37 25 67 BC
00C0 | 36 95 44 F5 B6 C1 A0 84 34 52 28 3A D0 49 D2 7E
00D0 | BF 9E 68 A9 0A 1C D7 4A BB 60 5C 22 D7 44 7A 34
00E0 | 78 77 FA D6 19 82 2B 58 54 EC 08 98 BF 95 F4 C7
00F0 | 7F FB 09 74 ED B7 46 07 61 1F E9 F9 DC CC 14 7E
0100 | 3C 4D E7 0C 2F CE C6 17 58 B3 EE 10 A6 B7 3E 4A
0110 | 80 C4 06 F8 32 42 04 F3 DE 8B 44 5F E2 03 14 A8
0120 | 19 77 3C C2 26 8C 79 50 FB 1E 43 A9 E4 4D 35 AF</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;</code></pre>
<table class="table">
@ -658,19 +658,19 @@ answer = BA0D89B5A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD30
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td><code>056465F4C53ADA115F68C43992237DFB</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>9DEFAA9F2F399532653F46E0258FD307</code></td>
<td><code>E3025AE465D231FFDA4F258A8CC6D299</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>g_b</td>
<td>36, 260</td>
<td><code>FE0001006918A223D2AF18B957F13A58</code> <code>ECC2D2D4E1C695D12FC48C20574D69D9</code> <code>DF647769FD71C7C69DF66F0814178792</code> <code>BDE4BF32EA2CF8208644146C0762509D</code> <code>CD360C22591AC42826B710C192EB3C74</code> <code>C72A49491938A5A9905CF370B54D070B</code> <code>978967A643AAB19FA183E58282F8372A</code> <code>13B40FFB8B5512E5396C8C66442FC364</code> <code>9A30A80FBE258FDC8B90E3552B9C77EF</code> <code>CAB0F2BF5FEDFEE4ABE0CCA4FF51B3F4</code> <code>C66BD5EF636978B97C380BC2DB50A916</code> <code>49C2E75AFBA29B4709075B4C57D4F86F</code> <code>DB1B70B9D536FB0574986E2A7147D864</code> <code>C7776134E62F7864FF675E85320251EB</code> <code>AD57A175377502CA9F4D73C8FDBC13FD</code> <code>5F0218D79D75543D8256BC960CEC12C8</code><br> <code>53027A1D</code></td>
<td><code>FE000100113A15E3F60347312A76332E</code> <code>78F0F07C7617EC5585CEB4053ECECDB2</code> <code>FCCCF5469E330AF8672C83255BAA1DDD</code> <code>E1990EA62A60FD85B0669878FEEA5587</code> <code>EF105E7D3EA679497EC7D8E98D871306</code> <code>F7F34AFC50CBAF3ACDC416DA5D93A7CC</code> <code>C20171D8B7873315C38EA1ABF07A12EF</code> <code>F70C8972B6547C104216F6AF12EA5BCD</code> <code>C796D1629D3CC324EE031DF9E78B127F</code> <code>372567BC369544F5B6C1A0843452283A</code> <code>D049D27EBF9E68A90A1CD74ABB605C22</code> <code>D7447A347877FAD619822B5854EC0898</code> <code>BF95F4C77FFB0974EDB74607611FE9F9</code> <code>DCCC147E3C4DE70C2FCEC61758B3EE10</code> <code>A6B73E4A80C406F8324204F3DE8B445F</code> <code>E20314A819773CC2268C7950FB1E43A9</code><br> <code>E44D35AF</code></td>
<td>Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding</td>
</tr>
<tr>
@ -684,47 +684,47 @@ answer = BA0D89B5A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD30
<!-- end client_DH_inner_data -->
<p>The serialization of <em>Client_DH_Inner_Data</em> produces a string <strong>data</strong>. This is used to generate <strong>encrypted_data</strong> as specified in <a href="#7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message">step 6</a>, using the following inputs:</p>
<!-- start client_DH_inner_data_input -->
<pre><code>data = 54B64366A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD3070000000000000000FE0001006918A223D2AF18B957F13A58ECC2D2D4E1C695D12FC48C20574D69D9DF647769FD71C7C69DF66F0814178792BDE4BF32EA2CF8208644146C0762509DCD360C22591AC42826B710C192EB3C74C72A49491938A5A9905CF370B54D070B978967A643AAB19FA183E58282F8372A13B40FFB8B5512E5396C8C66442FC3649A30A80FBE258FDC8B90E3552B9C77EFCAB0F2BF5FEDFEE4ABE0CCA4FF51B3F4C66BD5EF636978B97C380BC2DB50A91649C2E75AFBA29B4709075B4C57D4F86FDB1B70B9D536FB0574986E2A7147D864C7776134E62F7864FF675E85320251EBAD57A175377502CA9F4D73C8FDBC13FD5F0218D79D75543D8256BC960CEC12C853027A1D
padding = 9A9587E9824EAFB2959EDFEE
tmp_aes_key = 0BD14FBB6C72F5E59B4F5368B5E03E77226548EEC3E3982248C6420793E21030
tmp_aes_iv = 0F97369690C1BEA33CDF14AC2D6F209F96F7496AB4B35925AD9EB6872F458E33</code></pre>
<pre><code>data = 54B64366056465F4C53ADA115F68C43992237DFBE3025AE465D231FFDA4F258A8CC6D2990000000000000000FE000100113A15E3F60347312A76332E78F0F07C7617EC5585CEB4053ECECDB2FCCCF5469E330AF8672C83255BAA1DDDE1990EA62A60FD85B0669878FEEA5587EF105E7D3EA679497EC7D8E98D871306F7F34AFC50CBAF3ACDC416DA5D93A7CCC20171D8B7873315C38EA1ABF07A12EFF70C8972B6547C104216F6AF12EA5BCDC796D1629D3CC324EE031DF9E78B127F372567BC369544F5B6C1A0843452283AD049D27EBF9E68A90A1CD74ABB605C22D7447A347877FAD619822B5854EC0898BF95F4C77FFB0974EDB74607611FE9F9DCCC147E3C4DE70C2FCEC61758B3EE10A6B73E4A80C406F8324204F3DE8B445FE20314A819773CC2268C7950FB1E43A9E44D35AF
padding = EA2C9A01C2F109A81BB0D563
tmp_aes_key = BDCEDFD7430D9472DBF8537512CE90FC19328E3DFD04886807DEF74CFD121187
tmp_aes_iv = C74A1AE615CBBB87B43F1CF13C5C7F85E8D7B2D73CFFD9DB621BAA065C0D1AF5</code></pre>
<!-- end client_DH_inner_data_input -->
<p>Process:</p>
<pre><code>data_with_hash := SHA1(data) + data + padding (0-15 random bytes such that total length is divisible by 16)
encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);</code></pre>
<p>Output:</p>
<!-- start client_DH_inner_data_output -->
<pre><code>encrypted_data = 5165902A5D348855AD4A5B90EB06E677907D2C8754D830B0BBB01332E0A8219895DDD28C6405BB6C80F6613551FCDB8C2A928060914E4637179863B6B212FB62A59859DA0AF87EB1836DEF45DC5AD69715050CA8CB2717231CE627EDDB7C58B488C5B166A4D86E2F707AEB02E89E25F378D95DBB12DCFEC5D7AD46552F02AC7C100D97AAAAABBD34537EC4D9E17C5E5F9E7A12F8035FF3C7ED6E5B23F793E1F425C0754D1E809C9F599FF546F14A0123069ECA3C0123967C165CB4022FFB8C10AF33A2DA267CDD7A67D7EAEF4659142ABF616E827914C47E0AD7D7245951CA33293DCE38E2AD99A272A338D4D0729BA03646FD225EEC136B75BF02ECEE35E7C586EDE223A7F6B89E371FF4113A3CE5D81022907BB73AB91EDE25ABAF78DC00B6FEC9BA809153570101ACC766655A170FC904A88E2991F18531DAF1891F9A8A693E2143A2BC31C4B8D241BF616C7300E1</code></pre>
<pre><code>encrypted_data = 0937406E008E05A2EC4FD79DEE3E2546C17B665EAB03348E74309D695262E280AC36B98EF69FFECFE5720913C4DC47CED0BD2860F952BCBF37320B32D6FBE004EFC3A310851FB443B6C41902EB58DEF66809D9C0730C04C75F5CB2A059B93FE1249FAFD20673AFD8A5F30C684B6CED4F84E4D02E017C15B57407AC12E3C3C3878D67480CFCC386AA5E4FF41A4F9A37A127961F17D4AB706BE17D8054DB8BE35B71CF6720840758E0A94EB8FDEFE5319F74C356E71111259C798FFBFD9D9B8A250BF2E1D6A827E6A983D92BAAFEAE68733E124091AE79F79383204CC97C44E997B5C867F555B6BDD923F0187257119C09EAC1B1894E9EB4E6F7925BB101FC2855EB1B0D7D3EE3F3971D3D06F34E240BA13BB8C2A067C2631325769129B181888B2824A7D7E257DD5157C7A7E5F8D7E6D1EC55CABA6D5B7ADA40BF31E746EFB791774F4B0EA1514376C75827E340BBB893</code></pre>
<!-- end client_DH_inner_data_output -->
<p>The length of the final string is 336 bytes.</p>
<h6>7.2) set_client_DH_params query</h6>
<!-- start set_client_DH_params -->
<p>Sent payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 E0 56 0D 00 FD 8E 6D 66
0010 | 78 01 00 00 1F 5F 04 F5 A0 7A 5A EC 88 BE AB B1
0020 | 21 CA 05 C7 95 47 49 57 9D EF AA 9F 2F 39 95 32
0030 | 65 3F 46 E0 25 8F D3 07 FE 50 01 00 51 65 90 2A
0040 | 5D 34 88 55 AD 4A 5B 90 EB 06 E6 77 90 7D 2C 87
0050 | 54 D8 30 B0 BB B0 13 32 E0 A8 21 98 95 DD D2 8C
0060 | 64 05 BB 6C 80 F6 61 35 51 FC DB 8C 2A 92 80 60
0070 | 91 4E 46 37 17 98 63 B6 B2 12 FB 62 A5 98 59 DA
0080 | 0A F8 7E B1 83 6D EF 45 DC 5A D6 97 15 05 0C A8
0090 | CB 27 17 23 1C E6 27 ED DB 7C 58 B4 88 C5 B1 66
00A0 | A4 D8 6E 2F 70 7A EB 02 E8 9E 25 F3 78 D9 5D BB
00B0 | 12 DC FE C5 D7 AD 46 55 2F 02 AC 7C 10 0D 97 AA
00C0 | AA AB BD 34 53 7E C4 D9 E1 7C 5E 5F 9E 7A 12 F8
00D0 | 03 5F F3 C7 ED 6E 5B 23 F7 93 E1 F4 25 C0 75 4D
00E0 | 1E 80 9C 9F 59 9F F5 46 F1 4A 01 23 06 9E CA 3C
00F0 | 01 23 96 7C 16 5C B4 02 2F FB 8C 10 AF 33 A2 DA
0100 | 26 7C DD 7A 67 D7 EA EF 46 59 14 2A BF 61 6E 82
0110 | 79 14 C4 7E 0A D7 D7 24 59 51 CA 33 29 3D CE 38
0120 | E2 AD 99 A2 72 A3 38 D4 D0 72 9B A0 36 46 FD 22
0130 | 5E EC 13 6B 75 BF 02 EC EE 35 E7 C5 86 ED E2 23
0140 | A7 F6 B8 9E 37 1F F4 11 3A 3C E5 D8 10 22 90 7B
0150 | B7 3A B9 1E DE 25 AB AF 78 DC 00 B6 FE C9 BA 80
0160 | 91 53 57 01 01 AC C7 66 65 5A 17 0F C9 04 A8 8E
0170 | 29 91 F1 85 31 DA F1 89 1F 9A 8A 69 3E 21 43 A2
0180 | BC 31 C4 B8 D2 41 BF 61 6C 73 00 E1</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 D4 B1 0A 00 2C 92 6D 66
0010 | 78 01 00 00 1F 5F 04 F5 05 64 65 F4 C5 3A DA 11
0020 | 5F 68 C4 39 92 23 7D FB E3 02 5A E4 65 D2 31 FF
0030 | DA 4F 25 8A 8C C6 D2 99 FE 50 01 00 09 37 40 6E
0040 | 00 8E 05 A2 EC 4F D7 9D EE 3E 25 46 C1 7B 66 5E
0050 | AB 03 34 8E 74 30 9D 69 52 62 E2 80 AC 36 B9 8E
0060 | F6 9F FE CF E5 72 09 13 C4 DC 47 CE D0 BD 28 60
0070 | F9 52 BC BF 37 32 0B 32 D6 FB E0 04 EF C3 A3 10
0080 | 85 1F B4 43 B6 C4 19 02 EB 58 DE F6 68 09 D9 C0
0090 | 73 0C 04 C7 5F 5C B2 A0 59 B9 3F E1 24 9F AF D2
00A0 | 06 73 AF D8 A5 F3 0C 68 4B 6C ED 4F 84 E4 D0 2E
00B0 | 01 7C 15 B5 74 07 AC 12 E3 C3 C3 87 8D 67 48 0C
00C0 | FC C3 86 AA 5E 4F F4 1A 4F 9A 37 A1 27 96 1F 17
00D0 | D4 AB 70 6B E1 7D 80 54 DB 8B E3 5B 71 CF 67 20
00E0 | 84 07 58 E0 A9 4E B8 FD EF E5 31 9F 74 C3 56 E7
00F0 | 11 11 25 9C 79 8F FB FD 9D 9B 8A 25 0B F2 E1 D6
0100 | A8 27 E6 A9 83 D9 2B AA FE AE 68 73 3E 12 40 91
0110 | AE 79 F7 93 83 20 4C C9 7C 44 E9 97 B5 C8 67 F5
0120 | 55 B6 BD D9 23 F0 18 72 57 11 9C 09 EA C1 B1 89
0130 | 4E 9E B4 E6 F7 92 5B B1 01 FC 28 55 EB 1B 0D 7D
0140 | 3E E3 F3 97 1D 3D 06 F3 4E 24 0B A1 3B B8 C2 A0
0150 | 67 C2 63 13 25 76 91 29 B1 81 88 8B 28 24 A7 D7
0160 | E2 57 DD 51 57 C7 A7 E5 F8 D7 E6 D1 EC 55 CA BA
0170 | 6D 5B 7A DA 40 BF 31 E7 46 EF B7 91 77 4F 4B 0E
0180 | A1 51 43 76 C7 58 27 E3 40 BB B8 93</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;</code></pre>
<table class="table">
@ -746,7 +746,7 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>E0560D00FD8E6D66</code></td>
<td><code>D4B10A002C926D66</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -764,19 +764,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td><code>056465F4C53ADA115F68C43992237DFB</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>9DEFAA9F2F399532653F46E0258FD307</code></td>
<td><code>E3025AE465D231FFDA4F258A8CC6D299</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_data</td>
<td>56, 340</td>
<td><code>FE5001005165902A5D348855AD4A5B90</code> <code>EB06E677907D2C8754D830B0BBB01332</code> <code>E0A8219895DDD28C6405BB6C80F66135</code> <code>51FCDB8C2A928060914E4637179863B6</code> <code>B212FB62A59859DA0AF87EB1836DEF45</code> <code>DC5AD69715050CA8CB2717231CE627ED</code> <code>DB7C58B488C5B166A4D86E2F707AEB02</code> <code>E89E25F378D95DBB12DCFEC5D7AD4655</code> <code>2F02AC7C100D97AAAAABBD34537EC4D9</code> <code>E17C5E5F9E7A12F8035FF3C7ED6E5B23</code> <code>F793E1F425C0754D1E809C9F599FF546</code> <code>F14A0123069ECA3C0123967C165CB402</code> <code>2FFB8C10AF33A2DA267CDD7A67D7EAEF</code> <code>4659142ABF616E827914C47E0AD7D724</code> <code>5951CA33293DCE38E2AD99A272A338D4</code> <code>D0729BA03646FD225EEC136B75BF02EC</code> <code>EE35E7C586EDE223A7F6B89E371FF411</code> <code>3A3CE5D81022907BB73AB91EDE25ABAF</code> <code>78DC00B6FEC9BA809153570101ACC766</code> <code>655A170FC904A88E2991F18531DAF189</code> <code>1F9A8A693E2143A2BC31C4B8D241BF61</code><br> <code>6C7300E1</code></td>
<td><code>FE5001000937406E008E05A2EC4FD79D</code> <code>EE3E2546C17B665EAB03348E74309D69</code> <code>5262E280AC36B98EF69FFECFE5720913</code> <code>C4DC47CED0BD2860F952BCBF37320B32</code> <code>D6FBE004EFC3A310851FB443B6C41902</code> <code>EB58DEF66809D9C0730C04C75F5CB2A0</code> <code>59B93FE1249FAFD20673AFD8A5F30C68</code> <code>4B6CED4F84E4D02E017C15B57407AC12</code> <code>E3C3C3878D67480CFCC386AA5E4FF41A</code> <code>4F9A37A127961F17D4AB706BE17D8054</code> <code>DB8BE35B71CF6720840758E0A94EB8FD</code> <code>EFE5319F74C356E71111259C798FFBFD</code> <code>9D9B8A250BF2E1D6A827E6A983D92BAA</code> <code>FEAE68733E124091AE79F79383204CC9</code> <code>7C44E997B5C867F555B6BDD923F01872</code> <code>57119C09EAC1B1894E9EB4E6F7925BB1</code> <code>01FC2855EB1B0D7D3EE3F3971D3D06F3</code> <code>4E240BA13BB8C2A067C2631325769129</code> <code>B181888B2824A7D7E257DD5157C7A7E5</code> <code>F8D7E6D1EC55CABA6D5B7ADA40BF31E7</code> <code>46EFB791774F4B0EA1514376C75827E3</code><br> <code>40BBB893</code></td>
<td>Encrypted client_DH_inner_data generated previously, serialized as a TL byte string</td>
</tr>
</tbody>
@ -785,17 +785,17 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<h5><a class="anchor" href="#8-auth-key-generation" id="8-auth-key-generation" name="8-auth-key-generation"><i class="anchor-icon"></i></a>8) Auth key generation</h5>
<p>The client computes the auth_key using formula <code>g_a^b mod dh_prime</code>:</p>
<!-- start auth_key -->
<pre><code>auth_key = 20102921AC006318497CF06314369EBBF43FD9D2FA527A2C080A4C73A1E2B6EFC4D5D63FCD6982B2D71529E777FC4AF35793FEE0A3382F515BE5BFD1633C70024F030A15BE0B2C6A215F8339B9FFACE74845D1F343F52B58C5E43EC76D93445E5D9BDC70FC2F1162DEBC2675000343A53BE0B546B72BE15E9501F075737D83DC398F75C761AC11489A895A00F9FCAD6A2272F3A20853FA744002E443DE74F2573D6F528213BA7C7D39AE0A6316BEC6E7B738994DC29A12656F099B68806C65A62D29ED9A710C8388807D32DBF8A70AD1DB60297B6A06DCA57D13532189235EF77D6AEF1C53C850BA1BA158BC4B77ACD7D8AE8E7D22CC5E11AAE959261F5597D4</code></pre>
<pre><code>auth_key = 1130A9D2B325DE9526041AB27CC22AFE2E553DDBDA29C32BDF9EC870EF98F7C8CF3DCB3574CF8B8D9443DC00C48CC43B79116BB9DC614E36ACFDA521A2F7B22ACD01FF9BFE9DCE9764CE9F2714F33EAE0E405C82DF5397BDFEFD2448F63C4478E784022FD97594D9F9F19108D69EE570F3D50D8908288565600AF94F680A68C8A0DDBFF2572D6A175DDB73A4EB36445E9133483D61C817E2B55D0696C9E165E34019A9D54F767C54DA00120BA8333E9A8EAFB5D14C317F6B4A03AFA2264C78FCF3B7EE1F8A3CA7C2A08AD4A5F43170F7478C4DC3CD3DC5B99F198672941F3C2EF1D425D56A6B5765D42C1148784FEC6A3B394330DAB3869B1D4D960F0AFF76F5</code></pre>
<!-- end auth_key -->
<h5><a class="anchor" href="#9-final-server-reply" id="9-final-server-reply" name="9-final-server-reply"><i class="anchor-icon"></i></a>9) Final server reply</h5>
<p>The server verifies and confirms that auth_key_hash is unique: since it's unique, it replies with the following:</p>
<!-- start dh_gen_ok -->
<p>Received payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 E8 89 EF FD 8E 6D 66
0010 | AC 00 00 00 34 F7 CB 3B A0 7A 5A EC 88 BE AB B1
0020 | 21 CA 05 C7 95 47 49 57 9D EF AA 9F 2F 39 95 32
0030 | 65 3F 46 E0 25 8F D3 07 F8 B6 22 0A A1 C4 19 E4
0040 | 8F A2 0A 26 F4 45 3B 73</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 F8 30 15 2D 92 6D 66
0010 | 50 00 00 00 34 F7 CB 3B 05 64 65 F4 C5 3A DA 11
0020 | 5F 68 C4 39 92 23 7D FB E3 02 5A E4 65 D2 31 FF
0030 | DA 4F 25 8A 8C C6 D2 99 ED BD 5A 64 3B 83 89 E5
0040 | 6E 95 22 D2 24 20 47 DF</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;</code></pre>
<table class="table">
@ -817,13 +817,13 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>01E889EFFD8E6D66</code></td>
<td><code>01F830152D926D66</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
<td>message_length</td>
<td>16, 4</td>
<td><code>AC000000</code> (172 in decimal)</td>
<td><code>50000000</code> (80 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -835,19 +835,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>A07A5AEC88BEABB121CA05C795474957</code></td>
<td><code>056465F4C53ADA115F68C43992237DFB</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>9DEFAA9F2F399532653F46E0258FD307</code></td>
<td><code>E3025AE465D231FFDA4F258A8CC6D299</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce_hash1</td>
<td>56, 16</td>
<td><code>F8B6220AA1C419E48FA20A26F4453B73</code></td>
<td><code>EDBD5A643B8389E56E9522D2242047DF</code></td>
<td>The 128 lower-order bits of SHA1 of the byte string derived from the <code>new_nonce</code> string by adding a single byte with the value of 1, 2, or 3, and followed by another 8 bytes with <code>auth_key_aux_hash</code>. Different values are required to prevent an intruder from changing server response dh_gen_ok into dh_gen_retry.</td>
</tr>
</tbody>

File diff suppressed because one or more lines are too long