package Ġcom . react native yy q Ċ Ċ import Ġandroid . util . Base 6 4 Ċ import Ġcom . cust le . k sm key . M Key Api Ċ import Ġcom . facebook . react . bridge . Promise Ċ import Ġcom . facebook . react . bridge . React ApplicationContext Ċ import Ġcom . facebook . react . bridge . React Context Base Java Module Ċ import Ġcom . facebook . react . bridge . React Method Ċ import Ġcom . react native yy q . Utils . common Response Handle Ċ import Ġjava . security . Key Factory Ċ import Ġjava . security . Signature Ċ import Ġjava . security . spec . PKCS 8 Encoded KeySpec Ċ Ċ class ĠY yq Module ( react Context : ĠReact ApplicationContext ) Ġ: ĠReact Context Base Java Module ( react Context ) Ġ{ ĊĠ Ġprivate Ġlateinit Ġvar Ġm Key Api : ĠM Key Api ĊĊĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġ" Yy q " ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠSDK åĪĿå§ĭåĮĸ ĊĠĠ Ġ* Ġ@ param Ġurl ĠSDK åľ°åĿĢ ĊĠĠ Ġ* Ġ@ param Ġcont Code Ġ è¯ģ ä¹¦ å®¹åĻ¨ æłĩè¯Ĩ , çĶ¨äºİ åĮº åĪĨ å¤ļ å¥Ĺ è¯ģ ä¹¦ , èĩªå®ļä¹ī ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ description Ġæľ¬ æİ¥åı£ çĶ¨äºİ åĪĿå§ĭåĮĸ ĠSDK Ġ åľ°åĿĢ ãĢĤ ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġinit SDK ( url : ĠString , Ġcont Code : ĠString ) Ġ{ ĊĠĠĠ ĠM Key Api . init SDK ( url , Ġcont Code ) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġ æİ¥åı£ åĪĿå§ĭåĮĸ ĊĠĠ Ġ* Ġ@ param ĠappId Ġ æľº æŀĦ å¯¹åºĶ åºĶçĶ¨ ID ( å¹³åı° åĪĨéħį ) ĊĠĠ Ġ* Ġ@ param Ġapp Code Ġ åºĶçĶ¨ æİĪæĿĥ çłģ , 5 . 1 . 1 . 4 ä¸Ń èİ·åıĸ ĠTODO ĊĠĠ Ġ* Ġ@ param ĠuserInfo ĠçĶ¨æĪ· ä¿¡æģ¯ , è¯¦ è§ģ 4 . 1 ãĢĤ ĠTODO ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ description Ġæľ¬ æİ¥åı£ çĶ¨äºİ åĪĿå§ĭåĮĸ ĠM KEY API ãĢĤ ĊĠĠ Ġ* Ġapp Code Ġåı¯ åľ¨ è¯»åıĸ è¯ģ ä¹¦ å®¹åĻ¨ æłĩè¯Ĩ åĪĹè¡¨ ãĢģ è¯»åıĸ è¯ģ ä¹¦ ãĢģ è¯»åıĸ è¯ģ ä¹¦ é¡¹ ãĢģ è¯»åıĸ è¯ģ ä¹¦ ĠO ID Ġ é¡¹ ãĢģ éªĮ Ġ è¯ģ çŃ¾åĲį ãĢģ éªĮè¯ģ å¯Ĩçłģ ãĢģ ä¿®æĶ¹ å¯Ĩçłģ çŃī æİ¥åı£ ä¼ł ç©º ãĢĤ ĠuserInfo Ġåı¯ åľ¨ è¯»åıĸ è¯ģ ä¹¦ å®¹åĻ¨ æłĩè¯Ĩ åĪĹè¡¨ æİ¥åı£ ä¼ł ç©º ãĢĤ ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġinit API ( appId : ĠString , Ġapp Code : ĠString , ĠuserInfo : ĠString ) Ġ{ ĊĠĠĠ Ġm Key Api Ġ= ĠM Key Api . getInstance ( react ApplicationContext , ĠappId , Ġapp Code , ĠuserInfo ) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġ çĶ³è¯· è¯ģ ä¹¦ ĊĠĠ Ġ* Ġ@ param Ġpin Ġ è¯ģ ä¹¦ å¯Ĩçłģ ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġapply Cert ( pin : ĠString , Ġpromise : ĠPromise ) Ġ{ ĊĠĠĠ Ġm Key Api . apply Cert ( pin ) Ġ{ Ġr Ġ-> ĊĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġcommon Response Handle ( promise , Ġr ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠæĽ´æĸ° è¯ģ ä¹¦ ĊĠĠ Ġ* Ġ@ param Ġpin Ġ è¯ģ ä¹¦ å¯Ĩçłģ ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġupdate Cert ( pin : ĠString , Ġpromise : ĠPromise ) Ġ{ ĊĠĠĠ Ġm Key Api . update Cert ( pin ) Ġ{ Ġr Ġ-> ĊĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġcommon Response Handle ( promise , Ġr ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġ æ³¨ éĶĢ è¯ģ ä¹¦ ĊĠĠ Ġ* Ġ@ param Ġpin Ġ è¯ģ ä¹¦ å¯Ĩçłģ ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġre voke Cert ( pin : ĠString , Ġpromise : ĠPromise ) Ġ{ ĊĠĠĠ Ġm Key Api . revoke Cert ( pin ) Ġ{ Ġr Ġ-> ĊĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġcommon Response Handle ( promise , Ġr ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġ è¯»åıĸ è¯ģ ä¹¦ å®¹åĻ¨ æłĩè¯Ĩ åĪĹè¡¨ ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ description Ġæľ¬ Ġ æİ¥ Ġ åı£ ĠçĶ¨ Ġ äºİ Ġ è¯» Ġ åıĸ Ġ è¯ģ Ġ ä¹¦ Ġ åĪĹ Ġ è¡¨ Ġ, Ġ åĪĹ Ġ è¡¨ Ġ æķ° Ġ æį® Ġä¸º ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġget Cert Cont Code List ( promise : ĠPromise ) Ġ{ ĊĠĠĠ Ġm Key Api . get Cert Cont Code List Ġ{ Ġr Ġ-> ĊĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġcommon Response Handle ( promise , Ġr ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġ è¯»åıĸ è¯ģ ä¹¦ ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ description Ġæľ¬ æİ¥åı£ çĶ¨äºİ è¯»åıĸ è¯ģ ä¹¦ , è¯ģ ä¹¦ ä¸º ĠBase 6 4 Ġ ç¼ĸçłģ æł¼å¼ı ãĢĤ ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġget Cert ( promise : ĠPromise ) Ġ{ ĊĠĠĠ Ġm Key Api . get Cert Ġ{ Ġr Ġ-> ĊĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġcommon Response Handle ( promise , Ġr ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġ è¯»åıĸ è¯ģ ä¹¦ é¡¹ ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġget Cert Info ( promise : ĠPromise ) Ġ{ ĊĠĠĠ Ġm Key Api . get Cert Info Ġ{ Ġr Ġ-> ĊĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġcommon Response Handle ( promise , Ġr ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġ è¯»åıĸ è¯ģ ä¹¦ ĠO ID Ġ é¡¹ ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġstr Oid Ġ è¯ģ ä¹¦ oid æłĩè¯Ĩ ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġget Cert Info By Oid ( str Oid : ĠString , Ġpromise : ĠPromise ) Ġ{ ĊĠĠĠ Ġm Key Api . get Cert Info By Oid ( str Oid ) Ġ{ Ġr Ġ-> ĊĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġcommon Response Handle ( promise , Ġr ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġ æķ°åŃĹ çŃ¾åĲį ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġsign Src Ġ çŃ¾åĲį åİŁ æĸĩ , å¦Ĥ éľĢ è§£ Base 6 4 åĲİ çŃ¾åĲį , éľĢ åľ¨ åİŁ æĸĩ ĠBase 6 4 åŃĹç¬¦ä¸² å¢ŀåĬł âĢľ K SB ASE 6 4 : âĢĿ åīį ç¼Ģ ĊĠĠ Ġ* Ġ@ param Ġpin Ġ è¯ģ ä¹¦ å¯Ĩçłģ ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ description Ġæľ¬ æİ¥åı£ çĶ¨äºİ å¯¹ æķ°æį® è¿Ľè¡Į æķ°åŃĹ çŃ¾åĲį , çŃ¾åĲį åĢ¼ä¸º ĠBase 6 4 Ġ ç¼ĸçłģ åĢ¼ ãĢĤ ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġsignature ( sign Src : ĠString , Ġpin : ĠString , Ġpromise : ĠPromise ) Ġ{ ĊĠĠĠ Ġm Key Api . signature ( sign Src , Ġpin ) Ġ{ Ġr Ġ-> ĊĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġcommon Response Handle ( promise , Ġr ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġ éªĮè¯ģ çŃ¾åĲį ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġsign Src Ġ çŃ¾åĲį åİŁ æĸĩ ĊĠĠ Ġ* Ġ@ param Ġsign Data Ġ çŃ¾åĲį åĢ¼ ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ description Ġæľ¬ æİ¥åı£ çĶ¨äºİ å¯¹ çŃ¾åĲį åĢ¼ è¿Ľè¡Į éªĮè¯ģ ãĢĤ ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġverify Signature ( sign Src : ĠString , Ġsign Data : ĠString , Ġpromise : ĠPromise ) Ġ{ ĊĠĠĠ Ġm Key Api . verify Signature ( sign Src , Ġsign Data ) Ġ{ Ġr Ġ-> ĊĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġcommon Response Handle ( promise , Ġr ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġ éªĮè¯ģ å¯Ĩçłģ ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġpin Ġ è¯ģ ä¹¦ å¯Ĩçłģ ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ description Ġæľ¬ æİ¥åı£ çĶ¨äºİ å¯¹ çŃ¾åĲį åĢ¼ è¿Ľè¡Į éªĮè¯ģ ãĢĤ ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġverify Pin ( pin : ĠString , Ġpromise : ĠPromise ) Ġ{ ĊĠĠĠ Ġm Key Api . verify Pin ( pin ) Ġ{ Ġr Ġ-> ĊĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġcommon Response Handle ( promise , Ġr ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĊĠ Ġ/** ĊĠĠ Ġ* Ġä¿®æĶ¹ å¯Ĩçłģ ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġold Pin Ġ è¯ģ ä¹¦ å¯Ĩçłģ ĊĠĠ Ġ* Ġ@ param Ġnew Pin Ġ æĸ°çļĦ è¯ģ ä¹¦ å¯Ĩçłģ ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġmodify Pin ( old Pin : ĠString , Ġnew Pin : ĠString , Ġpromise : ĠPromise ) Ġ{ ĊĠĠĠ Ġm Key Api . modify Pin ( old Pin , Ġnew Pin ) Ġ{ Ġr Ġ-> ĊĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġcommon Response Handle ( promise , Ġr ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġ è§£ éĶģ å¯Ĩçłģ ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġadmin Pin Ġ ç®¡çĲĨåĳĺ å¯Ĩçłģ ĊĠĠ Ġ* Ġ@ param Ġnew Pin Ġ æĸ°çļĦ è¯ģ ä¹¦ å¯Ĩçłģ ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġunlock Pin ( admin Pin : ĠString , Ġnew Pin : ĠString , Ġpromise : ĠPromise ) Ġ{ ĊĠĠĠ Ġm Key Api . unlock Pin ( admin Pin , Ġnew Pin ) Ġ{ Ġr Ġ-> ĊĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġcommon Response Handle ( promise , Ġr ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* Ġèİ·åıĸ åºĶçĶ¨ æİĪæĿĥ çŃ¾åĲį ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param ĠprivateKey ĊĠĠ Ġ* Ġ@ param Ġsign Data ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġget Server Sign ( privateKey : ĠString , Ġsign Data : ĠString , Ġpromise : ĠPromise ) Ġ{ ĊĠĠĠ Ġvar Ġresult : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġval Ġkey Spec Ġ= ĠPKCS 8 Encoded KeySpec ( ĊĠĠĠĠĠĠĠ ĠBase 6 4 . decode ( privateKey , Ġ 1 )) ĊĠĠĠĠĠ Ġval Ġkey Factory Ġ= ĠKey Factory . getInstance (" RSA ") ĊĠĠĠĠĠ Ġval Ġpri Key Ġ= Ġkey Factory . generate Private ( key Spec ) ĊĠĠĠĠĠ Ġval Ġo Sig Ġ= ĠSignature . getInstance (" SHA 2 5 6 With RSA ") ĊĠĠĠĠĠ Ġo Sig . init Sign ( pri Key ) ĊĠĠĠĠĠ Ġo Sig . update ( sign Data . toByteArray ()) ĊĠĠĠĠĠ Ġval Ġsignature Ġ= Ġo Sig . sign () ĊĠĠĠĠĠ Ġif Ġ( signature Ġ!= Ġnull Ġ&& Ġsignature . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ= ĠString ( Base 6 4 . encode ( signature , Ġ 1 )) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠ Ġ} ĊĠĠĠ Ġpromise . resolve ( result ) ĊĠ Ġ} Ċ } Ċ