:mod:`airflow.contrib.hooks.gcp_kms_hook` ========================================= .. py:module:: airflow.contrib.hooks.gcp_kms_hook Module Contents --------------- .. function:: _b64encode(s) Base 64 encodes a bytes object to a string .. function:: _b64decode(s) Base 64 decodes a string to bytes. .. py:class:: GoogleCloudKMSHook(gcp_conn_id='google_cloud_default', delegate_to=None) Bases::class:`airflow.contrib.hooks.gcp_api_base_hook.GoogleCloudBaseHook` Interact with Google Cloud KMS. This hook uses the Google Cloud Platform connection. .. method:: get_conn(self) Returns a KMS service object. :rtype: googleapiclient.discovery.Resource .. method:: encrypt(self, key_name, plaintext, authenticated_data=None) Encrypts a plaintext message using Google Cloud KMS. :param key_name: The Resource Name for the key (or key version) to be used for encyption. Of the form ``projects/*/locations/*/keyRings/*/cryptoKeys/**`` :type key_name: str :param plaintext: The message to be encrypted. :type plaintext: bytes :param authenticated_data: Optional additional authenticated data that must also be provided to decrypt the message. :type authenticated_data: bytes :return: The base 64 encoded ciphertext of the original message. :rtype: str .. method:: decrypt(self, key_name, ciphertext, authenticated_data=None) Decrypts a ciphertext message using Google Cloud KMS. :param key_name: The Resource Name for the key to be used for decyption. Of the form ``projects/*/locations/*/keyRings/*/cryptoKeys/**`` :type key_name: str :param ciphertext: The message to be decrypted. :type ciphertext: str :param authenticated_data: Any additional authenticated data that was provided when encrypting the message. :type authenticated_data: bytes :return: The original message. :rtype: bytes