package Ġio . github . w ulkan owy . signer . android . app Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġio . github . w ulkan owy . signer . android . get PrivateKey From Cert Ċ import Ġio . github . w ulkan owy . signer . android . sign Content Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ class ĠSign er Activity Ġ: ĠActivity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġfill data . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpassword . setText (" 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 AB ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcertificate . setText (" MI IK YQ IB Az CC Cho G CS q G SI b 3 DQ E HA a CCC gs Eg go H MI IK Az CC BW 8 G CS q G SI b 3 DQ E HA a CC BW AE gg Vc MI IF WD CC BV Q GC yq G SI b 3 DQ EM Cg E Co I IE + z CC BP cw K QY KK o ZI h vc NA Qw BA z Ab BB SR xdd t G xr 1 B 3 L 4 l 6 VE 3 c 9 VJ 2 u Nt A ID AM NQ BI IE y Lp ZH q yi 1 Dev Up 4 Rk JC J 3 Da 4 7 Hr Af OU d Z 3 aha 2 m GB o Ja 6 6 Hd 1 zc Q he 9 KP ll E 1 2 Jh Vb Q HI j Y / lk br t 7 K Z pt j 8 KH med 5 vd 8 k 7 T uv V oo KU w 4 4 M xd 8 dr q ++ 6 E 1 3 O Jj + CN c W 5 eh Xd Sy N 2 VL 9 SU F sh Zy Jf 4 rz Av SG WY / CN wb EX gg qb sp 6 Ly v 7 2 R 6 9 / kf Jm 1 lb az + Ha 4 fw l F 9 YX FO r 8 gh D LOC Vd CS 0 g Pz 1 L q W ao La Y Uu AY 2 C 7 d Z 5 c 9 z gv ty d 9 L Jz 2 x N yn y 4 6 Rr zA bo F / xw O 3 X vy Y 2 L as z OP Q 4 / W 8 Qj G pb B sh bp OM d 0 YP 1 P 5 3 U 5 J 3 O 8 p AJ gv 8 Ev Q YW y 1 HG + K 2 PH Da Xv 7 J 2 0 DG au v HA / M + Up HE J 8 2 fj 1 f 7 fn T ic 4 Su 1 Lab m 8 6 Iy G 9 TU 2 AK e Ir Po Hk 5 HH Ib dl 6 QY i 1 I 5 i V + w C 0 yy X QQ 0 z G rg / AM OT f O 7 IM i 7 mJ i Wm LV Vk Id P / 6 U cv Q 4 dw + 7 2 nj Q + o Lr 8 l X BC 7 ms EI 9 w 0 P 2 k H bx Ti / l Q Z 9 nA Ord 0 UD k E 9 Hk 8 5 v J lb 0 Gg J 8 lse PW 3 9 Iv Mq P 3 p LL LX + 5 i K QA q / k 3 i 8 b PF x LT 8 j FA te Lo O 9 ep GF mc g Ey ze D 8 Z tg Y 8 O 0 V CSL BC a + 6 m 6 w 3 i Vw 6 H mw / us SR b Rm 9 a E 2 Py / f T nf 1 g 1 M 5 N 4 NK 7 t 9 5 F 8 I au z XI 6 J 3 U fm Pl Y V xv O 6 BY Dv AO Hj M Fl 8 TI VH 4 vid O IG / 1 GB gi KK SH 0 jj gl MV X ve o K wh 8 ssa 2 He FJ 1 Q F cg 2 i 4 1 DU ye V / 6 R 3 Y Vk p BY 0 V 8 m O 0 5 s Tn / Ps rt B KS NF PG egg Gk V 3 I wq es MQ g R xt Rl 2 aw g RB Ky AH 0 + 8 Xf 3 a 6 Ep / e 3 X bz 9 p 9 r Cq Th 3 X 0 6 HE im l job JP 0 lx kr Uc nb l FC V 8 z 8 fl Ax + R 3 rf MAL qg Mr 9 P JR AX f Qx P mV AW Qz FX 6 ma f CP Bz Z TW 2 Q 9 OF l 7 2 4 q 9 h 8 w Py ot 0 Q tx 5 ml GT Qz K Q As 0 HX S 2 t K gs Hi Ku Y 2 Q Eq Q 8 Hf 3 c Qy v F 3 Bo L 7 NV H 7 OI 0 AU 9 d P 6 0 2 L cc 1 j 0 z AC Um Fl CZ i 5 2 L q 0 Vj 2 N CO J 9 l Vh Rx W / k qi SK WF 8 g YZ 0 Z kj 4 h 2 H aj B q um DU FM 1 Uv Bt 4 1 Y 8 9 4 zw 3 7 3 Qq XP 5 i GU b G mo / 7 k 8 q N sg Qu 9 C 7 IG 6 s Nu Jj 8 Ry 4 yb 2 tc C 3 2 E gl if OO 4 7 0 5 Ym + i Nl Y / Rr 8 e VW g Tv + 0 hf DAL y 8 BF ZR 7 J ie T on fg P 6 GZ 1 FA 4 5 Zq I 2 v Q rdp Tri Y 7 lo N 2 OE tb ds jp vp v UD w 7 nk F 2 Ky 9 Y Nt 3 Q Mk Ha 8 r + 0 nj LV ZK mF t gg O 0 9 r 9 Y hg 9 o 7 Iw fe S iq 1 9 E ry a 4 NO 8 5 on 8 + 8 EO vas i QE 6 G 6 Vn + BH gk Q / ME h 5 Et 2 q Z dd 5 o Mb I 3 2 MG TK M 6 O / Ol + 7 dp M / 4 9 / 0 yu 2 JQ 1 y S Op m 0 c Wj H + yl b BW 9 2 J 6 0 Zo H cdn Y sj 3 7 F mV ut RW 8 H 5 Dj HR w Oe C 4 9 Pp SC 9 RR I wu L 8 q jv T 3 C 6 7 YG 9 RAM n X Vm Ld 7 7 O dz 8 HT i yn l I 7 vz HP b Ln de 5 Hd 0 j GX Ke VQ anc In Yw bs ns SX q E 2 X 5 Aa EM f 5 W sl Mo Rd BU / N 9 o 3 Mx Av N jj AG J ne 2 Nx VD g ZE 1 nv 9 / m Ba + LO lap CV bs M + Iy 6 xd vz ITE o BF 2 a 3 l 6 a R / 1 BY s Dg DR cg S 5 0 KP or ca I 8 Q nas d XN h 1 S 8 R J LY K IN 7 Qm 0 Cf K Dc T zx + Y 0 D + 7 fw do W SI 1 j Ter G gr EA 8 t Ox / pu GO Xf 4 7 8 Gw 2 It ca q 3 0 / pt y DF GM CE G CS q G SI b 3 DQ E JF DE U Hh I Ab AB v AG c Aa Q Bu AG MA ZQ By AH Qw IQ Y JK o ZI h vc NA Qk VM RQ EE l R pb WU g MT Uz OT Iw Nj A 4 Nj cx Mj CC BI w G CS q G SI b 3 DQ EH B q CC BH 0 w gg R 5 Ag E AM I IE cg Y JK o ZI h vc NA Qc B MC k GC iq G SI b 3 DQ E MA QY w Gw Q UN k BD + F MA 6 G po h JB 9 ox UP 4 e 9 R 1 a Y CA w DD UIC CB Di wr ki UL d Z av 4 v 1 TON Dt L tb 9 4 w U Hd qt Z f ys y AQ O 5 j 8 yv TH s AM w Ag k Y Cm wg 2 8 yk 5 t Aa BG 9 Oi 4 0 / z 5 k 6 z 4 m Is qq O OT Sd BG 2 h GN ZK Wi 8 X 8 7 1 X yy b Zd 6 VQ 6 j U cb av Hs Aa Px + 0 RU rc 2 Me k F 7 n 1 X tx Z mo f T 9 D fW w E yi 7 j DQ p FL F 1 Xi / l Z MU 8 Y GO m ROI ab di 2 b L h O 6 e 9 Rg Ey 6 Sx 3 ka 8 KU e + X w df Kc 8 Me TC N 9 ta Ly 4 V Bu 2 Df PK k ZZ vx 5 o V 8 vg Q 4 8 4 t 6 6 6 Vf V xC / h Aq / Z OX Z mb X 5 Xz uc dx M wd Zi V Nr X wz ks nd / v UF f Fs 9 Zk fw ky R pb VQ VX p 4 7 6 h fq nj W Qv E 7 0 F BY 8 GX st NW n MP f P io 1 h W zt 8 ORG gd KI om O hl kl F HT QU h Ey Hj KD 3 j Zm O / 0 O 0 wy we chs CA 3 H 8 Uo IP b + od Hh Sp Yh Og Cb L vt M 2 6 g IH C lf Ww T vx Ad XJ W 7 Bk Sh / rv ad U 7 v H 3 A 3 O + 7 t QQ d Jk Hm Ph n U / 8 h K + 5 j 4 + s Pt 0 3 Y ST uu 1 E GY s Ms 5 PI LV g + R 3 1 jw H FOR h fg s WG h / sy d A io S bs T jel UL w 6 l HO Bh Px oa Tv Ai Az lu Sr M 4 nf RE r + P FI gY BN Kt Sb Fh RU a EM s V ZZ 8 CF KC zq Jv CY Qv / Wu At v E ZU 8 ae U 3 c JR DE E iki Pl M / t Hf ik m + n Do L Nm 9 p zx 5 Yh 2 6 w 9 os 5 S 6 4 v 1 ZL il QU a Dh SH a + WE z 4 y 1 6 e YE g N ui NF TP Va G 4 w 7 v L 2 / u 1 I 7 o / XF b Ga 1 m 4 V fb N 0 + xw E IO 8 C dy vl 3 2 IR u 8 S OF g J 4 Kf 9 7 VP 8 IF 9 Tr xv N ob XC 1 eb z X yy z Q 5 ya Y 8 mi 8 Nj Ey N UI vg 5 6 4 nm 5 p 6 9 2 P 7 O Ab X EB 5 L + p 8 L / 1 6 vq GV 3 Us + Z Cy bj cx oi 7 OK e Ns VV G 6 7 q RY + Zc J 5 Fs 6 j Gp B / E 9 9 Bo ie j + R Z 7 n 4 X q ax U 3 Mz LN Q 5 x 8 I + 7 r fg F dt u 2 nz Cw 8 nr 8 W FP d Kw G vo Ai 7 v R 0 2 z Xe Ky Lp 0 i 2 yro Mz T Ng DU 1 7 6 Xh ME HK 2 4 IO c 6 / 1 z FUN 0 Lr 9 6 UL rk Rb IE 7 f 0 ic v U Fl HM H 5 6 Ye 4 ev 6 r KT U tp G Kr Yj Fx 0 8 U 1 Wd vi Z TP G 9 B 6 jc B + O JE CH Ip vd VAR X FL Aa 5 2 Ye 8 o AM m 0 ae 1 Jk CAM m 5 2 2 7 Of q O 0 9 7 a Q rn NM pt LP 7 qz wl F 4 Gw W 0 Wb Gd PU Vg YW 5 x 4 up pt E 1 PY O + ml c 2 gr CY y 5 2 NJ 2 Dl X w AT 1 A gh 2 c Ve + i 1 S 2 s 9 n GH HF o HS j Cb 5 LM q P WE + o Y na IC Nm gi BA w IJ p 3 Eq s 4 7 Vl rie zi 8 cn l S 6 d Zh Bg q VC / t no G 5 6 h Y HR v D / az 0 k 9 ra 7 G DD 9 U Ch AQ Hw QA j 8 mj Ub FD zw VK d 6 Ww U + l Gu LU 8 7 3 j I 2 cq e 6 4 Xz 2 DU / f X rc i 8 b TH 6 N 6 + 2 1 l 4 r W 1 W + 4 9 J Ho a + l IP e 7 m 6 Wm HE 3 7 q FB 9 lb ET t K pb F 1 O Zj uy k P 9 y Sb C / r K fn w Pw PI Lv xF SC Y k WC iu ZI c Dg T 0 / yw 0 PH h vl w Rl W 4 9 c J xD z LD 0 o A 7 FK 3 9 yw T NC 9 9 t W FIG tp lc 8 Bh Wy V qo 4 w Pj Ah MA k GB Ss O Aw Ia BQ AE FH 8 M 3 4 p 8 W 3 P 5 DQ j Ph HJ 3 h 1 c 2 1 OE VB BR r Y 1 0 6 fq yz CC mc 0 jp K uo im w OR PG Q ID AY ag ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent . setText ("{} ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġget key . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey . setText ( try Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget PrivateKey From Cert ( password . text . toString (), Ġcertificate . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . localized Message ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsign p fx . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . text Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" signer ", Ġ" Sign Ġstarts ...") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Ġ= ĠDate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsign Content ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcertificate . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Ġ= ĠDate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" signer ", Ġ" Sign Ġends ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimer . text Ġ= ĠgetTime Taken String ( start , Ġend ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" signer ", Ġ" Sign Ġerro red : Ġ${ e . localized Message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . localized Message ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsign key . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . text Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" signer ", Ġ" Sign Ġstarts ...") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Ġ= ĠDate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsign Content ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Ġ= ĠDate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" signer ", Ġ" Sign Ġends ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimer . text Ġ= ĠgetTime Taken String ( start , Ġend ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" signer ", Ġ" Sign Ġerro red : Ġ${ e . localized Message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . localized Message ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetTime Taken String ( start : ĠDate , Ġend : ĠDate ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdiff Ġ= Ġend . time Ġ- Ġstart . time ĊĠĠĠĠĠĠĠ Ġreturn ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"% d Ġsecs Ġ(% d Ġms )", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTimeUnit . MILLISECONDS . to Seconds ( diff ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiff ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ