#include "uint256.h"
#include "hash.h"
#include "bignum.h"
+#include "ies.h"
#include <openssl/ec.h> // for EC_KEY definition
}
// Encrypt data
- bool EncryptData(const std::vector<unsigned char>& data, std::vector<unsigned char>& encrypted);
+ void EncryptData(const std::vector<unsigned char>& data, std::vector<unsigned char>& encrypted);
};
// 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);
+
// Decrypt data
- bool DecryptData(const std::vector<unsigned char>& encrypted, std::vector<unsigned char>& data);
+ void DecryptData(const std::vector<unsigned char>& encrypted, std::vector<unsigned char>& data);
};
class CPoint
void GetSecrets(CSecret &pvchSecretL, CSecret &pvchSecretH) const;
CMalleablePubKey GetMalleablePubKey() const;
-
bool CheckKeyVariant(const CPubKey &R, const CPubKey &vchPubKeyVariant);
bool CheckKeyVariant(const CPubKey &R, const CPubKey &vchPubKeyVariant, CKey &privKeyVariant);
};
class CMalleableKeyView
{
private:
+ unsigned char nVersion;
CSecret vchSecretL;
std::vector<unsigned char> vchPubKeyH;
- // disabled constructor
- CMalleableKeyView() { };
-
static const unsigned char CURRENT_VERSION = 1;
public:
+ CMalleableKeyView() { nVersion = 0; };
CMalleableKeyView(const CMalleableKey &b);
CMalleableKeyView(const CSecret &L, const CPubKey &pvchPubKeyH);
CMalleableKeyView& operator=(const CMalleableKey &b);
~CMalleableKeyView();
- CMalleablePubKey GetMalleablePubKey() const;
+ IMPLEMENT_SERIALIZE(
+ READWRITE(this->nVersion);
+ nVersion = this->nVersion;
+ READWRITE(vchSecretL);
+ READWRITE(vchPubKeyH);
+ )
+
+ bool IsNull() const;
+ std::string ToString();
+ bool SetString(const std::string& strMalleablePubKey);
+
+ CMalleablePubKey GetMalleablePubKey() const;
bool CheckKeyVariant(const CPubKey &R, const CPubKey &vchPubKeyVariant);
};