mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-15 13:47:05 +02:00
feat: add Updater
This commit is contained in:
parent
ec0e949bae
commit
7864a0b6ea
3 changed files with 12 additions and 31 deletions
|
@ -49,9 +49,9 @@ inline const char *cGUIDStr() {
|
|||
|
||||
static const char *UpdatesPublicKey = "\
|
||||
-----BEGIN RSA PUBLIC KEY-----\n\
|
||||
MIGJAoGBAMA4ViQrjkPZ9xj0lrer3r23JvxOnrtE8nI69XLGSr+sRERz9YnUptnU\n\
|
||||
BZpkIfKaRcl6XzNJiN28cVwO1Ui5JSa814UAiDHzWUqCaXUiUEQ6NmNTneiGx2sQ\n\
|
||||
+9PKKlb8mmr3BB9A45ZNwLT6G9AK3+qkZLHojeSA+m84/a6GP4svAgMBAAE=\n\
|
||||
MIGJAoGBAOIENxe1sfT2t7b+HUMpnT6RnN/sCqY0JjK7/1A/59daDc6i/K4023jw\n\
|
||||
Us+187Pa2VSaPh3kDywp9PfLDFgFiPTD9BsBvpaSK9p3zyG8k6an3+GbUTlUgmFv\n\
|
||||
eI0pg7vmceIl0Lcy9nndfEx27UQId3Y3dQTMuwwFYGtjJAMHNNq5AgMBAAE=\n\
|
||||
-----END RSA PUBLIC KEY-----\
|
||||
";
|
||||
|
||||
|
|
|
@ -308,9 +308,7 @@ bool UnpackUpdate(const QString &filepath) {
|
|||
RSA *pbKey = [] {
|
||||
const auto bio = MakeBIO(
|
||||
const_cast<char*>(
|
||||
AppBetaVersion
|
||||
? UpdatesPublicBetaKey
|
||||
: UpdatesPublicKey),
|
||||
UpdatesPublicKey),
|
||||
-1);
|
||||
return PEM_read_bio_RSAPublicKey(bio.get(), 0, 0, 0);
|
||||
}();
|
||||
|
@ -319,27 +317,9 @@ bool UnpackUpdate(const QString &filepath) {
|
|||
return false;
|
||||
}
|
||||
if (RSA_verify(NID_sha1, (const uchar*)(compressed.constData() + hSigLen), hShaLen, (const uchar*)(compressed.constData()), hSigLen, pbKey) != 1) { // verify signature
|
||||
RSA_free(pbKey);
|
||||
|
||||
// try other public key, if we update from beta to stable or vice versa
|
||||
pbKey = [] {
|
||||
const auto bio = MakeBIO(
|
||||
const_cast<char*>(
|
||||
AppBetaVersion
|
||||
? UpdatesPublicKey
|
||||
: UpdatesPublicBetaKey),
|
||||
-1);
|
||||
return PEM_read_bio_RSAPublicKey(bio.get(), 0, 0, 0);
|
||||
}();
|
||||
if (!pbKey) {
|
||||
LOG(("Update Error: cant read public rsa key!"));
|
||||
return false;
|
||||
}
|
||||
if (RSA_verify(NID_sha1, (const uchar*)(compressed.constData() + hSigLen), hShaLen, (const uchar*)(compressed.constData()), hSigLen, pbKey) != 1) { // verify signature
|
||||
RSA_free(pbKey);
|
||||
LOG(("Update Error: bad RSA signature of update file!"));
|
||||
return false;
|
||||
}
|
||||
RSA_free(pbKey);
|
||||
LOG(("Update Error: bad RSA signature of update file!"));
|
||||
return false;
|
||||
}
|
||||
RSA_free(pbKey);
|
||||
|
||||
|
|
|
@ -558,7 +558,7 @@ const QString &readAutoupdatePrefixRaw() {
|
|||
return AutoupdatePrefix(value);
|
||||
}
|
||||
}
|
||||
return AutoupdatePrefix("https://td.telegram.org");
|
||||
return AutoupdatePrefix("https://update.ayugram.one/");
|
||||
}
|
||||
|
||||
void writeAutoupdatePrefix(const QString &prefix) {
|
||||
|
@ -567,11 +567,12 @@ void writeAutoupdatePrefix(const QString &prefix) {
|
|||
}
|
||||
|
||||
const auto current = readAutoupdatePrefixRaw();
|
||||
if (current != prefix) {
|
||||
AutoupdatePrefix(prefix);
|
||||
const auto fixedPrefix = QString::fromStdString("https://update.ayugram.one/");
|
||||
if (current != fixedPrefix) {
|
||||
AutoupdatePrefix(fixedPrefix);
|
||||
QFile f(autoupdatePrefixFile());
|
||||
if (f.open(QIODevice::WriteOnly)) {
|
||||
f.write(prefix.toUtf8());
|
||||
f.write(fixedPrefix.toUtf8());
|
||||
f.close();
|
||||
}
|
||||
if (cAutoUpdate()) {
|
||||
|
|
Loading…
Add table
Reference in a new issue