package Ġorg . riz ki . m uf riz al . signature . rsa Ċ Ċ import Ġorg . riz ki . m uf riz al . signature . rsa . helpers . is End Separator Ċ import Ġorg . riz ki . m uf riz al . signature . rsa . readers . PrivateKey Reader Ċ import Ġorg . riz ki . m uf riz al . signature . rsa . readers . PrivateKey Reader Storage Ċ import Ġjava . io . File Ċ import Ġjava . nio . charset . Charset Ċ import Ġjava . security . Invalid Key Exception Ċ import Ġjava . security . NoSuch AlgorithmException Ċ import Ġjava . security . Signature Ċ import Ġjava . security . Signature Exception Ċ import Ġjava . util . Base 6 4 Ċ Ċ /** Ċ Ġ* Ċ Ġ* Ġ@ Author ĠR iz ki ĠM uf riz al Ġ< m uf riz al riz ki @ gmail . com > Ċ Ġ* Ġ@ Web Ġ< https :// R iz ki M uf riz al . github . io > Ċ Ġ* Ġ@ Since Ġ 2 3 ĠSeptember Ġ 2 0 1 8 Ċ Ġ* Ġ@ Time Ġ 6 : 4 4 ĠPM Ċ Ġ* Ġ@ Project ĠSignature - RSA Ċ Ġ* Ġ@ Package Ġorg . riz ki . m uf riz al . signature . rsa Ċ Ġ* Ġ@ File ĠSignature Generator Ċ Ġ* Ċ Ġ*/ Ċ Ċ class ĠSignature Generator Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġgenerate Signature ( plain Text : ĠString ? Ġ= Ġnull , ĠprivateKey : ĠString ? Ġ= Ġnull , Ġrsa Algorithm : ĠString ? Ġ= Ġnull ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠprivateKey Reader Ġ= ĠPrivate Key Reader . get ( privateKey Ġ= ĠprivateKey ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsignature Ġ= ĠSignature . getInstance ( rsa Algorithm ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature . init Sign ( privateKey Reader ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature . update ( plain Text ?. toByteArray ( Charset . default Charset ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBase 6 4 . get Encoder (). encode ToString ( signature . sign ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠNoSuch AlgorithmException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġex . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠInvalid Key Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġex . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠSignature Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġex . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġgenerate Signature ( plain Text : ĠString ? Ġ= Ġnull , Ġpath : ĠString ? Ġ= Ġnull , ĠfileName : ĠString ? Ġ= Ġnull , Ġrsa Algorithm : ĠString ? Ġ= Ġnull ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Separator Ġ= Ġif Ġ( path ?. is End Separator () Ġ== Ġfalse ) Ġ"$ path ${ File . separator }$ fileName " Ġelse Ġ"$ path $ fileName " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠprivateKey Reader Ġ= ĠPrivate Key Reader Storage . get ( path Separator ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsignature Ġ= ĠSignature . getInstance ( rsa Algorithm ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature . init Sign ( privateKey Reader ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature . update ( plain Text ?. toByteArray ( Charset . default Charset ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBase 6 4 . get Encoder (). encode ToString ( signature . sign ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠNoSuch AlgorithmException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġex . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠInvalid Key Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġex . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠSignature Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġex . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }