SOL9 2.0 Class: DataProtector

 SOL9 C++ Class Library  SOL9 Samples  SOL9 Tutorial  SOL9 FAQ  SOL9 ClassTree 

Source code

/*
 * DataProtector.h 
 * Copyright (c) 2009 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. 
 */


// SOL9
// 2009/04/16

#pragma once

#include <sol/crypt/DataProtection.h>

namespace SOL {

class DataProtector :public DataProtection {

public:
    /**
     * Constructor
     */
    DataProtector(HWND hParent=NULL, const wchar_t* prompt=NULL)
    :DataProtection(hParent, prompt) 
    {

    }

public:
    /**
     * Encrypt an inputData and return it for a protectedData.
     * If ui parameter is true, a prompt dialog will be displayed.  
     *
     * @param dwFlags Takes one of the following values. 
        CRYPTPROTECT_LOCAL_MACHINE
        CRYPTPROTECT_UI_FORBIDDEN  
        CRYPTPROTECT_AUDIT 
 
     */
    int protect(
        __in DATA_BLOB& inputData, 
        __out DATA_BLOB& protectedData, 
        __in_opt const wchar_t* description = NULL, 

        __in_opt bool ui = false,

        __in_opt DATA_BLOB* entropy = NULL,
        __in_opt DWORD dwFlags = 0)
    {
        int rc = NO_ERROR;

        CRYPTPROTECT_PROMPTSTRUCT* pPrompter = NULL;
        if (ui) {
            pPrompter = getPrompter();
        }

        if(!CryptProtectData(
            &inputData,
            description,
            entropy,                  
            NULL,      // Reserved.
            pPrompter,
            dwFlags,
            &protectedData)) {
    
            rc = GetLastError();
        }
        return rc;
    } 
};

}

Last modified: 19 Dec 2009

Copyright (c) 2009 Antillia.com ALL RIGHTS RESERVED.