reidmorrison / symmetric-encryption

Symmetric Encryption for Ruby Projects using OpenSSL
https://logger.rocketjob.github.io/
Apache License 2.0
476 stars 92 forks source link

Implement Google Cloud Platform Key Management Service support for a keystore #117

Closed cmrd-senya closed 5 years ago

cmrd-senya commented 5 years ago

Description of changes

This PR implements support of Google KMS for a keystore. Mostly the concept is copied from the AWS KMS keystore implementation.

Unlike Amazon KMS in this PR only one encrypted key file is created per one master key. This might be improved in future, but in some case it is not a problem to use google KMS with just one key (e.g. when your location is global).

I also updated jekyll documentation with some information about usage of GCP KMS with symmetric-encryption. If you want to test my implementation you may find some set up instructions there.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

cmrd-senya commented 5 years ago

I have some tests in this PR, but they fail because credentials for GCP are not set. Could you please tell me how do you solve this problem with AWS? Do you keep some credentials for Amazon set up in travis?

reidmorrison commented 5 years ago

Thank you for the Pull Request, this was a lot of work. :100:

cmrd-senya commented 5 years ago

@reidmorrison, you're welcome and thanks for the fast merge and release! We're using your gem in our project and we really enjoy it!