diff --git a/App/client-ios.xcodeproj/project.pbxproj b/App/client-ios.xcodeproj/project.pbxproj
index a53447203940e01cd7625f227f3e9e18d47200cb..2473c74666109b07f72abf1883f23d318da7b4cb 100644
--- a/App/client-ios.xcodeproj/project.pbxproj
+++ b/App/client-ios.xcodeproj/project.pbxproj
@@ -463,7 +463,7 @@
 					"$(inherited)",
 					"@executable_path/Frameworks",
 				);
-				MARKETING_VERSION = 1.1.3;
+				MARKETING_VERSION = 1.1.2;
 				OTHER_SWIFT_FLAGS = "$(inherited)";
 				PRODUCT_BUNDLE_IDENTIFIER = xx.messenger.mock;
 				PRODUCT_NAME = "$(TARGET_NAME)";
@@ -503,7 +503,7 @@
 					"$(inherited)",
 					"@executable_path/Frameworks",
 				);
-				MARKETING_VERSION = 1.1.3;
+				MARKETING_VERSION = 1.1.2;
 				OTHER_SWIFT_FLAGS = "";
 				PRODUCT_BUNDLE_IDENTIFIER = xx.messenger;
 				PRODUCT_NAME = "$(TARGET_NAME)";
diff --git a/App/client-ios/Resources/GoogleService-Info.plist b/App/client-ios/Resources/GoogleService-Info.plist
index 676030ed57400f2bf5a72dc61d4ba5ed3e5263cb..03e09469daae0502a5202f6e63aca9db140d1d77 100644
--- a/App/client-ios/Resources/GoogleService-Info.plist
+++ b/App/client-ios/Resources/GoogleService-Info.plist
@@ -1,36 +1,36 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
-    <dict>
-        <key>CLIENT_ID</key>
-        <string>662236151640-herpu89qikpfs9m4kvbi9bs5fpdji5de.apps.googleusercontent.com</string>
-        <key>REVERSED_CLIENT_ID</key>
-        <string>com.googleusercontent.apps.662236151640-herpu89qikpfs9m4kvbi9bs5fpdji5de</string>
-        <key>ANDROID_CLIENT_ID</key>
-        <string>662236151640-2ughgo2dvc59dm4o39b45lbdungp2mct.apps.googleusercontent.com</string>
-        <key>API_KEY</key>
-        <string>AIzaSyCbI2yQ7pbuVSRvraqanjGcS9CDrjD7lNU</string>
-        <key>GCM_SENDER_ID</key>
-        <string>662236151640</string>
-        <key>PLIST_VERSION</key>
-        <string>1</string>
-        <key>BUNDLE_ID</key>
-        <string>io.xxlabs.messenger</string>
-        <key>PROJECT_ID</key>
-        <string>xx-messenger-6e03e</string>
-        <key>STORAGE_BUCKET</key>
-        <string>xx-messenger-6e03e.appspot.com</string>
-        <key>IS_ADS_ENABLED</key>
-        <false></false>
-        <key>IS_ANALYTICS_ENABLED</key>
-        <false></false>
-        <key>IS_APPINVITE_ENABLED</key>
-        <true></true>
-        <key>IS_GCM_ENABLED</key>
-        <true></true>
-        <key>IS_SIGNIN_ENABLED</key>
-        <true></true>
-        <key>GOOGLE_APP_ID</key>
-        <string>1:662236151640:ios:24badb58ab07515d8cef2d</string>
-    </dict>
+<dict>
+	<key>CLIENT_ID</key>
+	<string></string>
+	<key>REVERSED_CLIENT_ID</key>
+	<string></string>
+	<key>ANDROID_CLIENT_ID</key>
+	<string></string>
+	<key>API_KEY</key>
+	<string></string>
+	<key>GCM_SENDER_ID</key>
+	<string></string>
+	<key>PLIST_VERSION</key>
+	<string></string>
+	<key>BUNDLE_ID</key>
+	<string></string>
+	<key>PROJECT_ID</key>
+	<string></string>
+	<key>STORAGE_BUCKET</key>
+	<string></string>
+	<key>IS_ADS_ENABLED</key>
+	<false/>
+	<key>IS_ANALYTICS_ENABLED</key>
+	<false/>
+	<key>IS_APPINVITE_ENABLED</key>
+	<false/>
+	<key>IS_GCM_ENABLED</key>
+	<false/>
+	<key>IS_SIGNIN_ENABLED</key>
+	<false/>
+	<key>GOOGLE_APP_ID</key>
+	<string></string>
+</dict>
 </plist>
diff --git a/Sources/InputField/OutlinedInputField.swift b/Sources/InputField/OutlinedInputField.swift
new file mode 100644
index 0000000000000000000000000000000000000000..01e1511daf980d7dff4f81081590cbf88fec08e7
--- /dev/null
+++ b/Sources/InputField/OutlinedInputField.swift
@@ -0,0 +1,84 @@
+import UIKit
+import Shared
+import Combine
+
+public final class OutlinedInputField: UIView {
+    private let stackView = UIStackView()
+    private let textField = UITextField()
+    private let placeholderLabel = UILabel()
+    private let inputContainerView = UIView()
+
+    private let secureInputButton = SecureInputButton()
+
+    public var textPublisher: AnyPublisher<String, Never> {
+        textField.textPublisher
+    }
+
+    public init() {
+        super.init(frame: .zero)
+
+        layer.borderWidth = 1.0
+        layer.cornerRadius = 4.0
+        layer.masksToBounds = true
+        layer.borderColor = Asset.neutralWeak.color.cgColor
+
+        textField.delegate = self
+        textField.backgroundColor = .clear
+        placeholderLabel.textColor = Asset.neutralWeak.color
+        placeholderLabel.font = Fonts.Mulish.regular.font(size: 16.0)
+
+        secureInputButton.button.addTarget(self, action: #selector(didTapRight), for: .touchUpInside)
+
+        inputContainerView.addSubview(placeholderLabel)
+        inputContainerView.addSubview(textField)
+
+        stackView.addArrangedSubview(inputContainerView)
+        stackView.addArrangedSubview(secureInputButton)
+
+        addSubview(stackView)
+
+        placeholderLabel.snp.makeConstraints {
+            $0.top.equalToSuperview().offset(15)
+            $0.left.equalToSuperview().offset(15)
+            $0.right.lessThanOrEqualToSuperview().offset(-15)
+            $0.bottom.equalToSuperview().offset(-18)
+        }
+
+        textField.snp.makeConstraints {
+            $0.top.equalToSuperview().offset(15)
+            $0.left.equalToSuperview().offset(15)
+            $0.right.equalToSuperview().offset(-15)
+            $0.bottom.equalToSuperview().offset(-18)
+        }
+
+        stackView.snp.makeConstraints {
+            $0.edges.equalToSuperview()
+        }
+    }
+
+    required init?(coder: NSCoder) { nil }
+
+    public func setup(title: String, sensitive: Bool = false) {
+        placeholderLabel.text = title
+        textField.isSecureTextEntry = sensitive
+        secureInputButton.isHidden = !sensitive
+    }
+
+    @objc private func didTapRight() {
+        textField.isSecureTextEntry.toggle()
+        secureInputButton.setSecure(textField.isSecureTextEntry)
+    }
+}
+
+extension OutlinedInputField: UITextFieldDelegate {
+    public func textField(
+        _ textField: UITextField,
+        shouldChangeCharactersIn range: NSRange,
+        replacementString string: String
+    ) -> Bool {
+        placeholderLabel.alpha = (textField.text! as NSString)
+            .replacingCharacters(in: range, with: string)
+            .count > 0 ? 0.0 : 1.0
+        return true
+    }
+}
diff --git a/Sources/InputField/SecureInputButton.swift b/Sources/InputField/SecureInputButton.swift
new file mode 100644
index 0000000000000000000000000000000000000000..1f2e6b20751370755ec23b966c153ca5440c9f32
--- /dev/null
+++ b/Sources/InputField/SecureInputButton.swift
@@ -0,0 +1,31 @@
+import UIKit
+import Shared
+
+final class SecureInputButton: UIView {
+    private(set) var button = UIButton()
+    private let color = Asset.neutralSecondaryAlternative.color
+    private lazy var openedImage = Asset.eyeOpen.image.withTintColor(color)
+    private lazy var closedImage = Asset.eyeClosed.image.withTintColor(color)
+
+    init() {
+        super.init(frame: .zero)
+
+        button.setContentCompressionResistancePriority(.required, for: .horizontal)
+        button.setImage(Asset.eyeClosed.image.withTintColor(color), for: .normal)
+
+        addSubview(button)
+
+        button.snp.makeConstraints {
+            $0.top.equalToSuperview()
+            $0.left.equalToSuperview().offset(10)
+            $0.right.equalToSuperview().offset(-10)
+            $0.bottom.equalToSuperview()
+        }
+    }
+
+    required init?(coder: NSCoder) { nil }
+
+    func setSecure(_ bool: Bool) {
+        button.setImage(bool ? closedImage : openedImage, for: .normal)
+    }
+}
diff --git a/Sources/Integration/Resources/cert_mainnet.txt b/Sources/Integration/Resources/cert_mainnet.txt
index 096e3b5cda98b012d892d6531ab1a4696d13a457..40045d63666dded7450e22eb82c15b62a17d4d68 100644
--- a/Sources/Integration/Resources/cert_mainnet.txt
+++ b/Sources/Integration/Resources/cert_mainnet.txt
@@ -1,33 +1 @@
------BEGIN CERTIFICATE-----
-MIIFqTCCA5GgAwIBAgIUO0qHXSeKrOMucO+Zz82Mf1Zlq4gwDQYJKoZIhvcNAQEL
-BQAwgYAxCzAJBgNVBAYTAktZMRQwEgYDVQQHDAtHZW9yZ2UgVG93bjETMBEGA1UE
-CgwKeHggbmV0d29yazEPMA0GA1UECwwGRGV2T3BzMRMwEQYDVQQDDAp4eC5uZXR3
-b3JrMSAwHgYJKoZIhvcNAQkBFhFhZG1pbnNAeHgubmV0d29yazAeFw0yMTEwMzAy
-MjI5MjZaFw0zMTEwMjgyMjI5MjZaMIGAMQswCQYDVQQGEwJLWTEUMBIGA1UEBwwL
-R2VvcmdlIFRvd24xEzARBgNVBAoMCnh4IG5ldHdvcmsxDzANBgNVBAsMBkRldk9w
-czETMBEGA1UEAwwKeHgubmV0d29yazEgMB4GCSqGSIb3DQEJARYRYWRtaW5zQHh4
-Lm5ldHdvcmswggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQD08ixnPWwz
-FtBIEWx2SnFjBsdrSWCp9NcWXRtGWeq3ACz+ixiflj/U9U4b57aULeOAvcoC7bwU
-j5w3oYxRmXIV40QSevx1z9mNcW3xbbacQ+yCgPPhhj3/c285gVVOUzURLBTNAi9I
-EA59zAb8Vy0E6zfq4HRAhH11Q/10QgDjEXuGXra1k3IlemVsouiJGNAtKojNDE1N
-x9HnraSEiXzdnV2GDplEvMHaLd3s9vs4XsiLB3VwKyHv7EH9+LOIra6pr5BWw+kD
-2qHKGmQMOQe0a7nCirW/k9axH0WiA0XWuQu3U1WfcMEfdC/xn1vtubrdYjtzpXUy
-oUEX5eHfu4OlA/zoH+trocfARDyBmTVbDy0P9imH//a6GUKDui9r3fXwEy5YPMhb
-dKaNc7QWLPHMh1n25h559z6PqxxPT6UqFFbZD2gTw1sbbpjyqhLbnYguurkxY3jZ
-ztW337hROzQ1/abbg/P59JA95Pmhkl8nqqDEf0buOmvMazq3Lwg92nuZ8gsdMKXB
-xaEtTTpxhTPOqzc1/XQgScZnc+092MBDh3C2GMxzylOIdk+yF2Gyb+VWPUe29dSa
-azzxsDXzRy8y8jaOjdSUWaLa/MgS5Dg1AfHtD55bdvqYzw3NEXIVarpMlzl+Z+6w
-jvuwz8GyoMSVe+YEGgvSDvlfY/z19aqneQIDAQABoxkwFzAVBgNVHREEDjAMggp4
-eC5uZXR3b3JrMA0GCSqGSIb3DQEBCwUAA4ICAQCp0JDub2w5vZQvFREyA+utZ/+s
-XT05j1iTgIRKMa3nofDGERYJUG7FcTd373I2baS70PGx8FF1QuXhn4DNNZlW/SZt
-pa1d0pAerqFrIzwOuWVDponYHQ8ayvsT7awCbwZEZE4RhooqS4LqnvtgFu/g7LuM
-zkFN8TER7HAUn3P7BujLvcgtqk2LMDz+AgBRszDp/Bw7+1EJDeG9d7hC/stXgDV/
-vpD1YDpxSmW4zjezFJqV6OdMOwo9RWVIktK3RXbFc6I5UJZ5kmzPe/I2oPPCBQvD
-G3VqFLQe5ik5rXP7SgAN1fL/7KuQna0s42hkV64Z2ymCX69G1ofpgpEFaQLaxLbj
-QOun0r8A3NyKvHRIh4K0dFcc3FSOF60Y6k769HKbOPmSDjSSg0qO9GEONBJ8BxAT
-IHcHoTAOQoqGehdzepXQSjHsPqTXv3ZFFwCCgO0toI0Qhqwo89X6R3k+i4Kaktr7
-mLiPO8s0nq1PZ1XrybKE9BCHkYH1JkUDA+M0pn4QAEx/BuM0QnGXoi1sImW3pEUG
-NP7fjkISrD48P8P/TLS45sx5pB8MNGEsRw0lBKmuOdWDmdfhOltB6JxmbhpstNZp
-6LVLK6SEOwE76xnHiisR2KyhTTiroUq73BgPFWkWhoJDPbmL1DHgnbdKwwstG8Qu
-UGb8k8vh6tzqYZAOKg==
------END CERTIFICATE-----
+[PLACE THE CERTIFICATE CONTENT HERE]
diff --git a/Sources/SFTPFeature/SFTPView.swift b/Sources/SFTPFeature/SFTPView.swift
index 83ba070d1eaba8a7f4bb5f567d3fc212b6262f30..3e62e4caeb0eca188fd1dad4db740545f0b3f045 100644
--- a/Sources/SFTPFeature/SFTPView.swift
+++ b/Sources/SFTPFeature/SFTPView.swift
@@ -5,9 +5,9 @@ import InputField
 final class SFTPView: UIView {
     let titleLabel = UILabel()
     let subtitleLabel = UILabel()
-    let hostField = InputField()
-    let usernameField = InputField()
-    let passwordField = InputField()
+    let hostField = OutlinedInputField()
+    let usernameField = OutlinedInputField()
+    let passwordField = OutlinedInputField()
     let loginButton = CapsuleButton()
     let stackView = UIStackView()
 
@@ -34,21 +34,9 @@ final class SFTPView: UIView {
         subtitleLabel.numberOfLines = 0
         subtitleLabel.attributedText = attString
 
-        hostField.setup(
-            style: .regular,
-            placeholder: Localized.AccountRestore.Sftp.host
-        )
-
-        usernameField.setup(
-            style: .regular,
-            placeholder: Localized.AccountRestore.Sftp.username
-        )
-
-        passwordField.setup(
-            style: .regular,
-            placeholder: Localized.AccountRestore.Sftp.password,
-            rightView: .toggleSecureEntry
-        )
+        hostField.setup(title: Localized.AccountRestore.Sftp.host)
+        usernameField.setup(title: Localized.AccountRestore.Sftp.username)
+        passwordField.setup(title: Localized.AccountRestore.Sftp.password, sensitive: true)
 
         loginButton.set(style: .brandColored, title: Localized.AccountRestore.Sftp.login)