#include <openssl/ecdsa.h>
#include <openssl/obj_mac.h>
-#include "serialize.h"
+#include "allocators.h"
#include "uint256.h"
// secp160k1
// CSecret is a serialization of just the secret parameter (32 bytes)
typedef std::vector<unsigned char, secure_allocator<unsigned char> > CSecret;
+/** An encapsulated OpenSSL Elliptic Curve key (public and/or private) */
class CKey
{
protected:
return fCompressedPubKey;
}
- void MakeNewKey(bool fCompressed = true)
+ void MakeNewKey(bool fCompressed)
{
if (!EC_KEY_generate_key(pkey))
throw key_error("CKey::MakeNewKey() : EC_KEY_generate_key failed");
CPrivKey GetPrivKey() const
{
- unsigned int nSize = i2d_ECPrivateKey(pkey, NULL);
+ int nSize = i2d_ECPrivateKey(pkey, NULL);
if (!nSize)
throw key_error("CKey::GetPrivKey() : i2d_ECPrivateKey failed");
CPrivKey vchPrivKey(nSize, 0);
std::vector<unsigned char> GetPubKey() const
{
- unsigned int nSize = i2o_ECPublicKey(pkey, NULL);
+ int nSize = i2o_ECPublicKey(pkey, NULL);
if (!nSize)
throw key_error("CKey::GetPubKey() : i2o_ECPublicKey failed");
std::vector<unsigned char> vchPubKey(nSize, 0);