Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update the decrypt call to use the v2+ signature #6

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
PYTHON_VERSIONS:=3.6,3.7,3.7-dev
PYTHON_VERSIONS:=3.6,3.7,3.7-dev,3.9

export PYTHON_VERSIONS

Expand Down
15 changes: 12 additions & 3 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -88,10 +88,19 @@ the ``pip install berglas`` defined above:

$ git clone https:/maroux/berglas-python.git
$ cd python
$ pyenv virtualenv 3.7.2 berglas-3.7
$ pyenv virtualenv 3.9.14 berglas-3.9
...
$ pyenv shell berglas-3.7
$ pip install -r requirements/dev-3.7.txt
$ pyenv shell berglas-3.9
$ pip install setuptools==58
$ pip install -r requirements/dev-3.9.txt

Updating Requirements Files
~~~~~~~~~~~~~
Update the `install_requires` variable in `setup.py` and then from the pyenv virtualenv shell run:
.. code:: sh

$ python -m pip install pip==18.0 pip-tools==3.2.0 --upgrade
$ make pip_compile

Running Tests
~~~~~~~~~~~~~
Expand Down
7 changes: 6 additions & 1 deletion berglas/resolver.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,12 @@ def _access(self, bucket_name: str, path: str, generation: Optional[int] = None)
raise AutoException("invalid ciphertext: failed to parse ciphertext")

try:
response = self.kms_client.decrypt(key, enc_dek, path.encode("UTF8"))
request = kms.DecryptRequest(
name=key,
ciphertext=enc_dek,
additional_authenticated_data=path.encode("UTF8")
)
response = self.kms_client.decrypt(request=request)
dek = response.plaintext
except (GoogleAPICallError, RetryError, ValueError):
raise AutoException("failed to decrypt dek")
Expand Down
136 changes: 67 additions & 69 deletions requirements/dev-3.6.txt
Original file line number Diff line number Diff line change
@@ -1,71 +1,69 @@
appdirs==1.4.3 # via black
appnope==0.1.0 # via ipython
atomicwrites==1.3.0 # via pytest
attrs==19.1.0 # via black, pytest
backcall==0.1.0 # via ipython
black==19.3b0
cachetools==3.1.1 # via google-auth
certifi==2019.6.16 # via requests
chardet==3.0.4 # via requests
click==7.0 # via black
coverage==4.5.3 # via coveralls, pytest-cov
coveralls==1.8.1
decorator==4.4.0 # via ipython, traitlets
appnope==0.1.3 # via ipython
asttokens==2.2.1 # via stack-data
backcall==0.2.0 # via ipython
black==23.3.0
cachetools==5.3.0 # via google-auth
certifi==2022.12.7 # via requests
charset-normalizer==3.1.0 # via requests
click==8.1.3 # via black
coverage[toml]==6.5.0 # via coveralls, pytest-cov
coveralls==3.3.1
decorator==5.1.1 # via ipdb, ipython
docopt==0.6.2 # via coveralls
entrypoints==0.3 # via flake8
flake8==3.7.8
google-api-core[grpc]==1.14.0 # via google-cloud-core, google-cloud-kms
google-api-python-client==1.7.10
google-auth-httplib2==0.0.3 # via google-api-python-client
google-auth==1.6.3 # via google-api-core, google-api-python-client, google-auth-httplib2, google-cloud-storage
google-cloud-core==1.0.2 # via google-cloud-storage
google-cloud-kms==1.1.0
google-cloud-storage==1.17.0
google-resumable-media==0.3.2 # via google-cloud-storage
googleapis-common-protos[grpc]==1.6.0 # via google-api-core, grpc-google-iam-v1
grpc-google-iam-v1==0.11.4 # via google-cloud-kms
grpcio==1.22.0 # via google-api-core, googleapis-common-protos, grpc-google-iam-v1
httplib2==0.13.0 # via google-api-python-client, google-auth-httplib2
idna==2.8 # via requests
importlib-metadata==0.18 # via pluggy, pytest
ipdb==0.12.1
ipython-genutils==0.2.0 # via traitlets
ipython==7.6.1 # via ipdb
jedi==0.14.1 # via ipython
mccabe==0.6.1 # via flake8
more-itertools==7.2.0 # via pytest
mypy-extensions==0.4.1 # via mypy
mypy==0.720
packaging==19.0 # via pytest
parso==0.5.1 # via jedi
pexpect==4.7.0 # via ipython
exceptiongroup==1.1.1 # via pytest
executing==1.2.0 # via stack-data
flake8==6.0.0
google-api-core[grpc]==2.11.0 # via google-api-python-client, google-cloud-core, google-cloud-kms, google-cloud-storage
google-api-python-client==2.85.0
google-auth-httplib2==0.1.0 # via google-api-python-client
google-auth==2.17.2 # via google-api-core, google-api-python-client, google-auth-httplib2, google-cloud-core, google-cloud-storage
google-cloud-core==2.3.2 # via google-cloud-storage
google-cloud-kms==2.16.1
google-cloud-storage==2.8.0
google-crc32c==1.5.0 # via google-resumable-media
google-resumable-media==2.4.1 # via google-cloud-storage
googleapis-common-protos[grpc]==1.59.0 # via google-api-core, grpc-google-iam-v1, grpcio-status
grpc-google-iam-v1==0.12.6 # via google-cloud-kms
grpcio-status==1.53.0 # via google-api-core
grpcio==1.53.0 # via google-api-core, googleapis-common-protos, grpc-google-iam-v1, grpcio-status
httplib2==0.22.0 # via google-api-python-client, google-auth-httplib2
idna==3.4 # via requests
iniconfig==2.0.0 # via pytest
ipdb==0.13.13
ipython==8.12.0 # via ipdb
jedi==0.18.2 # via ipython
matplotlib-inline==0.1.6 # via ipython
mccabe==0.7.0 # via flake8
mypy-extensions==1.0.0 # via black, mypy
mypy==1.2.0
packaging==23.0 # via black, pytest
parso==0.8.3 # via jedi
pathspec==0.11.1 # via black
pexpect==4.8.0 # via ipython
pickleshare==0.7.5 # via ipython
pluggy==0.12.0 # via pytest
prompt-toolkit==2.0.9 # via ipython
protobuf==3.9.0 # via google-api-core, googleapis-common-protos
ptyprocess==0.6.0 # via pexpect
py==1.8.0 # via pytest
pyasn1-modules==0.2.5 # via google-auth
pyasn1==0.4.5 # via pyasn1-modules, rsa
pycodestyle==2.5.0 # via flake8
pycryptodome==3.8.2
pyflakes==2.1.1 # via flake8
pygments==2.4.2 # via ipython
pyparsing==2.4.1.1 # via packaging
pytest-cov==2.7.1
pytest==5.0.1 # via pytest-cov
pytz==2019.1 # via google-api-core
requests==2.22.0 # via coveralls, google-api-core
rsa==4.0 # via google-auth
six==1.12.0 # via google-api-core, google-api-python-client, google-auth, google-resumable-media, grpcio, packaging, prompt-toolkit, protobuf, traitlets
toml==0.10.0 # via black
traitlets==4.3.2 # via ipython
typed-ast==1.4.0 # via mypy
typing-extensions==3.7.4 # via mypy
uritemplate==3.0.0 # via google-api-python-client
urllib3==1.25.3 # via requests
wcwidth==0.1.7 # via prompt-toolkit, pytest
zipp==0.5.2 # via importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
# setuptools==41.0.1 # via google-api-core, ipdb, ipython, protobuf
platformdirs==3.2.0 # via black
pluggy==1.0.0 # via pytest
prompt-toolkit==3.0.38 # via ipython
proto-plus==1.22.2 # via google-cloud-kms
protobuf==4.22.1 # via google-api-core, google-cloud-kms, googleapis-common-protos, grpc-google-iam-v1, grpcio-status, proto-plus
ptyprocess==0.7.0 # via pexpect
pure-eval==0.2.2 # via stack-data
pyasn1-modules==0.2.8 # via google-auth
pyasn1==0.4.8 # via pyasn1-modules, rsa
pycodestyle==2.10.0 # via flake8
pycryptodome==3.17
pyflakes==3.0.1 # via flake8
pygments==2.15.0 # via ipython
pyparsing==3.0.9 # via httplib2
pytest-cov==4.0.0
pytest==7.3.0 # via pytest-cov
requests==2.28.2 # via coveralls, google-api-core, google-cloud-storage
rsa==4.9 # via google-auth
six==1.16.0 # via asttokens, google-auth, google-auth-httplib2
stack-data==0.6.2 # via ipython
tomli==2.0.1 # via black, coverage, ipdb, mypy, pytest
traitlets==5.9.0 # via ipython, matplotlib-inline
typing-extensions==4.5.0 # via black, ipython, mypy
uritemplate==4.1.1 # via google-api-python-client
urllib3==1.26.15 # via requests
wcwidth==0.2.6 # via prompt-toolkit
136 changes: 67 additions & 69 deletions requirements/dev-3.7-dev.txt
Original file line number Diff line number Diff line change
@@ -1,71 +1,69 @@
appdirs==1.4.3 # via black
appnope==0.1.0 # via ipython
atomicwrites==1.3.0 # via pytest
attrs==19.1.0 # via black, pytest
backcall==0.1.0 # via ipython
black==19.3b0
cachetools==3.1.1 # via google-auth
certifi==2019.6.16 # via requests
chardet==3.0.4 # via requests
click==7.0 # via black
coverage==4.5.3 # via coveralls, pytest-cov
coveralls==1.8.1
decorator==4.4.0 # via ipython, traitlets
appnope==0.1.3 # via ipython
asttokens==2.2.1 # via stack-data
backcall==0.2.0 # via ipython
black==23.3.0
cachetools==5.3.0 # via google-auth
certifi==2022.12.7 # via requests
charset-normalizer==3.1.0 # via requests
click==8.1.3 # via black
coverage[toml]==6.5.0 # via coveralls, pytest-cov
coveralls==3.3.1
decorator==5.1.1 # via ipdb, ipython
docopt==0.6.2 # via coveralls
entrypoints==0.3 # via flake8
flake8==3.7.8
google-api-core[grpc]==1.14.0 # via google-cloud-core, google-cloud-kms
google-api-python-client==1.7.10
google-auth-httplib2==0.0.3 # via google-api-python-client
google-auth==1.6.3 # via google-api-core, google-api-python-client, google-auth-httplib2, google-cloud-storage
google-cloud-core==1.0.2 # via google-cloud-storage
google-cloud-kms==1.1.0
google-cloud-storage==1.17.0
google-resumable-media==0.3.2 # via google-cloud-storage
googleapis-common-protos[grpc]==1.6.0 # via google-api-core, grpc-google-iam-v1
grpc-google-iam-v1==0.11.4 # via google-cloud-kms
grpcio==1.22.0 # via google-api-core, googleapis-common-protos, grpc-google-iam-v1
httplib2==0.13.0 # via google-api-python-client, google-auth-httplib2
idna==2.8 # via requests
importlib-metadata==0.18 # via pluggy, pytest
ipdb==0.12.1
ipython-genutils==0.2.0 # via traitlets
ipython==7.6.1 # via ipdb
jedi==0.14.1 # via ipython
mccabe==0.6.1 # via flake8
more-itertools==7.2.0 # via pytest
mypy-extensions==0.4.1 # via mypy
mypy==0.720
packaging==19.0 # via pytest
parso==0.5.1 # via jedi
pexpect==4.7.0 # via ipython
exceptiongroup==1.1.1 # via pytest
executing==1.2.0 # via stack-data
flake8==6.0.0
google-api-core[grpc]==2.11.0 # via google-api-python-client, google-cloud-core, google-cloud-kms, google-cloud-storage
google-api-python-client==2.85.0
google-auth-httplib2==0.1.0 # via google-api-python-client
google-auth==2.17.2 # via google-api-core, google-api-python-client, google-auth-httplib2, google-cloud-core, google-cloud-storage
google-cloud-core==2.3.2 # via google-cloud-storage
google-cloud-kms==2.16.1
google-cloud-storage==2.8.0
google-crc32c==1.5.0 # via google-resumable-media
google-resumable-media==2.4.1 # via google-cloud-storage
googleapis-common-protos[grpc]==1.59.0 # via google-api-core, grpc-google-iam-v1, grpcio-status
grpc-google-iam-v1==0.12.6 # via google-cloud-kms
grpcio-status==1.53.0 # via google-api-core
grpcio==1.53.0 # via google-api-core, googleapis-common-protos, grpc-google-iam-v1, grpcio-status
httplib2==0.22.0 # via google-api-python-client, google-auth-httplib2
idna==3.4 # via requests
iniconfig==2.0.0 # via pytest
ipdb==0.13.13
ipython==8.12.0 # via ipdb
jedi==0.18.2 # via ipython
matplotlib-inline==0.1.6 # via ipython
mccabe==0.7.0 # via flake8
mypy-extensions==1.0.0 # via black, mypy
mypy==1.2.0
packaging==23.0 # via black, pytest
parso==0.8.3 # via jedi
pathspec==0.11.1 # via black
pexpect==4.8.0 # via ipython
pickleshare==0.7.5 # via ipython
pluggy==0.12.0 # via pytest
prompt-toolkit==2.0.9 # via ipython
protobuf==3.9.0 # via google-api-core, googleapis-common-protos
ptyprocess==0.6.0 # via pexpect
py==1.8.0 # via pytest
pyasn1-modules==0.2.5 # via google-auth
pyasn1==0.4.5 # via pyasn1-modules, rsa
pycodestyle==2.5.0 # via flake8
pycryptodome==3.8.2
pyflakes==2.1.1 # via flake8
pygments==2.4.2 # via ipython
pyparsing==2.4.1.1 # via packaging
pytest-cov==2.7.1
pytest==5.0.1 # via pytest-cov
pytz==2019.1 # via google-api-core
requests==2.22.0 # via coveralls, google-api-core
rsa==4.0 # via google-auth
six==1.12.0 # via google-api-core, google-api-python-client, google-auth, google-resumable-media, grpcio, packaging, prompt-toolkit, protobuf, traitlets
toml==0.10.0 # via black
traitlets==4.3.2 # via ipython
typed-ast==1.4.0 # via mypy
typing-extensions==3.7.4 # via mypy
uritemplate==3.0.0 # via google-api-python-client
urllib3==1.25.3 # via requests
wcwidth==0.1.7 # via prompt-toolkit, pytest
zipp==0.5.2 # via importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
# setuptools==41.0.1 # via google-api-core, ipdb, ipython, protobuf
platformdirs==3.2.0 # via black
pluggy==1.0.0 # via pytest
prompt-toolkit==3.0.38 # via ipython
proto-plus==1.22.2 # via google-cloud-kms
protobuf==4.22.1 # via google-api-core, google-cloud-kms, googleapis-common-protos, grpc-google-iam-v1, grpcio-status, proto-plus
ptyprocess==0.7.0 # via pexpect
pure-eval==0.2.2 # via stack-data
pyasn1-modules==0.2.8 # via google-auth
pyasn1==0.4.8 # via pyasn1-modules, rsa
pycodestyle==2.10.0 # via flake8
pycryptodome==3.17
pyflakes==3.0.1 # via flake8
pygments==2.15.0 # via ipython
pyparsing==3.0.9 # via httplib2
pytest-cov==4.0.0
pytest==7.3.0 # via pytest-cov
requests==2.28.2 # via coveralls, google-api-core, google-cloud-storage
rsa==4.9 # via google-auth
six==1.16.0 # via asttokens, google-auth, google-auth-httplib2
stack-data==0.6.2 # via ipython
tomli==2.0.1 # via black, coverage, ipdb, mypy, pytest
traitlets==5.9.0 # via ipython, matplotlib-inline
typing-extensions==4.5.0 # via black, ipython, mypy
uritemplate==4.1.1 # via google-api-python-client
urllib3==1.26.15 # via requests
wcwidth==0.2.6 # via prompt-toolkit
Loading