#include "allocators.h"
#include "serialize.h"
#include "uint256.h"
-#include "hash.h"
#include "bignum.h"
-#include "ies.h"
#include <openssl/ec.h> // for EC_KEY definition
+#include <openssl/obj_mac.h>
+
// secp160k1
// const unsigned int PRIVATE_KEY_SIZE = 192;
class CKeyID : public uint160
{
public:
- CKeyID() : uint160(0) { }
- CKeyID(const uint160 &in) : uint160(in) { }
+ CKeyID();
+ CKeyID(const uint160 &in);
};
/** A reference to a CScript: the Hash160 of its serialization (see script.h) */
class CScriptID : public uint160
{
public:
- CScriptID() : uint160(0) { }
- CScriptID(const uint160 &in) : uint160(in) { }
+ CScriptID();
+ CScriptID(const uint160 &in);
};
/** An encapsulated OpenSSL Elliptic Curve key (public) */
}
}
- CKeyID GetID() const
- {
- return CKeyID(Hash160(vbytes, vbytes + size()));
- }
-
- uint256 GetHash() const
- {
- return Hash(vbytes, vbytes + size());
- }
+ CKeyID GetID() const;
+ uint256 GetHash() const;
/*
* Check syntactic correctness.
// Reserialize to DER
static bool ReserealizeSignature(std::vector<unsigned char>& vchSig);
-
- // Encrypt data
- void EncryptData(const std::vector<unsigned char>& data, std::vector<unsigned char>& encrypted);
};
// secure_allocator is defined in allocators.h
protected:
EC_KEY* pkey;
bool fSet;
- bool fCompressedPubKey;
public:
void SetCompressedPubKey(bool fCompressed=true);
void MakeNewKey(bool fCompressed=true);
bool SetPrivKey(const CPrivKey& vchPrivKey);
- bool SetSecret(const CSecret& vchSecret, bool fCompressed = false);
+ bool SetSecret(const CSecret& vchSecret, bool fCompressed = true);
CSecret GetSecret(bool &fCompressed) const;
CSecret GetSecret() const;
CPrivKey GetPrivKey() const;
CPubKey GetPubKey() const;
- bool WritePEM(BIO *streamObj, const SecureString &strPassKey) const;
bool Sign(uint256 hash, std::vector<unsigned char>& vchSig);
// Check whether an element of a signature (r or s) is valid.
static bool CheckSignatureElement(const unsigned char *vch, int len, bool half);
-
- // Decrypt data
- void DecryptData(const std::vector<unsigned char>& encrypted, std::vector<unsigned char>& data);
};
class CPoint
CMalleableKey GetMalleableKey(const CSecret &vchSecretH) const { return CMalleableKey(vchSecretL, vchSecretH); }
bool CheckKeyVariant(const CPubKey &R, const CPubKey &vchPubKeyVariant) const;
- bool operator <(const CMalleableKeyView& kv) const { return vchPubKeyH.GetID() < kv.vchPubKeyH.GetID(); }
+ bool operator <(const CMalleableKeyView& kv) const;
};
#endif