Ejemplo n.º 1
0
 def __testDecrypt(self, subdir, reader=None):
     path = os.path.join(TEST_DATA, subdir)
     if reader:
         crypter = keyczar.Crypter(reader)
     else:
         crypter = keyczar.Crypter.Read(path)
     active_ciphertext = util.ReadFile(os.path.join(path, "1.out"))
     primary_ciphertext = util.ReadFile(os.path.join(path, "2.out"))
     active_decrypted = crypter.Decrypt(active_ciphertext)
     self.assertEqual(self.input_data, active_decrypted)
     primary_decrypted = crypter.Decrypt(primary_ciphertext)
     self.assertEqual(self.input_data, primary_decrypted)
Ejemplo n.º 2
0
def UseKey(purpose, loc, dest, crypter=None, msg="This is some test data"):
  reader = readers.CreateReader(loc)
  try:
    answer = ""
    if crypter:
      reader = readers.EncryptedReader(reader, crypter)
    if purpose == keyinfo.DECRYPT_AND_ENCRYPT:
      answer = keyczar.Crypter(reader).Encrypt(msg)
    elif purpose == keyinfo.SIGN_AND_VERIFY:
      answer = keyczar.Signer(reader).Sign(msg)
    util.WriteFile(answer, dest)
  finally:
    reader.Close()
Ejemplo n.º 3
0
 def crypter(self):
     """The actual keyczar crypter"""
     if not hasattr(self, '_crypter'):
         # initialise the Keyczar keysets
         if not self.keyset_location:
             raise ValueError('No encrypted keyset location!')
         reader = keyczar.readers.CreateReader(self.keyset_location)
         if self.encrypting_keyset_location:
             encrypting_keyczar = keyczar.Crypter.Read(
                 self.encrypting_keyset_location)
             reader = keyczar.readers.EncryptedReader(reader,
                                                      encrypting_keyczar)
         self._crypter = keyczar.Crypter(reader)
     return self._crypter
Ejemplo n.º 4
0
def Encrypt(data, key_type=None):
    """Encrypts data and returns.

  Args:
    data: blob, data to encrypt.
    key_type: str, predefined type of encryption to use.
  Returns:
    encrypted blob data.
  """
    if key_type is None:
        key_type = settings.KEY_TYPE_DEFAULT_FILEVAULT
    if not data:
        return data

    reader = CauliflowerVestReader()
    reader.LoadKeys(key_type)
    crypter = keyczar.Crypter(reader=reader)
    return crypter.Encrypt(data)
Ejemplo n.º 5
0
def Encrypt(data, key_name=None, key_type=None):  # pylint: disable=unused-argument
    """Encrypts data and returns.

  Args:
    data: blob, data to encrypt.
    key_name: str, key_name for encryption to use.
    key_type: str, predefined type of encryption to use.
  Returns:
    encrypted blob data.
  """
    if not key_type:
        key_type = settings.KEY_TYPE_DEFAULT_FILEVAULT
    if not data:
        return data

    reader = CauliflowerVestReader()
    reader.LoadKeys(key_type)
    crypter = keyczar.Crypter(reader=reader)
    return crypter.Encrypt(data)
Ejemplo n.º 6
0
  def __testDecryptStream(self, subdir, reader, input_data, stream_buffer_size,
                          len_to_read, stream_source):
    """NOTE: input_data ignored here as we don't have a valid ".out" for
    random data"""
    path = os.path.join(TEST_DATA, subdir)
    if reader:
      crypter = keyczar.Crypter(reader)
    else:
      crypter = keyczar.Crypter.Read(path)
    active_ciphertext = util.ReadFile(os.path.join(path, "1.out"))
    if stream_source is None:
      decoder = None
      active_ciphertext = util.Base64WSDecode(active_ciphertext)
    else:
      decoder = util.IncrementalBase64WSStreamReader
    decryption_stream = crypter.CreateDecryptingStreamReader(
      StringIO.StringIO(active_ciphertext),
      decoder=decoder,
      buffer_size=stream_buffer_size)
    plaintext = self.__readFromStream(decryption_stream, len_to_read)
    self.assertEquals(self.input_data, plaintext,
                      'Active not equals for buffer:%d, read len:%d, src:%s' %(
                        stream_buffer_size,
                        len_to_read,
                        stream_source
                      ))

    primary_ciphertext = util.ReadFile(os.path.join(path, "2.out"))
    if stream_source is None:
      primary_ciphertext = util.Base64WSDecode(primary_ciphertext)
    decryption_stream = crypter.CreateDecryptingStreamReader(
      StringIO.StringIO(primary_ciphertext),
      decoder=decoder,
      buffer_size=stream_buffer_size)
    plaintext = self.__readFromStream(decryption_stream, len_to_read)
    self.assertEquals(self.input_data, plaintext,
                      'Primary not equals for buffer:%d, read len:%d, src:%s' %(
                        stream_buffer_size,
                        len_to_read,
                        stream_source
                      ))
Ejemplo n.º 7
0
 def GetCrypter(self, secret):
   """Assumes the secret is a Keyczar crypt keyset. Loads the secret
   value and returns a Keyczar Crypter object already initialized with
   the keyset value.
   """
   return keyczar.Crypter(keyczar_dict.DictReader(self.GetSecret(secret)))
Ejemplo n.º 8
0
 def __init__(self, keyname, *args, **kwargs):
     self.keydata = readers.FileReader(keyname)
     self.crypter = keyczar.Crypter(self.keydata)
Ejemplo n.º 9
0
 def __init__(self, key_string):
     key = keys.AesKey.Read(key_string)
     reader = readers.StaticKeyReader(key, keyinfo.DECRYPT_AND_ENCRYPT)
     self.crypter = keyczar.Crypter(reader)
     """