package Ġcom . di eb iet se . mt ls and roi dex ample čĊč Ċ import Ġandroid . app . Activity č Ċ import Ġandroid . net . http . Ssl Error č Ċ import Ġandroid . security . Key Chain č Ċ import Ġandroid . util . Log č Ċ import Ġandroid . webkit . Client Cert Request č Ċ import Ġandroid . webkit . Ssl ErrorHandler č Ċ import Ġandroid . webkit . WebView č Ċ import Ġandroid . webkit . WebView Client čĊč Ċ class ĠM tls WebView Client ( čĊĠĠĠ Ġprivate Ġval Ġactivity : ĠActivity , čĊĠĠĠ Ġprivate Ġval Ġtrust All : ĠBoolean Ġ= Ġfalse č Ċ ) Ġ: ĠWebView Client () Ġ{ čĊĠĠĠ Ġoverride Ġfun Ġon Received Client Cert Request ( view : ĠWebView , Ġrequest : ĠClient Cert Request ) Ġ{ čĊĠĠĠĠĠĠĠ ĠKey Chain . choose PrivateKey Alias ( activity , Ġ{ Ġalias Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( alias Ġ== Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Received Client Cert Request ( view , Ġrequest ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ choose PrivateKey Alias čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcert Chain Ġ= ĠKey Chain . get Certificate Chain ( activity , Ġalias ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠprivateKey Ġ= ĠKey Chain . get PrivateKey ( activity , Ġalias ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cert Chain Ġ== Ġnull Ġ|| ĠprivateKey Ġ== Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Received Client Cert Request ( view , Ġrequest ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . proceed ( privateKey , Ġcert Chain ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" M tls WebView Client ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Error Ġwhen Ġgetting ĠCertificate Chain Ġor ĠPrivate Key Ġfor Ġalias Ġ'${ alias }' ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Received Client Cert Request ( view , Ġrequest ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ}, Ġrequest . key Types , Ġrequest . pr incip als , Ġrequest . host , Ġrequest . port , Ġnull ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Received Ssl Error ( view : ĠWebView , Ġhandler : ĠS sl ErrorHandler , Ġerror : ĠS sl Error ) Ġ{ čĊĠĠĠĠĠĠĠ Ġif Ġ( trust All ) Ġhandler . proceed () Ġelse Ġsuper . on Received Ssl Error ( view , Ġhandler , Ġerror ) čĊĠĠĠ Ġ} č Ċ }