You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

298 lines
12 KiB

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<String> = ["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 : <d689e80d 01000000 01000000 00000000>
// 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<CChar>(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<CChar>(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<String>
// 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.
}
}