diff options
author | elara-leitstellentechnik <elara-leitstellentechnik@users.noreply.github.com> | 2023-12-08 17:25:57 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-08 16:25:57 +0000 |
commit | 10ada2ff6d2a08108edf5b4dbe6562cc9465523d (patch) | |
tree | 465854827969b72acbe8c720d9d0493ada7fa02a /synapse/_scripts | |
parent | Clarify documentation for `only_for_reauth` (#16737) (diff) | |
download | synapse-10ada2ff6d2a08108edf5b4dbe6562cc9465523d.tar.xz |
Write signing keys with file mode 0640 (#16740)
Co-authored-by: Fabian Klemp <fabian.klemp@frequentis.com>
Diffstat (limited to 'synapse/_scripts')
-rwxr-xr-x | synapse/_scripts/generate_signing_key.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/synapse/_scripts/generate_signing_key.py b/synapse/_scripts/generate_signing_key.py index 3f8f5da75f..581b991505 100755 --- a/synapse/_scripts/generate_signing_key.py +++ b/synapse/_scripts/generate_signing_key.py @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. import argparse +import os import sys from signedjson.key import generate_signing_key, write_signing_keys @@ -26,15 +27,21 @@ def main() -> None: parser.add_argument( "-o", "--output_file", - type=argparse.FileType("w"), - default=sys.stdout, + type=str, + default="-", help="Where to write the output to", ) args = parser.parse_args() key_id = "a_" + random_string(4) key = (generate_signing_key(key_id),) - write_signing_keys(args.output_file, key) + if args.output_file == "-": + write_signing_keys(sys.stdout, key) + else: + with open( + args.output_file, "w", opener=lambda p, f: os.open(p, f, mode=0o640) + ) as signing_key_file: + write_signing_keys(signing_key_file, key) if __name__ == "__main__": |