package Ġcom . and ers ost by . webhook . crypto Ċ Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . assert DoesNot Throw Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ Ċ internal Ġclass ĠH mac Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġsignature Ġ= Ġ" sha 1 = 1 5 fb df 5 7 5 2 e 4 8 6 f 7 4 5 c 2 dc 5 ee 8 c 4 7 7 4 e 8 6 f 8 cc 2 d " ĊĠĠĠ Ġprivate Ġval Ġsecret Ġ= Ġ" H em me lig " ĊĠĠĠ Ġprivate Ġval Ġpayload Ġ= ĊĠĠĠĠĠĠĠ Ġ"{\" package \":{\" name \":\" house - gh - webhook \",\" package _ version \":{\" version \":\" 4 5 3 b 7 8 6 \" }, \" registry \":{\" url \":\" https :// docker . pkg . github . com / and ers ost by / house - gh - webhook \" }} }" ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` ver if iser er Ġpayload `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhmac Ġ= ĠH mac ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsecret Ġ= Ġsecret , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= Ġsignature , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayload Ġ= Ġpayload ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert DoesNot Throw Ġ{ Ġhmac . verify () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` fe il Ġsecret Ġk aster Ġfe il `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhmac Ġ= ĠH mac ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsecret Ġ= Ġ" Fe il Secret ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= Ġsignature , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayload Ġ= Ġpayload ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertThrows < IllegalStateException > Ġ{ Ġhmac . verify () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` fe il Ġsignature Ġk aster Ġfe il `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhmac Ġ= ĠH mac ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsecret Ġ= Ġsecret , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= Ġsignature . take Last ( 4 0 ). reversed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayload Ġ= Ġpayload ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertThrows < IllegalStateException > Ġ{ Ġhmac . verify () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġinternal Ġfun Ġ` for Ġk ort Ġsignature Ġk aster Ġfe il `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThrows < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠH mac ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecret Ġ= Ġsecret , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= Ġsignature . take Last ( 3 9 ). reversed (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayload Ġ= Ġpayload ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ