From d062ceafa49d5d6c646e5a81a42500dc3a542f9e Mon Sep 17 00:00:00 2001 From: Yann Verry Date: Sun, 5 May 2019 22:59:35 +0200 Subject: [PATCH] Add requirements.txt, handle an empty cert file --- README.md | 1 + requirements.txt | 13 +++++++++++++ vault-cert-openssh.py | 19 +++++++++++-------- 3 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 requirements.txt diff --git a/README.md b/README.md index 5fb07b9..5b48cf1 100644 --- a/README.md +++ b/README.md @@ -20,4 +20,5 @@ python vault-cert-openssh.py ~/.ssh/-cert.pub Prerequisite: * Python >=3.7 * hvac + * pipreqs * Vault \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..b041db9 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,13 @@ +Cython==0.29.7 +pyOpenSSL==19.0.0 +cryptography==2.6.1 +protobuf==3.7.1 +hvac==0.8.2 +ipaddr==2.2.0 +lxml==4.3.3 +mock==3.0.4 +numpy==1.16.3 +ordereddict==1.1 +simplejson==3.16.0 +usercustomize==1.0.0 +wincertstore==0.2 diff --git a/vault-cert-openssh.py b/vault-cert-openssh.py index e6d5862..e61807f 100644 --- a/vault-cert-openssh.py +++ b/vault-cert-openssh.py @@ -31,7 +31,7 @@ import time, os import base64 from struct import unpack -def vaultrenewkey(filename, vault_var): +def vaultRenewKey(filename, vault_var): sshKey = filename.replace('-cert','') public_key = open(sshKey,'r') client = hvac.Client(url=vault_var['VAULT_ADDR'], token=vault_var['VAULT_TOKEN']) @@ -162,13 +162,16 @@ if __name__ == "__main__": exit(1) if len(sys.argv) > 1: - with open(sys.argv[1],'r') as f: - key = Decode(f.read().split(" ")[1]) - if int(time.time()) > key['valid before']: - print("Need to renew" + sys.argv[1]) - vaultrenewkey(sys.argv[1],vault_var) - else: - print("Nothing to do") + try: + with open(sys.argv[1],'r') as f: + key = Decode(f.read().split(" ")[1]) + if int(time.time()) > key['valid before']: + print("Need to renew" + sys.argv[1]) + vaultRenewKey(sys.argv[1],vault_var) + else: + print("Nothing to do") + except FileNotFoundError: + vaultRenewKey(sys.argv[1],vault_var) else: print("Usage: %s [path to certificate]" % sys.argv[0]) exit(1) \ No newline at end of file