MCPcopy Create free account
hub / github.com/Keeper-Security/Commander / set_stream

Method set_stream

keepercommander/crypto.py:218–249  ·  view source on GitHub ↗
(self, stream, for_encrypt)

Source from the content-addressed store, hash-verified

216 self._base_stream = None
217
218 def set_stream(self, stream, for_encrypt):
219 self.in_buffer = memoryview(bytearray(10240))
220 self.in_buffer_pos = 0
221 self.out_buffer = memoryview(bytearray(10240))
222 self.out_buffer_pos = 0
223 self.is_encrypt = for_encrypt
224 self.bytes_read = 0
225 if stream:
226 self.is_eof = False
227 if self.is_gcm:
228 if self.is_encrypt:
229 nonce = get_random_bytes(12)
230 self.out_buffer[self.out_buffer_pos:self.out_buffer_pos + len(nonce)] = nonce
231 self.out_buffer_pos += len(nonce)
232 else:
233 nonce = stream.read(12)
234 self.bytes_read += len(nonce)
235 cipher = Cipher(AES(self.key), GCM(nonce), backend=_CRYPTO_BACKEND)
236 else:
237 if self.is_encrypt:
238 iv = get_random_bytes(16)
239 self.out_buffer[self.out_buffer_pos:self.out_buffer_pos + len(iv)] = iv
240 self.out_buffer_pos += len(iv)
241 else:
242 iv = stream.read(16)
243 self.bytes_read += len(iv)
244 cipher = Cipher(AES(self.key), CBC(iv), backend=_CRYPTO_BACKEND)
245 self.crypter = cipher.encryptor() if self.is_encrypt else cipher.decryptor()
246 self._base_stream = stream
247 else:
248 self.is_eof = True
249 return self
250
251 def closed(self):
252 return self._base_stream is not None

Callers 6

test_stream_decrypterMethod · 0.80
download_to_streamMethod · 0.80
upload_attachmentsFunction · 0.80
upload_attachmentFunction · 0.80
openMethod · 0.80
openMethod · 0.80

Calls 2

get_random_bytesFunction · 0.85
readMethod · 0.45

Tested by 1

test_stream_decrypterMethod · 0.64