# * coding: UTF8 *
"""
加密/解密模块
常量
-----------
.. data:: MODE_ECB
.. data:: MODE_CBC
.. data:: MODE_CTR
"""
[文档]def aes(key, mode, IV):
"""
初始化一个密码对象 (cipher) 用于加密/解密操作。注意:初始化后, cipher 对象只能用于加密或解密。
不允许创建一个密码对象(cipher) 同时用于加密()、解密()操作::
crypto = aes(b"1234" * 4, 1)
enc = bytearray(32)
crypto.encrypt(bytes(range(32)), enc)
print(enc)
crypto = aes(b"1234" * 4, 1)
dec = bytearray(32)
crypto.decrypt(enc, dec)
print(dec)
:param key: 加密/解密 秘钥。(bytes格式)
:param mode: 加密/解密模式:
* ``1`` (or ``ucryptolib.MODE_ECB``) 表示 电子密码本 (Electronic Code Book).
* ``2`` (or ``ucryptolib.MODE_CBC``) 表示 密码块链接 (Cipher Block Chaining).
* ``6`` (or ``ucryptolib.MODE_CTR``) 表示 计数器模式 (Counter mode).
:param IV: 是CBC模式的初始化向量。在计数器模式下,IV 为计数器的初始值
:returns: 密码对象 cipher
"""
pass
[文档]def encrypt(in_buf, out_buf):
"""
加密 *in_buf*。
如果没有给出 *out_buf*,则返回结果为新分配的 `bytes` 对象。否则,结果被写入 可变的缓冲 *out_buf*。
*in_buf* 和 *out_buf* 也可以使用相同的可变缓冲区。
:param in_buf: 待加密数据。
:param out_buf: 加密后输出数据,该参数可以不指定,未指定则在返回参数中携带加密数据。
:returns: 空 或者 加密后数据
"""
pass
[文档]def dencrypt(in_buf, out_buf):
"""
解密 *in_buf*。
:param in_buf: 待解密数据。
:param out_buf: 解密后输出数据,该参数可以不指定,未指定则在返回参数中携带解密数据。
:returns: 空 或者 解密后数据
"""
pass