コード例 #1
0
 def ruleGet(self, rule_id):
     with self._lock:
         r = self._db.table("rules").get((tinydb.Query()["id"] == rule_id))
         if r:
             return HXAPI.b64(r["rule"], decode=True, decode_string=True)
         else:
             return False
コード例 #2
0
ファイル: hxtool_util.py プロジェクト: DeemOnSecurity/HXTool
def crypt_aes(key, iv, data, decrypt=False, base64_coding=True):
    cipher = AES.new(key, AES.MODE_OFB, iv)
    if decrypt:
        if base64_coding:
            data = HXAPI.b64(data, True)
        data = cipher.decrypt(data).decode("utf-8")
        # Implement PKCS7 de-padding
        pad_length = ord(data[-1:])
        if 1 <= pad_length <= 15 and all(c == chr(pad_length)
                                         for c in data[-pad_length:]):
            data = data[:len(data) - pad_length:]
    else:
        # Implement PKCS7 padding
        pad_length = 16 - (len(data) % 16)
        if pad_length < 16:
            data += chr(pad_length) * pad_length
        data = data.encode("utf-8")
        data = cipher.encrypt(data)
        if base64_coding:
            data = HXAPI.b64(data)
    return data