Browse Source

Merge branch 'refreshKFTC'

Conflicts:
	GMERemittance/Utility/SecureKeypad.swift
pull/1/head
InKwon James Kim 5 years ago
parent
commit
67b4dd29e5
  1. 156
      GMERemittance/Module/Login/User Interface/View/LoginViewController.swift
  2. 6
      GMERemittance/Utility/SecureKeypad.swift

156
GMERemittance/Module/Login/User Interface/View/LoginViewController.swift

@ -50,21 +50,16 @@ class LoginViewController: UIViewController {
@IBOutlet weak var logoImageView: UIImageView!
@IBOutlet weak var loginButton: UIButton!
var encryptedPassword : String? {
didSet {
guard
let email = self.userNameTextField.text,
let pw = self.encryptedPassword,
email != "", pw != "" else {return}
// keyboard
var mQwertyTransKeyView : TransKeyView?
var mNumberTransKeyView : TransKeyView?
var secureKey : NSData!
var encryptedPassword : String?
var numberCipherString : String!
var qwertyCipherString : String!
var isTranskeyShowing : Bool!
var isShowQwerty : Bool! = true
var isShowNumber : Bool!
self.login(UIButton())
}
}
// MARK: Properties
@ -81,17 +76,10 @@ class LoginViewController: UIViewController {
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
mQwertyTransKeyView?.mTK_ClearDelegateSubviews()
mNumberTransKeyView?.mTK_ClearDelegateSubviews()
if isTranskeyShowing == false {
mQwertyTransKeyView?.delegate = nil;
mNumberTransKeyView?.delegate = nil;
}
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.setupKeyboard()
}
@ -127,8 +115,6 @@ class LoginViewController: UIViewController {
// showAnimation()
}
func authenticateUser() {
let context : LAContext = LAContext()
var error: NSError?
@ -159,28 +145,7 @@ class LoginViewController: UIViewController {
}
}
func setupKeyboard() {
isShowNumber = false
isShowQwerty = true
isTranskeyShowing = false
let iv: Array<String> = ["M", "o", "b", "i", "l", "e", "T", "r" , "a", "n", "s", "K", "e", "y", "1", "0"]
secureKey = NSData(bytes: iv, length: 16)
setQwertyTranskey()
// self.showQwertyTranskeyAction()
}
func setQwertyTranskey() {
mQwertyTransKeyView = TransKeyView()
mQwertyTransKeyView?.mTK_Init(self)
mQwertyTransKeyView?.delegate = self
mQwertyTransKeyView?.mTK_MakeSecureKey()
mQwertyTransKeyView?.mTK_Supported(byDeviceOrientation: SupportedByDevicePortrait)
// ccr key
mQwertyTransKeyView?.mTK_LicenseCheck("license_mtranskey")
}
private func configureLanguage() {
// Localize.setCurrentLanguage("en")
self.headerTitle.text = StringConstants().headerTitle
self.subtitle.text = StringConstants().subHeaderTitle
self.userIdTitleLabel.text = "email_text".localized()
@ -270,20 +235,13 @@ class LoginViewController: UIViewController {
let isUseBiometricAuth = KeyChain.shared.get(key: .biometricAuth),
email == typedEmail,
isUseBiometricAuth == "1" else {
self.showQwertyTranskeyAction()
let secureKeypad = SecureKeypad(target: self)
secureKeypad.delegate = self
secureKeypad.present(animated: true)
return
}
BiometricAuthenticationWireframe().openWithDelegate(on: self, delegate: self)
// guard let email = self.userNameTextField.text,
// let isUseBiometricAuth = UserKeychain(email: email).isUseBiometricAuth,
// isUseBiometricAuth,
// let password = UserKeychain.default.encryptedPassword, password != "" else {
// self.showQwertyTranskeyAction()
// return
// }
// BiometricAuthenticationWireframe().openWithDelegate(on: self, delegate: self)
}
}
@ -302,77 +260,7 @@ extension LoginViewController: LoginViewInterface {
}
}
extension LoginViewController: TransKeyViewDelegate {
func secureInputFinish(_ type: Int) {
var targetView : TransKeyView?
if isShowQwerty == true {
qwertyCipherString = mQwertyTransKeyView?.mTK_GetSecureData()
targetView = mQwertyTransKeyView
if mQwertyTransKeyView?.mTK_GetDataLength() == 0 {
self.encryptedPassword = ""
self.passwordTextField.text = ""
}else {
self.encryptedPassword = qwertyCipherString
self.passwordTextField.text = "password"
}
}
isShowQwerty = false
isShowNumber = false
isTranskeyShowing = false
targetView?.dismiss(animated: true, completion: {
guard let email = self.userNameTextField.text, let pw = self.encryptedPassword,
email != "", pw != "" else {return}
self.login(UIButton())
})
}
func showQwertyTranskeyAction(){
if mQwertyTransKeyView?.isBeingPresented == false {
isShowQwerty = true
isTranskeyShowing = true
let hintStr = String(format:"password", 0)
let font = UIFont(name: "Arial", size: 15)
mQwertyTransKeyView?.mTK_SetHint(hintStr, font: font)
mQwertyTransKeyView?.mTK_ShowMessageIfMaxLength("16자리 입력이 초과되었습니다.")
mQwertyTransKeyView?.mTK_UseCursor(true)
mQwertyTransKeyView?.mTK_UseAllDeleteButton(true)
mQwertyTransKeyView?.mTK_UseNavigationBar(true)
mQwertyTransKeyView?.mTK_UseVoiceOver(true)
mQwertyTransKeyView?.mTK_setHideInputPasswordDelay(3)
mQwertyTransKeyView?.mTK_SetControlCenter(false)
mQwertyTransKeyView?.mTK_setIgnoreStatusbar(false)
mQwertyTransKeyView?.mTK_UseShiftOptional(true)
// mQwertyTransKeyView?.mTK_SetLanguage(1)
mQwertyTransKeyView?.mTK_Supported(byDeviceOrientation: SupportedByDevicePortraitAndLandscape)
mQwertyTransKeyView?.setKeyboardType(self,
keypadType: 0,
mTK_inputType: 2,
mTK_inputTitle: "password",
mTK_cryptType: 0,
mTK_maxLength: 100,
mTK_minLength: 0,
mTK_keypadUpper: false,
mTK_languageType: 1)
mQwertyTransKeyView?.mTK_EnableSamekeyInputDataEncrypt(true)
mQwertyTransKeyView?.mTK_SetUseBalloonImageButton(true)
if let mQwertyTransKeyView = mQwertyTransKeyView {
self.present(mQwertyTransKeyView, animated: true, completion: nil)
}
}
}
}
// MARK: - UITextFieldDelegate
extension LoginViewController: UITextFieldDelegate {
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
if textField == passwordTextField {
@ -390,6 +278,8 @@ extension LoginViewController: UITextFieldDelegate {
}
}
// MARK: - BiometricAuthenticationViewControllerDelegate
extension LoginViewController: BiometricAuthenticationViewControllerDelegate {
func viewController(_ viewController: BiometricAuthenticationViewController, informationTitleLabel titleLabel: UILabel, authenticationButton button: UIButton) {
titleLabel.text = "Please enter authentication information for login"
@ -409,8 +299,10 @@ extension LoginViewController: BiometricAuthenticationViewControllerDelegate {
switch error {
case .userFallback, .biometryNotAvailable:
viewController.dismiss(animated: true){
self.showQwertyTranskeyAction()
viewController.dismiss(animated: true) {
let secureKeypad = SecureKeypad(target: viewController)
secureKeypad.delegate = self
secureKeypad.present(animated: true)
}
case .notBeConfigured, .biometryNotEnrolled:
@ -430,3 +322,13 @@ extension LoginViewController: BiometricAuthenticationViewControllerDelegate {
}
}
// MARK: - SecureKeypadDelegate
extension LoginViewController: SecureKeypadDelegate {
func didComplete(_ encryptedString: String) {
if encryptedString != "" {
self.encryptedPassword = encryptedString
self.passwordTextField.text = "password"
}
}
}

6
GMERemittance/Utility/SecureKeypad.swift

@ -21,18 +21,18 @@ class SecureKeypad: NSObject {
weak var delegate: SecureKeypadDelegate?
var title = "" {
var title = "Enter Your GME Password" {
didSet {
self.updateUI()
}
}
var placeholder = "" {
var placeholder = "Enter Your GME Password" {
didSet {
self.updateUI()
}
}
var placeholderFont: UIFont? = .systemFont(ofSize: 17) {
var placeholderFont: UIFont? = UIFont(name: "SanFranciscoDisplay-Regular", size: 15) {
didSet {
self.updateUI()
}

Loading…
Cancel
Save