picrypt.cpp no-sodium fix

picodeparser now recognize assignment in declaration
This commit is contained in:
2021-04-12 23:17:13 +03:00
parent 77477a1853
commit 7a2a9ee7d0
2 changed files with 23 additions and 6 deletions

View File

@@ -152,7 +152,7 @@ PIByteArray PICrypt::hash(const PIString & secret) {
#else #else
PICRYPT_DISABLED_WARNING PICRYPT_DISABLED_WARNING
#endif #endif
return hash; return hash;
} }
@@ -165,12 +165,17 @@ PIByteArray PICrypt::hash(const PIByteArray & data) {
#else #else
PICRYPT_DISABLED_WARNING PICRYPT_DISABLED_WARNING
#endif #endif
return hash; return hash;
} }
size_t PICrypt::sizeHash() { size_t PICrypt::sizeHash() {
#ifdef PIP_CRYPT
return crypto_generichash_BYTES; return crypto_generichash_BYTES;
#else
PICRYPT_DISABLED_WARNING
#endif
return 0;
} }
@@ -246,7 +251,7 @@ void PICrypt::generateSignKeys(PIByteArray & public_key, PIByteArray & secret_ke
crypto_sign_keypair(public_key.data(), secret_key.data()); crypto_sign_keypair(public_key.data(), secret_key.data());
#else #else
PICRYPT_DISABLED_WARNING PICRYPT_DISABLED_WARNING
#endif #endif
} }
@@ -258,7 +263,7 @@ void PICrypt::generateSignKeys(PIByteArray & public_key, PIByteArray & secret_ke
crypto_sign_seed_keypair(public_key.data(), secret_key.data(), hash(seed).data()); crypto_sign_seed_keypair(public_key.data(), secret_key.data(), hash(seed).data());
#else #else
PICRYPT_DISABLED_WARNING PICRYPT_DISABLED_WARNING
#endif #endif
} }
@@ -294,8 +299,8 @@ bool PICrypt::verifySign(const PIByteArray & data, const PIByteArray & signature
return (crypto_sign_verify_detached(signature.data(), data.data(), data.size(), public_key.data()) == 0); return (crypto_sign_verify_detached(signature.data(), data.data(), data.size(), public_key.data()) == 0);
#else #else
PICRYPT_DISABLED_WARNING PICRYPT_DISABLED_WARNING
return false;
#endif #endif
return false;
} }

View File

@@ -513,6 +513,14 @@ PICodeParser::Typedef PICodeParser::parseTypedef(PIString fc) {
} }
void removeAssignment(PIString & s) {
if (s.size() <= 2) return;
int ei = s.find('=');
if (ei < 0) return;
s.remove(ei, s.size_s() - ei);
s.trim();
}
bool PICodeParser::parseMember(Entity * parent, PIString & fc) { bool PICodeParser::parseMember(Entity * parent, PIString & fc) {
static const PIString s_operator = PIStringAscii("operator"); static const PIString s_operator = PIStringAscii("operator");
static const PIString s_ss = PIStringAscii(" "); static const PIString s_ss = PIStringAscii(" ");
@@ -611,12 +619,15 @@ bool PICodeParser::parseMember(Entity * parent, PIString & fc) {
parent->functions << me; parent->functions << me;
} else { } else {
if (fc.endsWith(';')) fc.cutRight(1); if (fc.endsWith(';')) fc.cutRight(1);
//piCout << "member" << fc;
if (fc.startsWith(s_using) || !(fc.contains(' ') || fc.contains('\t') || fc.contains('\n'))) return true; if (fc.startsWith(s_using) || !(fc.contains(' ') || fc.contains('\t') || fc.contains('\n'))) return true;
int bits = extractMemberBits(fc); int bits = extractMemberBits(fc);
tl = fc.split(','); tl = fc.split(',');
//piCout << "member" << fc << tl; //piCout << "member" << fc << tl;
//piCout << "member after eb" << fc << ", bits =" << bits; //piCout << "member after eb" << fc << ", bits =" << bits;
if (tl.isEmpty()) return true; if (tl.isEmpty()) return true;
piForeach (PIString & v, tl)
removeAssignment(v);
bool vn = true; bool vn = true;
ctemp = tl.front().trim(); ctemp = tl.front().trim();
PIString meta_t; PIString meta_t;
@@ -654,6 +665,7 @@ bool PICodeParser::parseMember(Entity * parent, PIString & fc) {
type.trim(); type.trim();
normalizeEntityNamespace(type); normalizeEntityNamespace(type);
tl[0] = ctemp.trim(); tl[0] = ctemp.trim();
//piCout << "vars" << tl;
piForeachC (PIString & v, tl) { piForeachC (PIString & v, tl) {
crepl.clear(); crepl.clear();
@@ -678,7 +690,7 @@ bool PICodeParser::parseMember(Entity * parent, PIString & fc) {
me.dims << cdim; me.dims << cdim;
} }
//PICout(PICoutManipulators::AddAll) << "var" << me.type << me.name << me.bits; //PICout(PICoutManipulators::AddAll) << "var" << me.type << me.name << me.bits;
//piCout << "var" << v; //piCout << "var" << v << me.type << me.name << me.bits;
parent->members << me; parent->members << me;
} }
} }