@@ -91,15 +91,14 @@ class DataEncryptor : public DataEncryptorBase<T>
9191{
9292public:
9393 std::string encrypt (const T& data, const std::string& key) {
94- auto buffer = utils::Utils::stringifyVar (data.toJSON ());
95- return utils::Base64::from (privmx::crypto::CryptoPrivmx::privmxEncrypt (privmx::crypto::CryptoPrivmx::privmxOptAesWithSignature (), buffer, key));
94+ return utils::Base64::from (privmx::crypto::CryptoPrivmx::privmxEncrypt (privmx::crypto::CryptoPrivmx::privmxOptAesWithSignature (), data.serialize (), key));
9695 }
9796 std::string encrypt (const T& data, const EncKey& encKey) {
9897 return encrypt (data, encKey.key );
9998 }
10099
101100 Pson::BinaryString sign (const T& data, const privmx::crypto::PrivateKey& privKey) {
102- auto buffer = utils::Utils::stringifyVar ( data.toJSON () );
101+ auto buffer = data.serialize ( );
103102 auto signature = privKey.signToCompactSignatureWithHash (buffer);
104103 Pson::BinaryString plain;
105104 plain.push_back (1 );
@@ -109,15 +108,12 @@ class DataEncryptor : public DataEncryptorBase<T>
109108 }
110109
111110 Pson::BinaryString getSign (const T& data, const privmx::crypto::PrivateKey& privKey) {
112- auto buffer = utils::Utils::stringifyVar (data.toJSON ());
113- return Pson::BinaryString (privKey.signToCompactSignatureWithHash (buffer));
111+ return Pson::BinaryString (privKey.signToCompactSignatureWithHash (data.serialize ()));
114112 }
115113
116114 T decrypt (const std::string& data, const std::string& key) {
117115 auto decrypted = privmx::crypto::CryptoPrivmx::privmxDecrypt (true , utils::Base64::toString (data), key);
118- Poco::JSON::Parser parser;
119- auto var = parser.parse (decrypted);
120- return T::fromJSON (var);
116+ return T::deserialize (decrypted);
121117 }
122118 T decrypt (const std::string& data, const EncKey& encKey) {
123119 return decrypt (data, encKey.key );
@@ -127,7 +123,7 @@ class DataEncryptor : public DataEncryptorBase<T>
127123 Pson::BinaryString plain = privmx::crypto::CryptoPrivmx::privmxDecrypt (true , utils::Base64::toString (data), key);
128124 Pson::BinaryString signature, data_buf;
129125 std::tie (signature, data_buf) = this ->extractSignAndDataBuff (plain);
130- return {signature, T::fromJSON ( privmx::utils::Utils::parseJsonObject ( data_buf) ), data_buf};
126+ return {signature, T::deserialize ( data_buf), data_buf};
131127 }
132128 std::tuple<Pson::BinaryString, T, Pson::BinaryString> decryptAndGetSign (const std::string& data, const EncKey& encKey) {
133129 return decryptAndGetSign (data, encKey.key );
0 commit comments