/** Ċ Ġ* ĠCopyright Ġ 2 0 1 3 - present Ġme mt rip ĠL TD . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . me mt rip . eos . core . crypto . signature Ċ Ċ import Ġcom . me mt rip . eos . core . base 5 8 . Base 5 8 Encode Ċ import Ġcom . me mt rip . eos . core . crypto . E os PrivateKey Ċ Ċ import Ġorg . bitcoin j . core . Sha 2 5 6 Hash Ċ import Ġorg . sp ong ycastle . asn 1 . x 9 . X 9 Integer Converter Ċ Ċ class ĠPrivate Key Signing Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġx 9 Ġ= ĠX 9 Integer Converter () ĊĊĠĠĠ Ġfun Ġsign ( digest : ĠByteArray , Ġeos PrivateKey : ĠE os PrivateKey ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsignature Result Ġ= ĠEC Signature Provider . sign ( Sha 2 5 6 Hash . hash ( digest ), Ġeos PrivateKey ) ĊĠĠĠĠĠĠĠ Ġreturn Ġencode Signature ( signature Result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġencode Signature ( signature Result : ĠEC Signature Result ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( signature Result . rec Id Ġ< Ġ 0 Ġ|| Ġsignature Result . rec Id Ġ> Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Signature Ġrecovery Ġid Ġcould Ġnot Ġbe Ġretrieved , Ġan Ġinvalid Ġcrypto Ġwas Ġbuilt .") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsig Data Ġ= ĠByteArray ( 6 5 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġheader Byte Ġ= Ġsignature Result . rec Id Ġ+ Ġ 2 7 Ġ+ Ġ 4 ĊĠĠĠĠĠĠĠ Ġsig Data [ 0 ] Ġ= Ġheader Byte . to Byte () ĊĊĠĠĠĠĠĠĠ ĠSystem . arraycopy ( x 9 . integer ToBytes ( signature Result . signature . r , Ġ 3 2 ), Ġ 0 , Ġsig Data , Ġ 1 , Ġ 3 2 ) ĊĠĠĠĠĠĠĠ ĠSystem . arraycopy ( x 9 . integer ToBytes ( signature Result . signature . s , Ġ 3 2 ), Ġ 0 , Ġsig Data , Ġ 3 3 , Ġ 3 2 ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠBase 5 8 Encode (). encode Signature (" SIG ", Ġsig Data ) ĊĠĠĠ Ġ} Ċ }