import Foundation class FullViewController: UIViewController, TransKeyViewDelegate { var mQwertyTransKeyView : TransKeyView! var mNumberTransKeyView : TransKeyView! var secureKey : NSData! var numberCipherString : String! var qwertyCipherString : String! var isTranskeyShowing : Bool! var isShowQwerty : Bool! = true var isShowNumber : Bool! var controller : UIViewController! @IBOutlet var qwertyBtn : UIButton! @IBOutlet var numberBtn : UIButton! // @IBOutlet var _qwertyCipherLabel : UITextView? // @IBOutlet var _qwertyPlainLabel : UITextView? // @IBOutlet var _numberCipherLabel : UITextView? // @IBOutlet var _numberPlainLabel : UITextView? // override func viewDidDisappear(_ animated: Bool) { super.viewDidDisappear(animated) NSLog("fullview viewDidDisappear"); if mQwertyTransKeyView != nil{ mQwertyTransKeyView.mTK_ClearDelegateSubviews() } if mNumberTransKeyView != nil{ mNumberTransKeyView.mTK_ClearDelegateSubviews() } if isTranskeyShowing == false{ mQwertyTransKeyView.delegate = nil; mNumberTransKeyView.delegate = nil; } } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) NSLog("fullview viewWillApper") } override func viewDidLoad() { super.viewDidLoad() NSLog("fullview viewDidLoad"); let imageNormal = UIImage(named: "btn_sel.png") // self.qwertyBtn.setBackgroundImage(imageNormal?.stretchableImage(withLeftCapWidth: 7, topCapHeight: 0), for: UIControlState.normal) // self.numberBtn.setBackgroundImage(imageNormal?.stretchableImage(withLeftCapWidth: 7, topCapHeight: 0), for: UIControlState.normal) isShowNumber = false isShowQwerty = true isTranskeyShowing = false // Do any additional setup after loading the view. let iv: Array = ["M", "o", "b", "i", "l", "e", "T", "r" , "a", "n", "s", "K", "e", "y", "1", "0"] secureKey = NSData(bytes: iv, length: 16) NSLog("securekey : %@", secureKey) // securekey : // real securekey : <4d6f6269 6c655472 616e734b 65793130> setQwertyTranskey() setNumberTranskey() self.showQwertyTranskeyAction() } override var prefersStatusBarHidden: Bool { return false } func setQwertyTranskey(){ mQwertyTransKeyView = TransKeyView() mQwertyTransKeyView.mTK_Init(self) mQwertyTransKeyView.delegate = self mQwertyTransKeyView.mTK_MakeSecureKey() mQwertyTransKeyView.mTK_Supported(byDeviceOrientation: SupportedByDevicePortrait) mQwertyTransKeyView.mTK_LicenseCheck("license_mtranskey") } func setNumberTranskey(){ mNumberTransKeyView = TransKeyView() mNumberTransKeyView.mTK_Init(self) mNumberTransKeyView.delegate = self mNumberTransKeyView.mTK_MakeSecureKey() mNumberTransKeyView.mTK_Supported(byDeviceOrientation: SupportedByDevicePortrait) mNumberTransKeyView.mTK_LicenseCheck("license_mtranskey") } // 입력완료 func secureInputFinish(_ type: Int) { NSLog("secureInputFinish Btn Type : %d", type) NSLog("secureInputFinish"); var targetView : TransKeyView! NSLog("qwerty : " + isShowQwerty.description + " number : " + isShowNumber.description) if isShowQwerty == true{ var qwertyPlainData:[CChar] = [CChar](repeating: 0, count: 256) let qkey = mQwertyTransKeyView.mTK_GetSecureKey() qwertyCipherString = mQwertyTransKeyView.mTK_GetCipherDataExWithPadding() NSLog("qwertyCipherString : " + qwertyCipherString) mQwertyTransKeyView.mTK_GetPlainDataExWithPadding(withKey: qkey, cipherString: qwertyCipherString, plainString: &qwertyPlainData, length: 256) let qwertyPlainString = String(validatingUTF8:qwertyPlainData) // let qwertyPlainString = String(UTF8String: UnsafePointer(qwertyPlainData))! let encryptedText = String(format:"Qwerty Cipher Text : %@", qwertyCipherString) let plainText = String(format:"Qwerty Plain Text : %@", qwertyPlainString!) print(encryptedText) print(plainText) targetView = mQwertyTransKeyView // self.mQwertyTransKeyView.dismissViewControllerAnimated(true, completion: nil) } if isShowNumber == true{ var numberPlainData:[CChar] = [CChar](repeating: 0, count: 256) let nkey = mNumberTransKeyView.mTK_GetSecureKey() numberCipherString = mNumberTransKeyView.mTK_GetCipherDataExWithPadding() mNumberTransKeyView.mTK_GetPlainDataExWithPadding(withKey: nkey, cipherString: numberCipherString, plainString: &numberPlainData, length: 256) let numberPlainString = String(validatingUTF8:numberPlainData) // let numberPlainString = String(UTF8String: UnsafePointer(numberPlainData))! // _numberCipherLabel.text = String(format:"Number Cipher Text : %@", numberCipherString) // _numberPlainLabel.text = String(format:"Number Plain Text : %@", numberPlainString!) targetView = mNumberTransKeyView // self.mNumberTransKeyView.dismissViewControllerAnimated(true, completion: nil) } isShowQwerty = false isShowNumber = false isTranskeyShowing = false targetView.dismiss(animated: true, completion: nil) NSLog("before dismiss call"); // dispatch_after(5, dispatch_get_main_queue()) { // self.dismissView() // } // NSTimer.scheduledTimerWithTimeInterval(0.2, target: self, selector: "dismissView", userInfo: nil, repeats: false) NSLog("after dismiss call"); } func covertPBKDFData(hexStr : String){ // let chars = (hexStr as NSString).UTF8String // var chars = String(bytes: hexStr.utf8, encoding: NSUTF8StringEncoding) // var i = 0, len = hexStr.length // // var data : NSMutableData! // var byteChars : Array // var wholeByte : CUnsignedLong // // while i < len{ // byteChars[0] = chars[i++]; // byteChars[1] = chars[i++]; // wholeByte = Int(byteChars, radix:16) // // } } // // override func prefersStatusBarHidden() -> Bool { // return true // } @IBAction func showQwertyTranskeyAction(){ // let pbkdfKey = "acc4af609fad57f1cd870a5d94092a24be5fd974" //// let salts = { 1, 6, 0, 7, 4, 4, 4, 4, 8, 8, 7, 1, 4, 3, 3, 3, 3, 3, 3, 3} // var PBKDF2_SALT : NSData! // let PBKDF2_IT = 512; // mQwertyTransKeyView.mTK_SetPBKDF_RandKey(<#T##randkey: NSData!##NSData!#>) // setQwertyTranskey() if mQwertyTransKeyView.isBeingPresented == false { isShowQwerty = true isTranskeyShowing = true let hintStr = String(format:"%d자리 이상 입력해주세요.", 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_Supported(byDeviceOrientation: SupportedByDevicePortraitAndLandscape) mQwertyTransKeyView.setKeyboardType(self, keypadType: 0, mTK_inputType: 2, mTK_inputTitle: "입력", mTK_cryptType: 0, mTK_maxLength: 100, mTK_minLength: 0, mTK_keypadUpper: false, mTK_languageType: 0) mQwertyTransKeyView.mTK_EnableSamekeyInputDataEncrypt(false) mQwertyTransKeyView.mTK_SetUseBalloonImageButton(true) self.present(mQwertyTransKeyView, animated: true, completion: nil) } } @IBAction func showNumberTranskeyAction(){ // setNumberTranskey() if mNumberTransKeyView.isBeingPresented == false{ isShowNumber = true isTranskeyShowing = true mNumberTransKeyView.mTK_SetHint("password", font:UIFont(name:"Arial", size: 15.0)) mNumberTransKeyView.mTK_ShowMessageIfMinLength("0자리 이상 입력해주세요.") mNumberTransKeyView.mTK_ShowMessageIfMaxLength("16자리 입력이 초과되었습니다.") mNumberTransKeyView.mTK_UseVoiceOver(false) mNumberTransKeyView.mTK_setIgnoreStatusbar(false) mNumberTransKeyView.mTK_SetControlCenter(false) mNumberTransKeyView.mTK_UseAllDeleteButton(false) mNumberTransKeyView.mTK_Supported(byDeviceOrientation: SupportedByDevicePortraitAndLandscape) mNumberTransKeyView.setKeyboardType(self, keypadType: TransKeyKeypadTypeText, mTK_inputType: 2, mTK_inputTitle: "숫자입력", mTK_cryptType: 0, mTK_maxLength: 16, mTK_minLength: 0, mTK_keypadUpper: false, mTK_languageType: Int(mTK_Language_Korean.rawValue)) self.present(mNumberTransKeyView, animated: true, completion: nil) } } func TransKeyDidBeginEditing(transKey: TransKey!) { NSLog("fullview TransKeyDidBeginEditing") } func TransKeyDidEndEditing(transKey: TransKey!) { NSLog("fullview TransKeyDidEndEditing") } func TransKeyInputKey(keytype: NSInteger) { NSLog("fullview TransKeyInputKey") } func TransKeyShouldInternalReturn(transKey:TransKey, btnType type:NSInteger)->Bool { NSLog("fullview TransKeyShouldInternalReturn") return true } func TransKeyShouldReturn(transKey: TransKey!)->Bool { NSLog("fullview TransKeyShouldReturn") return true } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() NSLog("fullview viewReceiveMemorywarning"); // Dispose of any resources that can be recreated. } }