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.

344 lines
13 KiB

  1. /*==============================================================================
  2. - TransKeyView.h ( secureKeyboard)
  3. -
  4. ==============================================================================*/
  5. /*==============================================================================
  6. support device
  7. SupportedByDevicePortrait : Only Portrait
  8. SupportedByDevicePortraitUpsideDown : Portrait & PortraitUpsideDown
  9. SupportedByDeviceLandscape : LandscapeLeft & LandscapeRight
  10. SupportedByDevicePortraitAndLandscape : Portrait & PortraitUpsideDown
  11. LandscapeLeft & LandscapeRight
  12. SupportedByDeviceLandscapeLeft
  13. SupportedByDeviceLandscapeRight
  14. SupportedByDevicePortraitUpsideDownOnly
  15. ==============================================================================*/
  16. enum {
  17. SupportedByDevicePortrait,
  18. SupportedByDevicePortraitUpsideDown, //
  19. SupportedByDeviceLandscape, // LandscapeLeft & LandscapeRight
  20. SupportedByDevicePortraitAndLandscape,
  21. SupportedByDeviceLandscapeLeft,
  22. SupportedByDeviceLandscapeRight,
  23. SupportedByDevicePortraitUpsideDownOnly
  24. };
  25. /*==============================================================================
  26. secureKeyboard delegate
  27. ==============================================================================*/
  28. @protocol TransKeyViewDelegate <NSObject>
  29. @optional
  30. - (BOOL)didAutorotateToInterfaceOrient:(UIInterfaceOrientation)orientation; //ios5 이하
  31. - (NSUInteger)didAutorotateToInterfaceOrient; //ios6
  32. - (void)secureInputFinishIgnoreInputLength:(NSInteger)type;
  33. @required
  34. - (void)secureInputFinish:(NSInteger)type;
  35. @end
  36. /*==============================================================================
  37. secureKeyboard interface
  38. ==============================================================================*/
  39. @interface TransKeyView : UIViewController
  40. @property (nonatomic, assign) id<TransKeyViewDelegate> delegate;
  41. /*=============================================================================================================
  42. MTranskey API
  43. =============================================================================================================*/
  44. // 라이브러리 초기화
  45. // host : TransKeyView의 상위 UIViewController
  46. - (id)mTK_Init:(id)host;
  47. // 암호키 설정, 128bit
  48. - (void)mTK_SetSecureKey:(NSData*)securekey;
  49. // 라이브러리 내에서 랜덤하게 로컬 암호화에 사용할 비밀키를 생성한다. (128bit)
  50. - (void)mTK_MakeSecureKey;
  51. // 가상키보드 초기화
  52. // host : TransKeyView의 상위 UIViewController
  53. - (id)SetKeyboardType:(id)host;
  54. /*==============================================================================
  55. host : TransKeyView의 UIViewController (self)
  56. keypad :
  57. "0" - "영문+숫자+특수문자" ()
  58. "1" - "숫자"
  59. input : text/password type
  60. "0" - text type ()
  61. "1" - password type
  62. label : (, , , )
  63. - "입력"
  64. crypt :
  65. "0" - ()
  66. "1" - (5CK_SetSecureKey함수를 )
  67. maxlength : (:16) - 16 16
  68. minlength : (:0) -
  69. bUpper : .
  70. language :
  71. "0" - ()
  72. "1" -
  73. ==============================================================================*/
  74. - (id)SetKeyboardType:(id)host
  75. keypadType:(NSInteger)keypad
  76. mTK_inputType:(NSInteger)input
  77. mTK_inputTitle:(NSString*)label
  78. mTK_cryptType:(NSInteger)crypt
  79. mTK_maxLength:(NSInteger)maxlength
  80. mTK_minLength:(NSInteger)minlength
  81. mTK_keypadUpper:(BOOL)bUpper
  82. mTK_languageType:(NSInteger)language;
  83. // 입력 에디트박스의 설명설정
  84. - (void)mTK_SetHint:(NSString*)desc font:(UIFont*)font;
  85. - (void)mTK_SetHint:(NSString*)desc font:(UIFont*)font textAlignment:(NSTextAlignment)alignment;
  86. // 허용입력 초과시 메세지 박스 사용
  87. - (void)mTK_ShowMessageIfMaxLength:(NSString*)message;
  88. // 최소입력 미만시 메세지 박스 사용
  89. - (void)mTK_ShowMessageIfMinLength:(NSString*)message;
  90. // 입력 에디트박스에 커서 사용유무
  91. - (void)mTK_UseCursor:(BOOL)bUse;
  92. // 전체삭제버튼 사용유무
  93. - (void)mTK_UseAllDeleteButton:(BOOL)bUse;
  94. // navigation bar 사용할 경우 셋팅
  95. - (void)mTK_UseNavigationBar:(BOOL)bUse;
  96. // VoiceOver 사용
  97. - (void)mTK_UseVoiceOver:(BOOL)bUse;
  98. // Navi Bar 설정
  99. - (void)mTK_ShowNaviBar:(BOOL)show;
  100. // 다국어 언어 설정
  101. - (void)mTK_SetLanguage:(NSInteger)langType;
  102. /*=============================================================================================================
  103. MTranskey additional API
  104. =============================================================================================================*/
  105. // 라이브러리 버전정보
  106. - (NSString*)mTK_GetVersion;
  107. // 암호키를 얻는다.
  108. - (NSData*)mTK_GetSecureKey;
  109. // 보안 키패드를 사용하여 입력된 암호화 값을 얻는다.
  110. - (NSString*)mTK_GetCipherData;
  111. - (NSString*)mTK_GetCipherDataEx;
  112. - (NSString*)mTK_GetCipherDataExWithPadding;
  113. // 모바일 장치에 대한 고유 ID값을 얻는다.
  114. - (NSString*)mTK_GetUniqueID;
  115. - (NSString*)mTK_GetUniqueIDEx;
  116. // 보안 키패드를 사용하여 입력된 원문 값을 얻는다.
  117. - (void)mTK_GetPlainDataWithKey:(NSData*)key cipherString:(NSString*)cipherString plainString:(char*)plainData length:(NSInteger)length;
  118. - (void)mTK_GetPlainDataExWithKey:(NSData*)key cipherString:(NSString*)cipherString plainString:(char*)plainData length:(NSInteger)length;
  119. - (void)mTK_GetPlainDataExWithPaddingWithKey:(NSData*)key cipherString:(NSString*)cipherString plainString:(char*)plainData length:(NSInteger)length;
  120. - (void)mTK_SetPBKDF_RandKey:(NSData*)randkey withSalt:(NSData *)salt withIterator:(NSInteger)iterator;
  121. - (NSString*)mTK_GetPBKDF2DataEncryptCipherDataWithSeedIv:(unsigned char*)iv;
  122. - (NSString*)mTK_GetPBKDF2DataEncryptCipherDataExWithSeedIv:(unsigned char*)iv;
  123. - (NSString*)mTK_GetPBKDF2DataEncryptCipherDataExWithPaddingWithSeedIv:(unsigned char*)iv;
  124. // 어플리케이션의 패스워드 필드에 넣을 dummy값을 얻는다.
  125. - (NSString*)mTK_GetDummyData;
  126. // 보안 키패드로 입력한 데이터 길이를 얻는다.
  127. - (NSInteger)mTK_GetDataLength;
  128. // 보안 키패드의 키패드 배경색을 변경할 때 사용한다.
  129. - (void)mTK_SetKeypadBackColor:(UIColor*)backColor;
  130. // 보안 키패드의 키패드 배경색을 변경할 때 사용한다.
  131. - (UIColor*)mTK_GetKeypadBackColor;
  132. // 보안 키패드의 Label 글씨 색을 가져올 때 사용한다.
  133. - (UIColor*)mTK_GetLabelColor;
  134. // 보안 키패드의 Label 폰트를 변경할 때 사용한다.
  135. - (void)mTK_SetLabelFont:(UIColor*)txtColor fontType:(NSString*)type fontSize:(CGFloat)size;
  136. // 보안 키패드를 사용하여 입력된 암호화 값 및 사용된 암호화 키를 얻는다.
  137. - (NSString*)mTK_GetSecureData;
  138. // 랜덤키 사용유무
  139. // 사용하면 쿼티 <-> 순열 변환버튼 사용하지 않음.(쿼티 자판으로 고정)
  140. - (void)mTK_UseSequentialKey:(BOOL)bUse;
  141. // 버튼 간격조절
  142. - (void)mTK_SetButtonMargin:(float)addGap;
  143. // 키패드 간격조절 (입력완료는 그대로)
  144. - (void)mTK_SetKeypadMargin:(float)addGap;
  145. // 버튼 라운드처리
  146. - (void)mTK_SetButtonRadius:(float)fround;
  147. // 특수문자키 사용유무
  148. - (void)mTK_UseSpecialKey:(BOOL)bUse message:(NSString*)text;
  149. // 입력 이미지 사이즈 조절
  150. - (void)mTK_SetSizeOfInputKeyImage:(CGFloat)width height:(CGFloat)height_;
  151. - (void)mTK_SetSizeOfInputPwKeyImage:(CGFloat)width height:(CGFloat)height_;
  152. // 입력 에디트, 타이틀 라벨, 입력완료 버튼 중앙으로
  153. // iPhone 전용
  154. - (void)mTK_SetControlCenter:(BOOL)bUse;
  155. // 입력에디트필드의 백그라운드 이미지 설정(transkey_inputbox.png)
  156. - (void)mTK_SetInputEditboxImage:(BOOL)bUse;
  157. // 보안키패드에 설정된 언어 리턴
  158. - (NSInteger)mTK_GetLanguage;
  159. // 디바이스 지원범위 설정
  160. - (void)mTK_SupportedByDeviceOrientation:(NSInteger)supported_;
  161. // iPhone frame으로 강제 설정(기업은행 전용)
  162. - (void)mTK_ForceiPhone;
  163. // iOS 4.x에서 풀뷰를 addSubview하고 난 후 호출
  164. - (void)act;
  165. // IOS4에서 풀뷰 키패드를 addSubview 했는데 화면이 보이지 않는 경우가 있어 수동으로 불러준다.
  166. // IOS4를 지원할 때는 넣어준다.IOS4에만 동작하므로 IOS5 이상 버전에 영향을 미치지 않는다.
  167. - (void)actToIos4;
  168. // IOS4에서 풀뷰 키패드를 removeFromSuperview 했는데 화면이 사라지지 않는 경우가 있어 수동으로 불러준다.
  169. // IOS4를 지원할 때는 넣어준다.IOS4에만 동작하므로 IOS5 이상 버전에 영향을 미치지 않는다.(mTK_SupportedByDeviceOrientation를 사용할 경우)
  170. - (void)removeToIos4;
  171. //최상위 버튼의 Top 마진
  172. - (void)mTK_SetHighestTopMargin:(int)height;
  173. // Navi Bar 백그라운드 색상 설정
  174. - (void)mTK_SetNaviBarBackgroundColor:(UIColor *)color;
  175. // Navi Bar 백그라운드 이미지 설정
  176. - (void)mTK_SetNaviBarBackgroundImage:(NSString *)name;
  177. // Navi Bar 이전/다음/완료 버튼 숨김설정
  178. - (void)mTK_SetHiddenBeforeButton:(BOOL)hidden;
  179. - (void)mTK_SetHiddenNextButton:(BOOL)hidden;
  180. - (void)mTK_SetHiddenCompleteButton:(BOOL)hidden;
  181. // Navi Bar 마지막 입력값 보여주기 설정
  182. - (void)mTK_ShowLastInput:(BOOL)show;
  183. // 멀티 파라미터 설정
  184. - (void)mTK_SetMultiParam:(NSMutableArray *)params;
  185. // 멀티 파라미터 ResultData가져오기
  186. - (NSMutableArray *)mTK_GetMultiResultData;
  187. // Shift Option 사용 유무 설정
  188. - (void)mTK_UseShiftOptional:(BOOL)bUse;
  189. // 키패드 파라미터 옵션 초기화
  190. - (void)mTK_ClearParamOptions;
  191. // 키패드 사용한 Parent뷰에서 Subview를 삭제 설정
  192. - (void)mTK_ClearDelegateSubviews;
  193. // 입력된 텍스트의 길이를 가져온다
  194. - (NSInteger)mTK_GetInputLength;
  195. // ios7이상에서만 사용. 풀뷰 상태바 색상을 지정한다.
  196. - (void)mTK_SetStatusbarColorwithRed:(CGFloat)red Green:(CGFloat)green Blue:(CGFloat)blue Alpha:(CGFloat)alpha;
  197. // 어두운계열과 밝은 계열의 상태바텍스트 색상 선택
  198. - (void)mTK_SetStatusbarTextColorDark:(BOOL)darkColor;
  199. - (void)mTK_EnableSamekeyInputDataEncrypt:(BOOL)bEnable;
  200. - (void)mTK_setHideInputPasswordDelay:(NSInteger)delaySecond;
  201. - (void)mTK_setVerticalKeypadPosition:(int)position;
  202. - (void)mTK_NaviButtonChangeClearData:(BOOL)bClear;
  203. - (void)mTK_setIgnoreStatusbar:(BOOL)isIgnore;
  204. - (void)mTK_SetPBKDF_RandKey:(NSData*)randkey;
  205. - (void)mTK_SetPBKDF_RandKey:(NSData*)randkey withSalt:(NSData *)salt withIterator:(NSInteger)iterator;
  206. - (NSString*)mTK_GetPBKDF2DataEncryptCipherData;
  207. - (NSString*)mTK_GetPBKDF2DataEncryptCipherDataEx;
  208. - (NSString*)mTK_GetPBKDF2DataEncryptCipherDataExWithPadding;
  209. - (void)mTK_SetAlertTitle:(NSString*)title;
  210. // 말풍선(balloon) 사용유무
  211. - (void)mTK_SetUseBalloonImageButton:(BOOL)bUse;
  212. //키패드가 최초에 심볼타입으로 생성되는 옵션
  213. - (void) mTK_ChangeKeypadToSymbol:(BOOL) flag;
  214. //취소버튼 삭제
  215. - (void) mTK_DisableCancelBtn : (BOOL) flag;
  216. //자판 높이 세팅
  217. - (void) mTK_SetHeight:(float)value;
  218. // 더미 커스텀 이미지 사용
  219. - (void) mTK_UseCustomDummy : (BOOL) flag;
  220. // 커스텀 더미 스트링 (@"!@#$")
  221. - (void) mTK_CustomDummyString : (NSString *) mDummyString;
  222. // 드래그 기능 막는 옵션
  223. - (void) mTK_DisableDragEvent : (BOOL) flag;
  224. // color 세팅이 추가된 SetHint API
  225. - (void)mTK_SetHint:(NSString *)desc font:(UIFont *)font textAlignment:(NSTextAlignment)alignment textColor:(UIColor *)color;
  226. // 타이틀 이미지의 크기수정
  227. - (void) mTK_SetTitleHeight : (float) rate;
  228. - (void)mTK_DisableButtonEffect:(BOOL)bDisable;
  229. /*
  230. 1. : custom_title_logo.png
  231. 2. : custom_titlebar_background.png
  232. */
  233. - (void)mTK_UseCustomTitleImage:(BOOL)flag withWidth:(float)logoW withHeight:(float)logoH;
  234. //오토포커싱 사용
  235. - (void) mTK_SetAutoFocusing : (BOOL) flag;
  236. // 키패드 버튼 사이 간격 조절
  237. - (void) mTK_SetBtnMarginRatio : (float) value;
  238. // 공개키를 통한 암호문 패킷 생성
  239. - (NSString*)mTK_EncryptSecureKey:(NSString*)publicKey cipherString:(NSString*)cipherString;
  240. // iPhoneX 풀뷰, 상하단 Safe Area 블랙으로 처리하는 옵션
  241. - (void) mTK_SetSafeAreaColor : (UIColor *) color;
  242. // 미디어 볼륨으로 버튼음 재생하도록 설정 (Tock.caf)
  243. - (void) mTK_UseButtonResSound : (BOOL) flag;
  244. // 숫자 키보드를 랜덤으로 배열
  245. - (void) mTK_UseRandomNumpad : (BOOL) useRandomNumpad;
  246. // SafeArea 설정
  247. - (void) mTK_SetBottomSafeArea : (BOOL) flag;
  248. // * 라이선스 체크. 반드시 진행해서 검증받아야 mTransKey 사용 가능
  249. - (int) mTK_LicenseCheck : (NSString *) fileName;
  250. @end