From ca6b941cbb2e6bc1ee5dcd1f816f28215b1ef47e Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Wed, 26 Jul 2023 14:08:31 +0530 Subject: [PATCH] fix(release): update secrets handling scripts --- .github/workflows/ci.yml | 4 ++-- scripts/encrypt-secret.sh | 18 ++++++++++-------- scripts/signing-setup.sh | 12 ++++++------ secrets/keystore.cipher | Bin 2643 -> 0 bytes secrets/keystore.jks.age | Bin 0 -> 2643 bytes secrets/keystore.properties.age | Bin 0 -> 315 bytes secrets/props.cipher | Bin 315 -> 0 bytes 7 files changed, 18 insertions(+), 16 deletions(-) delete mode 100644 secrets/keystore.cipher create mode 100644 secrets/keystore.jks.age create mode 100644 secrets/keystore.properties.age delete mode 100644 secrets/props.cipher diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8588f60d..8a8018ea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -60,9 +60,9 @@ jobs: - name: Decrypt secrets run: | ./scripts/setup-age.sh - ./scripts/signing-setup.sh "$ENCRYPT_KEY" + ./scripts/signing-setup.sh "$AGE_SECRET_KEY" env: - ENCRYPT_KEY: ${{ secrets.ENCRYPT_KEY }} + AGE_SECRET_KEY: ${{ secrets.AGE_SECRET_KEY }} - name: Build release app uses: gradle/gradle-build-action@a4cf152f482c7ca97ef56ead29bf08bcd953284c # v2.7.0 diff --git a/scripts/encrypt-secret.sh b/scripts/encrypt-secret.sh index abbcf559..80f93d0a 100755 --- a/scripts/encrypt-secret.sh +++ b/scripts/encrypt-secret.sh @@ -2,15 +2,17 @@ set -euo pipefail -# Simple script that uses OpenSSL to encrypt a provided file with a provided key, and writes the result -# to the provided path. Yes it's very needy. - INPUT_FILE="${1:-}" OUTPUT_FILE="${2:-}" -ENCRYPT_KEY="${3:-}" +AGE_KEY="${3:-}" -if [[ -n "$ENCRYPT_KEY" && -n "$INPUT_FILE" && -n "$OUTPUT_FILE" ]]; then - openssl enc -aes-256-cbc -md sha256 -pbkdf2 -e -in "${INPUT_FILE}" -out "${OUTPUT_FILE}" -k "${ENCRYPT_KEY}" -else - echo "Usage: ./encrypt-secret.sh " +if ! command -v age 1>/dev/null; then + echo "age not installed" + exit 1 +fi + +if [[ -n "$AGE_KEY" && -n "$INPUT_FILE" && -n "$OUTPUT_FILE" ]]; then + age --encrypt -r "$(echo "${AGE_KEY}" | age-keygen -y)" -o "${OUTPUT_FILE}" < "${INPUT_FILE}" +else + echo "Usage: ./encrypt-secret.sh " fi diff --git a/scripts/signing-setup.sh b/scripts/signing-setup.sh index 2d5c5d88..4ba5d5d2 100755 --- a/scripts/signing-setup.sh +++ b/scripts/signing-setup.sh @@ -3,11 +3,11 @@ set -euo pipefail ENCRYPT_KEY="${1}" -TEMP_KEY="$(mktemp)" +KEY_FILE="$(mktemp)" -trap "rm -rf ${TEMP_KEY} 2>/dev/null" INT TERM EXIT +trap "rm -rf ${KEY_FILE} 2>/dev/null" INT TERM EXIT -echo "${ENCRYPT_KEY:?}" > "${TEMP_KEY}" +echo "${ENCRYPT_KEY:?}" > "${KEY_FILE}" function decrypt() { if ! command -v age 1>/dev/null; then @@ -16,8 +16,8 @@ function decrypt() { fi SRC="${1}" DST="${2}" - age --decrypt -i "${TEMP_KEY}" -o "${DST:?}" "${SRC:?}" + age --decrypt -i "${KEY_FILE}" -o "${DST:?}" "${SRC:?}" } -decrypt secrets/keystore.cipher keystore.jks -decrypt secrets/props.cipher keystore.properties +decrypt secrets/keystore.jks.age keystore.jks +decrypt secrets/keystore.properties.age keystore.properties diff --git a/secrets/keystore.cipher b/secrets/keystore.cipher deleted file mode 100644 index 4cc091ccdc32fdb77565c6c549988fababfa9c91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2643 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 B3qb$? diff --git a/secrets/keystore.jks.age b/secrets/keystore.jks.age new file mode 100644 index 0000000000000000000000000000000000000000..605a2181748337dacbec9f7b5d792058cbb80a9e GIT binary patch literal 2643 zcmV-Z3as^EXJsvAZewzJaCB*JZZ2{LaA`I| zFL_dQPir+}Zc|E4Vp(K#LO3yKQ!olGEiE84R#JIyc~(Mmd1PrwL`^eEYH(|9Mo>w1 zaCCWMH!@mDdUs5BbxJmDSy>8<8Hw${B|j3IZJ6IHX>v)=hsbZ}2L6UDY#cte*IiG9 zrI?0S$By`Yvn5G$Pj3k~V^;J4&%W%x*>&a$i>=i7-C21;sZfTGOhm#8i%yM|`gmh>dk z!@Lg@32xC7FGLFNwW2r%F&-dP(y>B=Dl!^p^iUv9Hy`(kw32NG>)60+C<5;bj!e^J zX3eVB(Xh8Q!9^jF#O)*}eCKJHLHos36pnEW8fEjVQ_;i#OdL0%pKQ9WOJD6j{BPhP z833`C_+_6qhLRcG?h_0@}{S9_77uT;1HDmH#RAXQc~1h#~Ff`O1i z6#X~V&}N~G?ra9$OGor-M!6|e_Ghmlc{V}fZMDz2NCs0V72Ov+phSb$9p_d3ZEdcN zy26Ftlx!zlXSQjnbEX3RK5dKG%`Pm78d{;*ncF4c{LfBON=*`$d6SIFf7!w zg%X(+x5%cZ;H72ev-NO6gOiPlN9z*7V}#eRU(?~POdUW5WRdTcIZi;p+2b&En*x9| zd5zL@cq+2f3sOmuxP+7|%2(H1>z%Fz^t8YV+)mE6_Tx65F4Vh0VGR#B=?tGHFXzt1 z#kcaX#RcMYwS73Nd|NCKoeV(Vj%ZqRM0Wgz!AR3NM*P&!-nKOvE~z3ubr>U>!&7(4 z{Y?CEGU?>VYe{ZId2VuVZoT|P5hs)7;%Gn`1T59Wc8oNx1jSE)zE&|9!+knbg@T36 z_dcRQh0#`Jri6B!1oh$CX_jXkCG z$>f#al%UBZSorKu9!JkSUG1t!bRS|-7PnM}Ckh+<5?k?M+`-UF~RPxeM6) z()DG({!+KKQU@ysx^uqZ*r;C?gvr(qj4j8#vG`^kG>8Jr4yL!r0DUs3>)84btW|&% zi}Odrt&}?h*!h{DMIxBeNHR3&4ol;u6|BFI?-{}xB*mZdovs9;ypdI~dkTK=Z%G{SLoZ?+R^*N^-#z!wVs3eY*B#((4Kk_eu zAKVA80m=iu9Ttex44qv9bbHm=8Q5G2ppZt`W`o-g=7h<>&Mrj!Xyc=c=wR~1KBJ8H zLOq3a003xM%&Ymci$rCwAiBDj&)z9hKYsQM_8pfjdfi$GwZZfsYna*MG zVOUq>hsJbJ&?SHXelmGVakC?;hHXTIA(?s~5qV15Qt&|BJ^f~LZ0$rAX5$vn>bs-P zNVw)#a+SvqzzaYk9c4BW0RMZJzD3<*B^b7k;txMU*=qk{L}bijdFX_*4A&NuG2Vi| zP#3jHZqcZqKR1*_^tHJC@?VM5yzmxl~e(=l0#O7We5*H%^zZyJhM7VeC%izgxa z$9<H6-@sm zt%B6~&V0_1GF#n=uiDJ2HopP&BKxYVR98+@w<3vFHbomS+k}vV%?mJN2KVo@g!?EI z?@?GGNqq8yS}r^^xunj+d|`nYh!>`SxKAHCnI(U0oOmlFJ^&!jT0BO#T!CVza^|RW zTL;yS=fQbhy6A9v4Q6qYj?VK_bUrrR^gc@l+aLnIoa(2=4zwU*bren`gQ5imKLI!a za4*1 z6fvgX{{1huN5#`-_^eENVfpiH$H?Rn%s{sqD(ahPrx7QTt+?bgfC|NkW$tp#SHF6$BgI8<3l&K;yKbI(h@xcSwI+3!@1vs-mmfE{e=iQ59L_$Y zS}4L0jXTqZ{b6hfUc4tfZ(IT_G}S0G*?j}Y6U=786tnvILCG4_d8$sICMXbrYu^iA z=$Hu%UpA!ws+qTpug#w~Pdv7>S=_vi&t#dZmIG&M{Jh6c}%>(e*o7c6A!8hF&Fo%-#FNE9Xjy)>%Ptzbi>J63McTg|wg z$!<}eYTtPYaFOLE;~YJ-4ZlfnJlUm)^@K zh%49+-Bflf-B<#+Ah)0pHgb2_W^4d<4e6sb2zQ`2b0@NNXHy_MwCf0g&^_g#T%M2; B0FM9w literal 0 HcmV?d00001 diff --git a/secrets/keystore.properties.age b/secrets/keystore.properties.age new file mode 100644 index 0000000000000000000000000000000000000000..c6589c2536dd3ab7a1e386acae2e406bd444299a GIT binary patch literal 315 zcmV-B0mS}cXJsvAZewzJaCB*JZZ2R9Dj!OJ}6^VXjF3^4sD}==~$5(_MQlivL?W6r%_HN;_V9Wz{xEI&z16QG5 NE5HO{1epoTCq_=Vew6?K literal 0 HcmV?d00001 diff --git a/secrets/props.cipher b/secrets/props.cipher deleted file mode 100644 index a76abef6b810c3e686f6c6fcb4e597c1eac7eb63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 315 zcmV-B0mS}cXJsvAZewzJaCB*JZZ2YMNMpSl5W@%?PZBbNEXGUx} zZg4VcVpBFpPBVH}LV0a4OG{QqZdD2`EiE8pOD{?=MQ%?|IdCgdV@*>wMp`&AdN(yn zSu|O8aCkF!Z8uJ3RVy_)D@6*g1~r1}i&k4~b^BSq$(1JLJs;5uE7|-zT4ImV4j)Kf z^Ec2B8gre}Ez`0G8uRX>9Tk`Rbn}1dB*W~W^Q__`;=WrgWS-VgNxt#p2-j!}APzi! zn+Zo4cc8TX85)TGoHV&|oM^KT0pgOSFKn1rKxVs*01y$mNLfuuy{X8V{&CES4BgDt Nsa!;oWAX8ehs@u6e+&Qs