view src/keystore.h @ 698:bdd56c5adb38 draft

Bugfixes walletclass Some problems found by ius: * compiler complains with no return after critical section block * CKeyStore::GetPrivKey(key) was undefined for unknown key * missing return statement in GetChange()
author Pieter Wuille <pieter.wuille@gmail.com>
date Sun, 19 Jun 2011 18:32:36 +0200
parents 389b559a397f
children ee9183806240 99424aec7b2e
line wrap: on
line source

// Copyright (c) 2009-2011 Satoshi Nakamoto & Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_KEYSTORE_H
#define BITCOIN_KEYSTORE_H

class CKeyStore
{
public:
    std::map<std::vector<unsigned char>, CPrivKey> mapKeys;
    mutable CCriticalSection cs_mapKeys;
    virtual bool AddKey(const CKey& key);
    bool HaveKey(const std::vector<unsigned char> &vchPubKey) const
    {
        return (mapKeys.count(vchPubKey) > 0);
    }
    bool GetPrivKey(const std::vector<unsigned char> &vchPubKey, CPrivKey& keyOut) const
    {
        std::map<std::vector<unsigned char>, CPrivKey>::const_iterator mi = mapKeys.find(vchPubKey);
        if (mi != mapKeys.end())
        {
            keyOut = (*mi).second;
            return true;
        }
        return false;
    }
    std::vector<unsigned char> GenerateNewKey();
};

#endif