def final(self): i = openssl.c_int(0) buffer = openssl.malloc(self.ciphertext, len(self.ciphertext)+self.cipher.get_blocksize()) if (openssl.EVP_CipherFinal_ex(self.ctx, openssl.byref(buffer,self.size), openssl.byref(i))) == 0: raise Exception("[OpenSSL] EVP_CipherFinal_ex FAIL ...") self.size += i.value return buffer.raw[0:self.size]
def update(self, input): i = openssl.c_int(0) buffer = openssl.malloc(b"", len(input)+self.cipher.get_blocksize()) inp = openssl.malloc(input,len(input)) if openssl.EVP_CipherUpdate(self.ctx, openssl.byref(buffer), openssl.byref(i), inp, len(input)) == 0: raise Exception("[OpenSSL] EVP_CipherUpdate FAIL ...") self.size += i.value self.ciphertext += buffer.raw[0:i.value]