SOL9 2.0 Class: PasswordDerivedKey

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

Source code

/*
 * PasswordDerivedKey.h 
 * Copyright (c) 2011 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. 
 */


// SOL9 2009/02/22

#pragma once

#include <sol/crypt/CryptServiceProvider.h>
#include <sol/crypt/MessageDigest.h>
#include <sol/crypt/SymmetricKey.h>

 

namespace SOL {

class PasswordDerivedKey :public SymmetricKey {

private:
    MessageDigest@md;

public:
    /**
     * Constructor
     * @param csp    CryptServiceProvider
     * @param algId    Encryption key algorithm Id(CALG_RC2, CALG_RC4, CALG_DES...,CALG_AES_128) 
     * @param password NULL-terminated string.
     * @param hashAlgId   Hash algorithm for the password.
     */
    PasswordDerivedKey(CryptServiceProvicer& csp, ALG_ID algId, 
            const char* password, ALG_ID hashAlgId=CALG_SHA1)
    :SymmetricKey()
    {
        // 1 Generate a MessageDigest specified by hashAlgId
        md.generate(csp, hashAlgId, 0);

        // 2 
        md.hashString(password);

        generate(csp, md, algid, 0);
    }

public:
    /**
     * Destructor
     */
    ~PasswordDerivedKey()
    {

    }
};

}


Last modified: 1 Feb 2012

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