示例#1
0
    def rsaEncrypt(self, data):
        rsa_key = self.getRsaPublicKey()
        rsa_chiper = PKCS1_OAEP.new(key=rsa_key,
                                    hashAlgo=SHA1,
                                    mgfunc=lambda x, y: pss.MGF1(x, y, SHA1))

        return rsa_chiper.encrypt(data)
示例#2
0
def decrypt(data: bytes, private_key: str, key_index: int):
    key = RSA.import_key(private_key)
    cipher_rsa = PKCS1_OAEP.new(key=key,
                                hashAlgo=SHA256,
                                mgfunc=lambda x, y: pss.MGF1(x, y, SHA256))
    encrypted_aes_key_iv = (data[0:512] if key_index == 0 else data[512:1024]
                            )  # RSA 4096 OAEP encrypts to 512 bytes
    aes_key_iv = cipher_rsa.decrypt(
        encrypted_aes_key_iv)  # 32 bytes aes_key + 16 bytes aes_iv
    cipher_aes = AES.new(aes_key_iv[0:32], AES.MODE_CBC, aes_key_iv[32:])
    return unpad(cipher_aes.decrypt(data[1024:]), AES.block_size)
 def rsa_encrypt(self, data, key):
     data = bytes(data, 'utf-8')
     key = b64decode(key)
     key = RSA.importKey(key)
     cipher_rsa = PKCS1_OAEP.new(key=key, hashAlgo=SHA256.new(), mgfunc=lambda x,y: pss.MGF1(x,y, SHA1))
     # cipher_rsa = PKCS1_v1_5.new(key=key)
     return cipher_rsa.encrypt(data)
示例#4
0
def encrypt_rsa_oaep(data: bytes, pubkey: str) -> bytes:
    key = RSA.import_key(pubkey)
    cipher_rsa = PKCS1_OAEP.new(
        key=key, hashAlgo=SHA256, mgfunc=lambda x, y: pss.MGF1(x, y, SHA256)
    )
    return cipher_rsa.encrypt(data)