Merge branch 'flatpak' into 'master'

add flatpak support

See merge request !83
This commit is contained in:
Philipp Hörist 2017-10-07 18:02:26 +02:00
commit ee684780f9
3 changed files with 412 additions and 0 deletions

View File

@ -0,0 +1,88 @@
From 8dbe0dc3eea5c689d4f76b37b93fe216cf1f00d4 Mon Sep 17 00:00:00 2001
From: Legrandin <helderijs@gmail.com>
Date: Sun, 22 Dec 2013 22:24:46 +0100
Subject: [PATCH] Throw exception when IV is used with ECB or CTR
The IV parameter is currently ignored when initializing
a cipher in ECB or CTR mode.
For CTR mode, it is confusing: it takes some time to see
that a different parameter is needed (the counter).
For ECB mode, it is outright dangerous.
This patch forces an exception to be raised.
---
lib/Crypto/SelfTest/Cipher/common.py | 31 +++++++++++++++++++++++--------
src/block_template.c | 11 +++++++++++
2 files changed, 34 insertions(+), 8 deletions(-)
diff --git a/lib/Crypto/SelfTest/Cipher/common.py b/lib/Crypto/SelfTest/Cipher/common.py
index 420b6ff..a5f8a88 100644
--- a/lib/Crypto/SelfTest/Cipher/common.py
+++ b/lib/Crypto/SelfTest/Cipher/common.py
@@ -239,19 +239,34 @@ def shortDescription(self):
return """%s .decrypt() output of .encrypt() should not be garbled""" % (self.module_name,)
def runTest(self):
- for mode in (self.module.MODE_ECB, self.module.MODE_CBC, self.module.MODE_CFB, self.module.MODE_OFB, self.module.MODE_OPENPGP):
+
+ ## ECB mode
+ mode = self.module.MODE_ECB
+ encryption_cipher = self.module.new(a2b_hex(self.key), mode)
+ ciphertext = encryption_cipher.encrypt(self.plaintext)
+ decryption_cipher = self.module.new(a2b_hex(self.key), mode)
+ decrypted_plaintext = decryption_cipher.decrypt(ciphertext)
+ self.assertEqual(self.plaintext, decrypted_plaintext)
+
+ ## OPENPGP mode
+ mode = self.module.MODE_OPENPGP
+ encryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv)
+ eiv_ciphertext = encryption_cipher.encrypt(self.plaintext)
+ eiv = eiv_ciphertext[:self.module.block_size+2]
+ ciphertext = eiv_ciphertext[self.module.block_size+2:]
+ decryption_cipher = self.module.new(a2b_hex(self.key), mode, eiv)
+ decrypted_plaintext = decryption_cipher.decrypt(ciphertext)
+ self.assertEqual(self.plaintext, decrypted_plaintext)
+
+ ## All other non-AEAD modes (but CTR)
+ for mode in (self.module.MODE_CBC, self.module.MODE_CFB, self.module.MODE_OFB):
encryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv)
ciphertext = encryption_cipher.encrypt(self.plaintext)
-
- if mode != self.module.MODE_OPENPGP:
- decryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv)
- else:
- eiv = ciphertext[:self.module.block_size+2]
- ciphertext = ciphertext[self.module.block_size+2:]
- decryption_cipher = self.module.new(a2b_hex(self.key), mode, eiv)
+ decryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv)
decrypted_plaintext = decryption_cipher.decrypt(ciphertext)
self.assertEqual(self.plaintext, decrypted_plaintext)
+
class PGPTest(unittest.TestCase):
def __init__(self, module, params):
unittest.TestCase.__init__(self)
diff --git a/src/block_template.c b/src/block_template.c
index f940e0e..d555ceb 100644
--- a/src/block_template.c
+++ b/src/block_template.c
@@ -170,6 +170,17 @@ ALGnew(PyObject *self, PyObject *args, PyObject *kwdict)
"Key cannot be the null string");
return NULL;
}
+ if (IVlen != 0 && mode == MODE_ECB)
+ {
+ PyErr_Format(PyExc_ValueError, "ECB mode does not use IV");
+ return NULL;
+ }
+ if (IVlen != 0 && mode == MODE_CTR)
+ {
+ PyErr_Format(PyExc_ValueError,
+ "CTR mode needs counter parameter, not IV");
+ return NULL;
+ }
if (IVlen != BLOCK_SIZE && mode != MODE_ECB && mode != MODE_CTR)
{
PyErr_Format(PyExc_ValueError,

22
flatpak/README.md Normal file
View File

@ -0,0 +1,22 @@
Run the following steps from a directory containing the gajim source dir.
Install gajim flatpak repo
--------------------------
1. `flatpak --user remote-add --from gnome https://sdk.gnome.org/gnome.flatpakrepo`
1. `flatpak --user install gnome org.gnome.Platform//3.24`
1. `flatpak --user install gnome org.gnome.Sdk//3.24`
1. `flatpak-builder --repo=repo directory gajim/org.gajim.Gajim.json`
1. `flatpak --user remote-add --no-gpg-verify repo repo`
1. `flatpak --user install repo org.gajim.Gajim`
1. `flatpak run org.gajim.Gajim`
Update gajim flatpak repo
-------------------------
1. update your gajim source repository
1. `rm -r directory`
1. `flatpak-builder --repo=repo directory gajim/org.gajim.Gajim.json`
1. `flatpak --user update`
Note: remove `--user` if you want a system-wide installation

302
org.gajim.Gajim.json Normal file
View File

@ -0,0 +1,302 @@
{
"app-id": "org.gajim.Gajim",
"runtime": "org.gnome.Platform",
"runtime-version": "3.24",
"sdk": "org.gnome.Sdk",
"command": "gajim",
"tags": ["nightly"],
"desktop-file-name-prefix": "(Nightly) ",
"finish-args": [
/* X11 + XShm access */
"--share=ipc",
"--socket=x11",
/* Wayland access */
"--socket=wayland",
/* Needs to talk to the network: */
"--share=network",
"--filesystem=home",
"--socket=system-bus"
],
"build-options" : {
"cflags": "-O2 -g",
"cxxflags": "-O2 -g",
"env": {
"PYTHON": "python3"
}
},
"cleanup": [
"/include",
"/lib/debug",
"/lib/pkgconfig",
"/share/aclocal",
"/share/doc",
"/share/man",
"*.a",
"*.la"
],
"modules": [
{
"name": "python3-pycparser",
"buildsystem": "simple",
"build-commands": [
"python3 setup.py install --prefix=/app"
],
"sources": [
{
"type": "archive",
"url": "https://pypi.python.org/packages/8c/2d/aad7f16146f4197a11f8e91fb81df177adcc2073d36a17b1491fd09df6ed/pycparser-2.18.tar.gz",
"sha256": "99a8ca03e29851d96616ad0404b4aad7d9ee16f25c9f9708a11faf2810f7b226"
}
]
},
{
"name": "python3-cffi",
"buildsystem": "simple",
"build-commands": [
"python3 setup.py install --prefix=/app"
],
"sources": [
{
"type": "archive",
"url": "https://pypi.python.org/packages/4e/32/4070bdf32812c89eb635c80880a5caa2e0189aa7999994c265577e5154f3/cffi-1.11.0.tar.gz",
"sha256": "5f4ff33371c6969b39b293d9771ee91e81d26f9129be093ca1b7be357fcefd15"
}
]
},
{
"name": "python3-six",
"buildsystem": "simple",
"build-commands": [
"pip3 install --prefix=/app six-1.11.0-py2.py3-none-any.whl"
],
"sources": [
{
"type": "file",
"url": "https://pypi.python.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl",
"sha256": "832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"
}
]
},
{
"name": "python3-pyparsing",
"buildsystem": "simple",
"build-commands": [
"pip3 install --prefix=/app pyparsing-2.2.0-py2.py3-none-any.whl"
],
"sources": [
{
"type": "file",
"url": "https://pypi.python.org/packages/6a/8a/718fd7d3458f9fab8e67186b00abdd345b639976bc7fb3ae722e1b026a50/pyparsing-2.2.0-py2.py3-none-any.whl",
"sha256": "fee43f17a9c4087e7ed1605bd6df994c6173c1e977d7ade7b651292fab2bd010"
}
]
},
{
"name": "python3-packaging",
"buildsystem": "simple",
"build-commands": [
"pip3 install --prefix=/app packaging-16.8-py2.py3-none-any.whl"
],
"sources": [
{
"type": "file",
"url": "https://pypi.python.org/packages/87/1b/c39b7c65b5612812b83d6cab7ef2885eac9f6beb0b7b8a7071a186aea3b1/packaging-16.8-py2.py3-none-any.whl",
"sha256": "99276dc6e3a7851f32027a68f1095cd3f77c148091b092ea867a351811cfe388"
}
]
},
{
"name": "python3-appdirs",
"buildsystem": "simple",
"build-commands": [
"pip3 install --prefix=/app appdirs-1.4.3-py2.py3-none-any.whl"
],
"sources": [
{
"type": "file",
"url": "https://pypi.python.org/packages/56/eb/810e700ed1349edde4cbdc1b2a21e28cdf115f9faf263f6bbf8447c1abf3/appdirs-1.4.3-py2.py3-none-any.whl",
"sha256": "d8b24664561d0d34ddfaec54636d502d7cea6e29c3eaf68f3df6180863e2166e"
}
]
},
{
"name": "python3-setuptools",
"ensure-writable": [
"easy-install.pth",
"setuptools.pth"
],
"buildsystem": "simple",
"build-commands": [
"python3 setup.py install --prefix=/app"
],
"sources": [
{
"type": "archive",
"url": "https://pypi.python.org/packages/a4/c8/9a7a47f683d54d83f648d37c3e180317f80dc126a304c45dc6663246233a/setuptools-36.5.0.zip",
"sha256": "ce2007c1cea3359870b80657d634253a0765b0c7dc5a988d77ba803fc86f2c64"
}
]
},
{
"name": "python3-asn1crypto",
"buildsystem": "simple",
"build-commands": [
"pip3 install --prefix=/app asn1crypto-0.23.0-py2.py3-none-any.whl"
],
"sources": [
{
"type": "file",
"url": "https://pypi.python.org/packages/5e/85/d9b46c307ff2b5504432425cd99e2d9f13ab7a9835ba45c93da299cb1ec8/asn1crypto-0.23.0-py2.py3-none-any.whl",
"sha256": "654b7db3b120e23474e9a1e5e38d268c77e58a9e17d2cb595456c37309846494"
}
]
},
{
"name": "python3-idna",
"buildsystem": "simple",
"build-commands": [
"pip3 install --prefix=/app idna-2.6-py2.py3-none-any.whl"
],
"sources": [
{
"type": "file",
"url": "https://pypi.python.org/packages/27/cc/6dd9a3869f15c2edfab863b992838277279ce92663d334df9ecf5106f5c6/idna-2.6-py2.py3-none-any.whl",
"sha256": "8c7309c718f94b3a625cb648ace320157ad16ff131ae0af362c9f21b80ef6ec4"
}
]
},
{
"name": "python3-cryptography",
"ensure-writable": [
"easy-install.pth"
],
"buildsystem": "simple",
"build-commands": [
"python3 setup.py install --prefix=/app"
],
"sources": [
{
"type": "archive",
"url": "https://pypi.python.org/packages/9c/1a/0fc8cffb04582f9ffca61b15b0681cf2e8588438e55f61403eb9880bd8e0/cryptography-2.0.3.tar.gz",
"sha256": "d04bb2425086c3fe86f7bc48915290b13e798497839fbb18ab7f6dffcf98cc3a"
}
]
},
{
"name": "python3-pyopenssl",
"buildsystem": "simple",
"build-commands": [
"pip3 install --prefix=/app pyOpenSSL-17.3.0-py2.py3-none-any.whl"
],
"sources": [
{
"type": "file",
"url": "https://pypi.python.org/packages/24/37/89bf12e53f1d27e8b2c8e5f8f9c7a958a3905f6916a9294a57a9d83fa165/pyOpenSSL-17.3.0-py2.py3-none-any.whl",
"sha256": "aade9985b93eaec51b0c0a2a60d14bb8dcff1ff8e36fe542e3c22812ec07315e"
}
]
},
{
"name": "python3-pyasn1",
"buildsystem": "simple",
"build-commands": [
"pip3 install --prefix=/app pyasn1-0.3.6-py2.py3-none-any.whl"
],
"sources": [
{
"type": "file",
"url": "https://pypi.python.org/packages/bf/56/47712763865a8639e6634e80405f6c758d4415620725896f412c464705f0/pyasn1-0.3.6-py2.py3-none-any.whl",
"sha256": "06afc633971ab80943f06b96d3d6314f461001c92418fc0cd682a8357a1db47f"
}
]
},
{
"name": "python3-dbus-python",
"sources": [
{
"type": "archive",
"url": "https://pypi.python.org/packages/ad/1b/76adc363212c642cabbf9329457a918308c0b9b5d38ce04d541a67255174/dbus-python-1.2.4.tar.gz",
"sha256": "e2f1d6871f74fba23652e51d10873e54f71adab0525833c19bad9e99b1b2f9cc"
}
]
},
/* ESession support */
{
"name": "python3-pycrypto",
"buildsystem": "simple",
"build-commands": [
"python3 setup.py install --prefix=/app"
],
"sources": [
{
"type": "archive",
"url": "https://pypi.python.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz",
"sha256": "f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c"
},
{
"type": "patch",
"path": "flatpak/CVE-2013-7459.patch"
}
]
},
/* gnupg support */
{
"name": "python3-python-gnupg",
"buildsystem": "simple",
"build-commands": [
"pip3 install --prefix=/app python_gnupg-0.4.1-py2.py3-none-any.whl"
],
"sources": [
{
"type": "file",
"url": "https://pypi.python.org/packages/7a/f2/f655f52ff21457138d4a002aa0f67f1923cf682560b354cacecde1b2c767/python_gnupg-0.4.1-py2.py3-none-any.whl",
"sha256": "1e4aa381bad3edbbdfcfb0ed0de73b26d6115f5090cdae9b5b6f6ff177a66aa7"
}
]
},
/* Zeroconf support */
{
"name": "avahi",
"cleanup": [ "/bin", "/lib/avahi", "/share" ],
"config-opts": [
"--with-distro=none", "--disable-qt3", "--disable-qt4",
"--disable-libdaemon", "--disable-pygtk", "--disable-gdbm",
"--disable-mono", "--disable-monodoc", "--disable-manpages"
],
"sources": [
{
"type": "git",
"url": "https://github.com/lathiat/avahi.git",
"branch": "v0.7"
}
]
},
{
"name": "python3-nbxmpp",
"buildsystem": "simple",
"build-commands": [
"python3 setup.py install --prefix=/app"
],
"sources": [
{
"type": "git",
"url": "https://dev.gajim.org/gajim/python-nbxmpp.git",
"branch": "nbxmpp-0.6.0"
}
]
},
{
"name": "gajim",
"buildsystem": "simple",
"build-commands": [
"pip3 install --prefix=/app --no-deps ."
],
"sources": [
{
"type": "git",
"url": "https://dev.gajim.org/gajim/gajim.git"
}
]
}
]
}