diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 64fe81158d22a112a10714ef6f06647ee2b49284..eb9c706ab4eb5aebe4624e655a331d17aba39129 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -13,9 +13,10 @@ cache:
 publish:
   stage: deploy
   script:
-    - openssl aes-256-cbc -pass "env:ENCRYPTION_PASSWORD" -in secring.gpg.enc -out secring.gpg -d
-    - openssl aes-256-cbc -pass "env:ENCRYPTION_PASSWORD" -in pubring.gpg.enc -out pubring.gpg -d
-    - openssl aes-256-cbc -pass "env:ENCRYPTION_PASSWORD" -in gradle.properties.enc -out tlatools/gradle.properties -d
-    - tlatools/gradlew -btlatools/build.gradle ${GRADLE_ARGS} uploadArchives
+    - cd tlatools
+    - openssl aes-256-cbc -d -base64 -pbkdf2 -pass "env:ENCRYPTION_PASSWORD" -in gradle.properties.enc -out gradle.properties
+    - openssl aes-256-cbc -d -base64 -pbkdf2 -pass "env:ENCRYPTION_PASSWORD" -in pubring.gpg.enc -out pubring.gpg
+    - openssl aes-256-cbc -d -base64 -pbkdf2 -pass "env:ENCRYPTION_PASSWORD" -in secring.gpg.enc -out secring.gpg
+    - ./gradlew ${GRADLE_ARGS} uploadArchives
   only:
     - master@general/stups/tlatools
diff --git a/gradle.properties.enc b/gradle.properties.enc
deleted file mode 100644
index 8dec5627428305a4508fe5431fe42f841ea92bf7..0000000000000000000000000000000000000000
Binary files a/gradle.properties.enc and /dev/null differ
diff --git a/pubring.gpg.enc b/pubring.gpg.enc
deleted file mode 100644
index b01894ee4011821aae3eddeedaa4aabe129675fa..0000000000000000000000000000000000000000
Binary files a/pubring.gpg.enc and /dev/null differ
diff --git a/secring.gpg.enc b/secring.gpg.enc
deleted file mode 100644
index 5d1a7a8e028c27e4f81aaabb128b1fce862262bf..0000000000000000000000000000000000000000
Binary files a/secring.gpg.enc and /dev/null differ
diff --git a/tlatools/build.gradle b/tlatools/build.gradle
index 2b84806780bfb7169f980fa4f6275b5c37812c7a..4e7eb926ac4d5b8cb867df74ef1f721674b43b52 100644
--- a/tlatools/build.gradle
+++ b/tlatools/build.gradle
@@ -60,6 +60,7 @@ artifacts {
 	 archives javadocJar, sourcesJar
 }
 
+ext."signing.secretKeyRingFile" = rootProject.file("secring.gpg").absolutePath
 
 signing {
 	 sign configurations.archives
diff --git a/tlatools/gradle.properties.enc b/tlatools/gradle.properties.enc
new file mode 100644
index 0000000000000000000000000000000000000000..c1867a27ac7d323a86ce3c5a2d8257a97a0a5b10
--- /dev/null
+++ b/tlatools/gradle.properties.enc
@@ -0,0 +1,4 @@
+U2FsdGVkX1+BEAbjRIB+mXtm8SXf7JkI+WHnEimPW4vLHWrbGs8PY7u+B9BCqO+3
+vmUhdJFfnwJglivtRmt3ecLUpSSG3pZFXrdtnR/eHdLIkbGIIjZRcRTokF66Z2CQ
+sWdDhhu2gsRxXOiKSQ/d5MknWHd+zlLoMiWJv3u+EQ3desH/cadBC1RAod7L6Kul
+UtSAw5pmAJFaBrRFoOJVvw7hi5ZkpcMB3JTZL2+1Tsxs50m7XAqc5PVdCHpMqVMb
diff --git a/tlatools/pubring.gpg.enc b/tlatools/pubring.gpg.enc
new file mode 100644
index 0000000000000000000000000000000000000000..8ad11824421415e5455b09b4fc68af040a6c190f
--- /dev/null
+++ b/tlatools/pubring.gpg.enc
@@ -0,0 +1,26 @@
+U2FsdGVkX1/ecmzt62K2yKsVlvmQKkfzExhaIo9Zm8/ZobX4Q9asbrssdDbfAdpX
+lyIp3wY65EPLcROlrNZqLTjAbcZrPnQyKgCYRr0+s5/0iy6noTWa52EZyPvmP3fw
+vsIM/MqFjZCBUhFfvvIb2qNz5+d84lvsOojzeYm+9xSKCx8k24XupcsWuMgfiNla
+vmpeUUCPHAYB1clTNn66YdChrQJCcrbnHUmBWms3lSU5waZ5i1dnteaLCLo6M58O
+H/7YKOb5cg/0WFE6/l28xFk49ACcAH6i3q3pf99XyPGk+/kvG/Zx+8HvaoG26MkM
+HrV60kJgh1t4LBtvadvHk0UyODZJzrH/4ka1XVJv18ZQ5pcLTI6sNEwkM9XjxaU0
+Ik7DIxf6onEaBlk1nRnhXi97gKa7+XjVR82pLXgPEn5HrAe+ObX1UL0VqfJw7EXs
+Nb2ZVciC/ugfi3UiHuOtFmImo+MRLXvvqkpW49VfO5GwBBpmjM9PcXdRzdtU8USp
+Z+KXXBoUPfZupCpty+ZCq8uBEMW93ifeqOLOqcr8B496LrPOC+T4D/MOh+1Pdpy+
+3YmzdfwttqKXNULhiW/loljKoKOBOjO6DDWwyEH+4LEuZYgXdC6nfedchU+F5ZQw
+ORtyrkznV7baoNR/UDT33qz0c3fEtoWmPtiuiClHN12CoXWamK7dwBKP64aPL5Xy
+UaYsrbjhMhW3/miVx6NgIv0iq8B/aUrJIXVdGWycVJVciRbgk1Px6z1lo3GOaZad
+APqExffMHUOQZCjv8AC9tKsy2heog97Q4jUwOCHdghfmKK16ksy4plDaVN322uOG
+S3mkfJLxw/2oUeAA8IFARCZ1FoCINPKxiRevPXhoizRNa7WzmQ4jT9C+BWDJeitn
+LrA7fMmTpW0z7oaQez2VTSFg5liDtozp7Dp+d5MBA9Rg4B69F121FIt3MXWACHFl
+5YW2+Sa6czh8P7eZQ4lRGOl8Y56NAE72n5l15HUdxrnEowwREuHAmWVdWCi16oTJ
+JUqcSv3vu4WZQo3XhoB36ll0gvYZezlzoxpSqekBwlDkKCqevhncyu0UefG9fApu
+g/2gDmQIVeAMfKytEyAomXCNiFriesqPBAyt3ZRivbWCMeBGT3KuMO2BIigfW7na
++BdpdeCF8KIEiOq69Ulaw6wo2lTOlP+utuD6D3iB0ATsvr18Bj9CXN7lloQD4tmw
+DTUxrYBFjjtK6/SINHq0CwCgY968QdL+muk1A1xIiOK4ELNSLK16qIHUKYN5G7pr
+eGNRD0KGeg64u42o+R1bZaYOWEqDHw9gWP9uuDp+M31T2uz3+NZS7JOmqpwh1VRy
+4hW7BEhLO+C/A+feWeuXq5PXlMaeEE0+L8QE0nvto3N3HqsiwXIgg54AsQEkRCxp
+uybDyfvAc4ni+GTd+8g0oUilzxa/oHGGzD386/aZDVWXhNiFZNXfr2LJljMW+lRT
+7A5z/IIegoN5lSNy4IwbJY4WSRMaZ3jX7zM/t5IAyeB2/BXuiKspJ+XKhNwib5Mo
+NKuwogypLpPux7968PkRHiOk3ndizKTUQj4RF52dWqW7ekbYelK1fcJXxILXDYi7
+8i/H7c7cUzvYvmnHe+2PArs2yVUL+fBrrsdXSaaswMs=
diff --git a/tlatools/secring.gpg.enc b/tlatools/secring.gpg.enc
new file mode 100644
index 0000000000000000000000000000000000000000..087d41d8e55ca33bbdbacc52334567604dfe3398
--- /dev/null
+++ b/tlatools/secring.gpg.enc
@@ -0,0 +1,55 @@
+U2FsdGVkX1/uZ2q881m1pVQtzJ0DILJqtO2ZEJOotiBebJg4SmSM4TkLeSgTDFoD
+m3fsZdrdbTrOqpNjdCySadS2IwibzJjG8cRFxnetJNUdfpWGFb67kKx/Han4QaIY
+d9bvEAkg02nL3suJTa4WKVl70gjiXSheOXgWHi+L3mEGzJewORIIYBv1BE60zxjB
+72SvpfrboYxFBCahZJ/GAiNvw4aqD0Wj9G5CJlM6xY0gGTn3dXuWkUC+sciQp9UI
+rRSF+r/RMRvbUAPZY3F2S07wMSzIBct9INyhc9kQptRwhuy9BAAdfxVaMxEK3a2P
+cM7mHacEmE242/4a28unvcDnsuyV3NW74pt7f2v+LFlPvM8Cw9tpeKtFCRXfREJR
+g32dDJBo+4zSa3qLx7n4gsUFaKTDJWPtAPe0pkMLa7GrdoEVIkaIl4m1ET8+M6t4
+sKrBKP7neVnjjkSPRroxpiSQ7MLECeyj3MNUB/r/hsLg1ZLc8n90b1vPKqd4DIpJ
+PtiIcamt6K8gvAIOwUZQqdpJNNTqCLV9DnKyj5I/U8RpHAXsBe5eawX2WDxA/Ywf
+INzBibO9yUpg25OtlsHRqdcyHNmDRMAVUOWtzqa+5lGWIF3h0qWOY8BEqHf7TkjO
+O/2qPBqLSmpRcOdgUg9G/5Snpb1xo4NXEZ2kj8GC+Rf61stI38QVScLTsPSR+QKK
+9VgCSg1cQTmhQnwZLQw5pB7SdsFPtwwq62YM5E2xzZwr9f9eJVXTfIQlwjM+t7cH
+nFbyC+3ywLnvlec/NEeA4DOH5QfJ2vRUQmcXuzmuBi0vGSriVd3U4CKiRKsq7umo
+nFpo6y8i7qr4Vj3oIgRIj3yyzYEnaSyJXRJ2mhp3e4fqrMMD7MFrAZ4syKgAJ1Xh
+qFbfovebhPbA4NtLrehmZ0r9F1ovowo1X8fwqpoqaKO1LVYQkWC1N/Tkg0ASUlTh
+pF0O94r7sMv6pD7vvBvwsfZWxt6qWHVD4H6JU4ySwWHOFiFs7YWPbQIcqaw1Y9R+
+sZncQ7Aul/8HGhYhQvklsrK2Yt5nKAQCibST8UinICyAbEWnHnRLaLleB45BiAUy
+injdzUjwy2PO7sOnUa7Nf37QuxZGMIMqETapc5ONIz+CAqGjfOC1BGSB6vZmUCNn
+W3kpFHbznGTe0zAoPYFhsfnwOWc/m2xUJRRwovVYGQc+PLGEUsMa9JhxwEyb6EUg
+bXMsyfk2RBZYEV7bWqML2Nyv71nBuMDjCkAju3gUCaWeG4OVjLTjvvTTNsKWqzKt
+vevEgTteynQrUi+CvsqY1fcwyZcmqTBIen+pUYz8mK+JXfL5ppafvuRGZBWMtJW0
+Q+3x7HLGtbNO6MNoaK+dPfp5ekQ7eztRFEwTPRTuvqnVBGmgot4HkkxB3noASlCb
+xEXEjSYmQJA8Y+B0OGG8CNyKnS/ZeHgqA0K9+xPLuWmJBSEGAgpe6knBdE2+5Qqp
+/OgfTKnrCjaVZPeWUG+EwbnUriUKJfTM0SIixJwla9ml+8pzTU1qkRLgD1aychM7
+91mxducI9ZsbGAa9aH4SZWU8PC3EPoMOxqN88kZNcfb7AjWMLOdCcgHUm+zRZ/46
+zJaS3MAXDdxLmTweT/seL/7VhKvfMSo+qKX1ALSneXpYtAT/XjrIOidhCr9et9eu
+SzPdQt24lwcyuGQPIBDYt9NuMBqjFmOE6X3O3CMr4G5d0YmDJuWDZvvCEtGrQjc1
+2fREnWTzgkIvOxlYlrR0cczUpzRiAgCfU3ujHRXV+Fqch3RpxmwWz4FGsoJfJ9+a
+LNRGtMn+X9Tt/Vx9J1RlPwHJ6U3gS853MXGLXzXFKobqZL3XrMhT00kN0sONCxvc
+L17s62zThzeENKZPQxSuA2GVeR3ucip4AhPgFsCCB3m/aIPNZ45/PpRMIFVbijIz
+u3XTxv6DN2tp7rDyerRvhfNkVxdu0G8AZ18immyT2wkxnuM4SZODBFK32C6iY2Sx
+LU5GgTCSvy/ze5/DRXFhG6mcC9iUWALpfYvCGGwpwdK0MM/Xqd4t7X/kVhcEGljF
+UPN09Ja6OqYO47yZUdTUp4L+0FkHnl3wqQaL23e92mb+LpqBYUsdH9PBMAHZ6YA6
+OlDNP9n0xwoPHSz4od/6lNA93AmpVOfcrJ2N9J4GMPX44AATDLbr3Hwd8lSxvVD8
+oITXp1lZcLzpDo8AHEF/t/MkahaIxTeyjX6jAy2HB5IIXFn5IopAO5gNLS1jmT0I
+4d+9u1JxArjQRCjV0c5103SLzVFrYbTVMT7iegCAXjQ0CR3RjGQNna0KMA7Yteoy
+gTb7lNDrBjfVk3LkqsBH7bpCQik9lqmcWhYP+ry7wbAK99v/FtzhHqBjyQYHmEBC
+Zepft6grJ1JiNOwhTs0/uLQNamuMD1qNGZfta/7CQYzLARvy78DXXyfiM0vc9HeI
+cdBwm0nmn2mL3xpKZbQFUNJtzTZTUM4K+H+4Ua166Plil4Gmb2p8BM/Ulby27xDM
+OvKgofUrWorPny3kPgjlNXpWAaxGPgcrC6/Zx2mwdUBSmsGAe9aGVMk1wIN/KKdz
+uvpAYnlQu26JK39BVVO3OR9v7S3kALxGlN9TCxszWfHiq9wR/BHrZzud1XoCuzZA
++YNDLIWIkie5B7WkF6o+7HnO6/G7arl2gmTBK/i5f/vfZsnj077kQz6TPxt+/k6I
+RLWVzUvUDtqSlAO9Wnbi0gajRcsjREVrGiS0kh120x4JRJfEdVmDs/MDPK+iM7ov
+mEOgGTIa73SxZZnwqG9j6uggY6M9m/ZO0uPNTEt+jsbQ0NZ9prpI+2/6A8QAX6RE
+ug7x+98jjXf7vboTEJLTHJxbuBxJLhJjOqY1Nq0I7GahpPGZMo9yo4Ty78bF4E57
+OpT/Q0/wTVSyK9fHPQrRr5zFjvwHmCCs2wWpc76Mv2OThmzVudgyJAoUPENxLSrA
+RylkDiihi4PacfjaClbKJJ7K7cgU7KqJQgwS9AM4H8sRqQsZZX/f5UMAVXPRj6u0
+qnoH9gxIYAzvm6ceVklagTk09IWCiWqY0NGELL6+plxzjkJuXX2LstfXiHY7g29P
+FLnneZ0kNWog2ynKUVBFkdEVdS6K0aQ0xqUFXAwbNvrcpiJeY9RufQcBUlZm/fPb
+m26i9V+sL3CcHRbX4qa/QRsQ7DdjdSpOJAt0GQUco3AGfW6Z1koIjSswr0IA41no
+1A35JdElJm+lt0pHA9QWBTewNfJkXPR/GHvqUdc1sTDDXa2binNHFWhb+ydX2aQ6
+z8ceydjxEt6I3mdK89GZsc/839ctCkeevrjLIC+wAxOviGNJanfyt25BirCgntpi
+sLyqYz1nesHZeheyKQBw6y5oYI0EAtVX1ifwSvYgAjbFb1rUmeZl+NWgU14eskyT
++0SdoUgo7WNuJelmyRRoIwTgaV5p3boreRWmdA0oiIKowo6dFE+PzU/cy0dBZtL+
+xkXQZ8J6POdTEt4A9Vw6BQ==