Changeset 2272 for box/trunk/lib/backupclient/BackupClientCryptoKeys.cpp
- Timestamp:
- 06/09/2008 11:50:33 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
box/trunk/lib/backupclient/BackupClientCryptoKeys.cpp
r2249 r2272 36 36 // Open the file 37 37 FileStream file(rKeyMaterialFilename); 38 38 39 // Read in data 39 40 if(!file.ReadFullBuffer(KeyMaterial, BACKUPCRYPTOKEYS_FILE_SIZE, 0)) … … 42 43 } 43 44 44 // Tell the filename how to encrypt 45 BackupStoreFilenameClear::SetBlowfishKey(KeyMaterial + BACKUPCRYPTOKEYS_FILENAME_KEY_START, BACKUPCRYPTOKEYS_FILENAME_KEY_LENGTH, 46 KeyMaterial + BACKUPCRYPTOKEYS_FILENAME_IV_START, BACKUPCRYPTOKEYS_FILENAME_IV_LENGTH); 47 BackupStoreFilenameClear::SetEncodingMethod(BackupStoreFilename::Encoding_Blowfish); 45 // Setup keys and encoding method for filename encryption 46 BackupStoreFilenameClear::SetBlowfishKey( 47 KeyMaterial + BACKUPCRYPTOKEYS_FILENAME_KEY_START, 48 BACKUPCRYPTOKEYS_FILENAME_KEY_LENGTH, 49 KeyMaterial + BACKUPCRYPTOKEYS_FILENAME_IV_START, 50 BACKUPCRYPTOKEYS_FILENAME_IV_LENGTH); 51 BackupStoreFilenameClear::SetEncodingMethod( 52 BackupStoreFilename::Encoding_Blowfish); 48 53 49 // Tell the attributes how to encrypt50 BackupClientFileAttributes::SetBlowfishKey( KeyMaterial + BACKUPCRYPTOKEYS_ATTRIBUTES_KEY_START, BACKUPCRYPTOKEYS_ATTRIBUTES_KEY_LENGTH);51 // and the secret for hashing52 BackupClientFileAttributes::SetAttributeHashSecret(KeyMaterial + BACKUPCRYPTOKEYS_ATTRIBUTE_HASH_SECRET_START, BACKUPCRYPTOKEYS_ATTRIBUTE_HASH_SECRET_LENGTH);54 // Setup key for attributes encryption 55 BackupClientFileAttributes::SetBlowfishKey( 56 KeyMaterial + BACKUPCRYPTOKEYS_ATTRIBUTES_KEY_START, 57 BACKUPCRYPTOKEYS_ATTRIBUTES_KEY_LENGTH); 53 58 54 // Tell the files how to encrypt 55 BackupStoreFile::SetBlowfishKeys(KeyMaterial + BACKUPCRYPTOKEYS_ATTRIBUTES_KEY_START, BACKUPCRYPTOKEYS_ATTRIBUTES_KEY_LENGTH, 56 KeyMaterial + BACKUPCRYPTOKEYS_FILE_BLOCK_ENTRY_KEY_START, BACKUPCRYPTOKEYS_FILE_BLOCK_ENTRY_KEY_LENGTH); 59 // Setup secret for attribute hashing 60 BackupClientFileAttributes::SetAttributeHashSecret( 61 KeyMaterial + BACKUPCRYPTOKEYS_ATTRIBUTE_HASH_SECRET_START, 62 BACKUPCRYPTOKEYS_ATTRIBUTE_HASH_SECRET_LENGTH); 63 64 // Setup keys for file data encryption 65 BackupStoreFile::SetBlowfishKeys( 66 KeyMaterial + BACKUPCRYPTOKEYS_ATTRIBUTES_KEY_START, 67 BACKUPCRYPTOKEYS_ATTRIBUTES_KEY_LENGTH, 68 KeyMaterial + BACKUPCRYPTOKEYS_FILE_BLOCK_ENTRY_KEY_START, 69 BACKUPCRYPTOKEYS_FILE_BLOCK_ENTRY_KEY_LENGTH); 70 57 71 #ifndef HAVE_OLD_SSL 58 72 // Use AES where available 59 BackupStoreFile::SetAESKey(KeyMaterial + BACKUPCRYPTOKEYS_FILE_AES_KEY_START, BACKUPCRYPTOKEYS_FILE_AES_KEY_LENGTH); 73 BackupStoreFile::SetAESKey( 74 KeyMaterial + BACKUPCRYPTOKEYS_FILE_AES_KEY_START, 75 BACKUPCRYPTOKEYS_FILE_AES_KEY_LENGTH); 60 76 #endif 61 77 62 78 // Wipe the key material from memory 63 ::memset(KeyMaterial, 0, BACKUPCRYPTOKEYS_FILE_SIZE); 79 #ifdef _MSC_VER // not defined on MinGW 80 SecureZeroMemory(KeyMaterial, BACKUPCRYPTOKEYS_FILE_SIZE); 81 #else 82 ::memset(KeyMaterial, 0, BACKUPCRYPTOKEYS_FILE_SIZE); 83 #endif 64 84 } 65 85 66 67
Note: See TracChangeset
for help on using the changeset viewer.
