code: def copy(self):
          
  
          new_digest = Digest(self.digest_type)
          libcrypto.EVP_MD_CTX_copy(new_digest.ctx, self.ctx)
          return new_digest
docs: Creates copy of the digest CTX to allow to compute digest
          while being able to hash more data