Exemplo n.º 1
0
 def cipher_key(self,
                sender: ID,
                receiver: ID,
                generate: bool = False) -> Optional[SymmetricKey]:
     if receiver.is_broadcast:
         return SymmetricKey.generate(algorithm=PlainKey.PLAIN)
     # get key from cache
     key = self.__cipher_key(sender, receiver)
     if key is None and generate:
         key = SymmetricKey.generate(algorithm=SymmetricKey.AES)
         self.__cache_cipher_key(key=key, sender=sender, receiver=receiver)
     return key
Exemplo n.º 2
0
 def cipher_key(self,
                sender: ID,
                receiver: ID,
                generate: bool = False) -> Optional[SymmetricKey]:
     if receiver.is_broadcast:
         return plain_key
     # get key from cache
     key = self.__cipher_key(sender, receiver)
     if key is None and generate:
         # generate and cache it
         key = SymmetricKey.generate(algorithm=SymmetricKey.AES)
         assert key is not None, 'failed to generate key'
         self.cache_cipher_key(key=key, sender=sender, receiver=receiver)
     return key