def create(self, alias, realm, description=None, policy=None, usage=None, key_type=None, sequence=None): """ :param key_type: :param usage: :param policy: :param alias: :param realm: :param description: :param sequence: :return: """ json = utils.remove_empty_from_dict({ "key_alias": alias, "realm": realm, "key_description": description, "key_policy": policy, "key_usage": usage, "key_type": key_type, "sequence": sequence, }) return self._create('/create-key', json=json, key="key_info")
def get(self, key_id, sequence=None): """get key detail :param key_id: :param sequence: :return: """ json = utils.remove_empty_from_dict({ "key_id": key_id, "sequence": sequence, }) return self._create("/describe-key", json=json, key="key_info")
def disable(self, key_id, sequence=None): """disable key :param key_id: :param sequence: :return: """ json = utils.remove_empty_from_dict({ "key_id": key_id, "sequence": sequence, }) return self._create("/disable-key", json=json, key="key_info")
def cancel_delete(self, key_id, sequence=None): """delete key :param key_id: :param sequence: :return: """ json = utils.remove_empty_from_dict({ "key_id": key_id, "sequence": sequence, }) return self._create("/cancel-key-deletion", json=json)
def random_data(self, random_data_length=None, sequence=None): """random data :param random_data_length: :param sequence: :return: """ json = utils.remove_empty_from_dict({ "random_data_length": random_data_length, "sequence": sequence, }) return self._create("/gen-random", json=json, raw=True)
def list(self, marker=None, limit=None, sequence=None): """list keys :param marker: :param limit: :param sequence: :return: """ json = utils.remove_empty_from_dict({ "marker": marker, "limit": limit, "sequence": sequence, }) return self._create("/list-keys", json=json)
def delete(self, key_id, pending_days, sequence=None): """delete key :param key_id: :param pending_days: delete after days :param sequence: :return: """ json = utils.remove_empty_from_dict({ "key_id": key_id, "pending_days": pending_days, "sequence": sequence, }) return self._create("/schedule-key-deletion", json=json)
def create_no_plain_encrypt_data(self, key_id, datakey_length=None, encryption_context=None, sequence=None): """create datakeys data pair without plain text returned :param key_id: :param datakey_length: 512 for now :param encryption_context: :param sequence: :return: """ json = utils.remove_empty_from_dict({ "key_id": key_id, "encryption_context": encryption_context, "datakey_length": datakey_length, "sequence": sequence, }) return self._create("/create-datakey-without-plaintext", json=json)
def decrypt_data(self, key_id, cipher_text, datakey_cipher_length=None, encryption_context=None, sequence=None): """decrypt data :param datakey_cipher_length: :param encryption_context: :param key_id: :param cipher_text: DEK encrypted text :param sequence: :return: """ json = utils.remove_empty_from_dict({ "key_id": key_id, "cipher_text": cipher_text, "encryption_context": encryption_context, "datakey_cipher_length": datakey_cipher_length, "sequence": sequence, }) return self._create("/decrypt-datakey", json=json)
def encrypt_data(self, key_id, plain_text, datakey_plain_length=None, encryption_context=None, sequence=None): """encrypt data :param datakey_plain_length: :param encryption_context: 64 for now :param key_id: :param plain_text: 64 bit DEK plain text :param sequence: :return: """ json = utils.remove_empty_from_dict({ "key_id": key_id, "plain_text": plain_text, "encryption_context": encryption_context, "datakey_plain_length": datakey_plain_length, "sequence": sequence, }) return self._create("/encrypt-datakey", json=json)
def test_remove_empty_from_dict(self): d = dict(k1=None, k2='', k3='abc') self.assertEqual({'k3': 'abc'}, utils.remove_empty_from_dict(d))