Ignore:
Timestamp:
06/09/2008 11:50:33 (4 years ago)
Author:
chris
Message:

Reformat for readability.

Use SecureZeroMemory? rather than memset() to wipe key material on Windows.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • box/trunk/lib/backupclient/BackupClientCryptoKeys.cpp

    r2249 r2272  
    3636        // Open the file 
    3737        FileStream file(rKeyMaterialFilename); 
     38 
    3839        // Read in data 
    3940        if(!file.ReadFullBuffer(KeyMaterial, BACKUPCRYPTOKEYS_FILE_SIZE, 0)) 
     
    4243        } 
    4344         
    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); 
    4853 
    49         // Tell the attributes how to encrypt 
    50         BackupClientFileAttributes::SetBlowfishKey(KeyMaterial + BACKUPCRYPTOKEYS_ATTRIBUTES_KEY_START, BACKUPCRYPTOKEYS_ATTRIBUTES_KEY_LENGTH); 
    51         // and the secret for hashing 
    52         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); 
    5358 
    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 
    5771#ifndef HAVE_OLD_SSL 
    5872        // 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); 
    6076#endif 
    6177 
    6278        // 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 
    6484} 
    6585 
    66  
    67  
Note: See TracChangeset for help on using the changeset viewer.