package Ġno . nav . hel se . crypto Ċ Ċ import Ġcom . nim bus ds . j ose . j wk . J WK Ċ import Ġcom . nim bus ds . j ose . j wk . J WK Set Ċ import Ġcom . nim bus ds . j ose . util . Base 6 4 URL Ċ import Ġjavax . crypto . Key Generator ĊĊ Ċ fun Ġlag En J WK ( kid : ĠString Ġ= Ġ" op ps l ags no ek kel - 0 0 1 "): ĠJ WK Ġ{ ĊĠĠĠ Ġval Ġkey gen Ġ= ĠKey Generator . getInstance (" AES ") ĊĠĠĠ Ġkey gen . init ( 2 5 6 ) ĊĠĠĠ Ġval Ġkey Ġ= Ġkey gen . generate Key () ĊĠĠĠ Ġval Ġkey Base 6 4 Ġ= ĠBase 6 4 URL . encode ( key . encoded ). toString () ĊĠĠĠ Ġval Ġj wk String Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠ Ġ{" k ty ":" oct ", ĊĠĠĠĠĠĠĠĠĠ Ġ" kid ":" $ kid ", ĊĠĠĠĠĠĠĠĠĠ Ġ" alg ":" A 2 5 6 KW ", ĊĠĠĠĠĠĠĠĠĠ Ġ" k ":" $ key Base 6 4 "} ĊĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠ Ġreturn ĠJ WK . parse ( j wk String ) Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġbase Ġ= Ġ" op ps l ags data " ĊĠĠĠ Ġval Ġj wk Ġ= Ġlag En J WK ("$ base - key - 0 0 1 ") ĊĠĠĠ Ġval Ġj w ks Ġ= ĠJ WK Set ( j wk ) ĊĠĠĠ Ġval Ġj wk String Ġ= Ġj wk . to JSONObject (). toString () ĊĠĠĠ Ġval Ġj w ks String Ġ= Ġj w ks . to JSONObject ( false ). toString () ĊĠĠĠ Ġprintln (" Create ĠJ WK : Ġ( If Ġcopy / paste : Ġremember : Ġexport ĠHIST CONTROL = ignore space Ġ Ġ.. and Ġkeep Ġthe Ġleading Ġspace )") ĊĠĠĠ Ġval Ġcreate J WK Command Ġ= Ġ" Ġ Ġkubectl Ġcreate Ġsecret Ġgeneric Ġ$ base - send Ġ-- from - literal =${ base }_ j wk ='$ j wk String '" ĊĠĠĠ Ġprintln ( create J WK Command ) ĊĠĠĠ Ġprintln (" Create ĠJ W KS :") ĊĠĠĠ Ġval Ġcreate JW KS Command Ġ= Ġ" Ġ Ġkubectl Ġcreate Ġsecret Ġgeneric Ġ$ base - receive Ġ-- from - literal =${ base }_ jw ks ='$ jw ks String '" ĊĠĠĠ Ġprintln ( create JW KS Command ) ĊĠĠĠ Ġprintln (" Read ĠJ WK :") ĊĠĠĠ Ġprintln (" kubectl Ġget Ġsecret Ġopp sl ags data - send Ġ- o Ġyaml ") ĊĠĠĠ Ġprintln (" echo Ġ'< base 6 4 stuff >' Ġ| Ġbase 6 4 Ġ-- decode ") ĊĠĠĠ Ġprintln (" Update ĠJ W KS :") ĊĠĠĠ Ġprintln (" ! NB ! TODO : ĠYou Ġmight Ġwant Ġto Ġinclude Ġ_ old _ ĠJ W KS - keys Ġalso , Ġin Ġthe Ġnew ĠJ W KS , Ġand Ġupdate ĠJ W KS Ġ_ before _ ĠJ WK ") ĊĠĠĠ Ġprintln (" Force ĠUpdate ĠJ WK :") ĊĠĠĠ Ġprintln ("$ create J WK Command Ġ-- dry - run Ġ- o Ġyaml Ġ| Ġkubectl Ġapply Ġ- f Ġ- ") ĊĠĠĠ Ġval Ġna is Yaml Send Ġ= Ġ""" ĠĠ Ġfiles From : ĊĠĠĠĠĠ Ġ- Ġsecret : Ġ$ base - send """ ĊĠĠĠ Ġval Ġna is Yaml Receive Ġ= Ġ""" ĠĠ Ġfiles From : ĊĠĠĠĠĠ Ġ- Ġsecret : Ġ$ base - receive """ ĊĠĠĠ Ġprintln (" **** ĠSender : Ġ**** ") ĊĠĠĠ Ġprintln ("* ĠNA IS Ġspec :") ĊĠĠĠ Ġprintln ( na is Yaml Send ) ĊĠĠĠ Ġprintln ( ĊĠĠĠĠĠĠĠ Ġ""" * ĠKotlin ĠO pp sl ags App : ĊĠĠĠĠĠ Ġencryption J WK Ġ= ĠJ WK Holder . from Secret ("${ base }_ j wk ") ĊĠĠ Ġ""" . trim Margin () ĊĠĠĠ Ġ) ĊĠĠĠ Ġprintln (" **** ĠReceiver : Ġ**** Ġ") ĊĠĠĠ Ġprintln ("* ĠNA IS Ġspec :") ĊĠĠĠ Ġprintln ( na is Yaml Receive ) ĊĠĠĠ Ġprintln (""" ĊĠĠĠĠĠĠĠ Ġ# Ġ- ĠPL US Ġ- ĠI FF Ġmultiple : Ġ-- ĊĠĠĠĠĠĠĠ Ġmount Path : Ġ/ var / run / secrets /${ base } ĊĠĠĠ Ġ""" . trim Margin ()) ĊĠĠĠ Ġprintln ( ĊĠĠĠĠĠĠĠ Ġ""" * ĠKotlin ĠV ur der ings App / Opp sl ags App : ĊĠĠĠĠĠ Ġde cryption JW KS Ġ= ĠJ WK Set Holder . from Secret ("${ base }_ jw ks ") ĊĠĠĠĠĠ Ġ--- ĠOr Ġif Ġmultiple : Ġ--- ĊĠĠĠĠĠ Ġde cryption JW KS Ġ= ĠJ WK Set Holder . from Multiple ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ WK Set Holder . from Dynamic File ( Paths . get ("/ var / run / secrets /${ base }", Ġ"${ base }_ jw ks ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( .... ) ĊĠĠĠĠĠ Ġ), ĊĠĠ Ġ""" . trim Margin () ĊĠĠĠ Ġ) Ċ } Ċ