0s autopkgtest [15:22:30]: starting date and time: 2024-11-13 15:22:30+0000 0s autopkgtest [15:22:30]: git checkout: 6f3be7a8 Fix armhf LXD image generation for plucky 0s autopkgtest [15:22:30]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.2aa3j7xg/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python3-defaults,src:python3-stdlib-extensions --apt-upgrade python-pgpy --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=python3-defaults/3.12.7-1 python3-stdlib-extensions/3.12.7-1' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-s390x --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@bos03-s390x-32.secgroup --name adt-plucky-s390x-python-pgpy-20241113-152230-juju-7f2275-prod-proposed-migration-environment-20-03118cfc-a19c-4e36-8509-debe07b7b729 --image adt/ubuntu-plucky-s390x-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-proposed-migration-s390x -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/ 107s autopkgtest [15:24:17]: testbed dpkg architecture: s390x 107s autopkgtest [15:24:17]: testbed apt version: 2.9.8 107s autopkgtest [15:24:17]: @@@@@@@@@@@@@@@@@@@@ test bed setup 108s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 108s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [105 kB] 108s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [962 kB] 108s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [16.5 kB] 108s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [7016 B] 108s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x Packages [110 kB] 108s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/universe s390x Packages [639 kB] 108s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse s390x Packages [17.4 kB] 109s Fetched 1931 kB in 1s (2160 kB/s) 109s Reading package lists... 111s Reading package lists... 111s Building dependency tree... 111s Reading state information... 111s Calculating upgrade... 112s The following NEW packages will be installed: 112s python3.13-gdbm 112s The following packages will be upgraded: 112s libgnutls30t64 libgpgme11t64 libjson-glib-1.0-0 libjson-glib-1.0-common 112s libpython3-stdlib libutempter0 python3 python3-gdbm python3-minimal 112s 9 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 112s Need to get 1285 kB of archives. 112s After this operation, 103 kB of additional disk space will be used. 112s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x python3-minimal s390x 3.12.7-1 [27.4 kB] 112s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x python3 s390x 3.12.7-1 [24.0 kB] 112s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x libpython3-stdlib s390x 3.12.7-1 [10.0 kB] 112s Get:4 http://ftpmaster.internal/ubuntu plucky/main s390x libgnutls30t64 s390x 3.8.8-2ubuntu1 [950 kB] 112s Get:5 http://ftpmaster.internal/ubuntu plucky/main s390x python3.13-gdbm s390x 3.13.0-2 [31.0 kB] 112s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x python3-gdbm s390x 3.12.7-1 [8642 B] 112s Get:7 http://ftpmaster.internal/ubuntu plucky/main s390x libgpgme11t64 s390x 1.23.2-5ubuntu4 [151 kB] 112s Get:8 http://ftpmaster.internal/ubuntu plucky/main s390x libjson-glib-1.0-common all 1.10.0+ds-3 [5586 B] 112s Get:9 http://ftpmaster.internal/ubuntu plucky/main s390x libjson-glib-1.0-0 s390x 1.10.0+ds-3 [67.5 kB] 112s Get:10 http://ftpmaster.internal/ubuntu plucky/main s390x libutempter0 s390x 1.2.1-4 [9708 B] 114s Fetched 1285 kB in 1s (1902 kB/s) 114s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 55510 files and directories currently installed.) 114s Preparing to unpack .../python3-minimal_3.12.7-1_s390x.deb ... 114s Unpacking python3-minimal (3.12.7-1) over (3.12.6-0ubuntu1) ... 115s Setting up python3-minimal (3.12.7-1) ... 115s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 55510 files and directories currently installed.) 115s Preparing to unpack .../python3_3.12.7-1_s390x.deb ... 115s Unpacking python3 (3.12.7-1) over (3.12.6-0ubuntu1) ... 115s Preparing to unpack .../libpython3-stdlib_3.12.7-1_s390x.deb ... 115s Unpacking libpython3-stdlib:s390x (3.12.7-1) over (3.12.6-0ubuntu1) ... 115s Preparing to unpack .../libgnutls30t64_3.8.8-2ubuntu1_s390x.deb ... 115s Unpacking libgnutls30t64:s390x (3.8.8-2ubuntu1) over (3.8.6-2ubuntu1) ... 115s Setting up libgnutls30t64:s390x (3.8.8-2ubuntu1) ... 115s Selecting previously unselected package python3.13-gdbm. 115s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 55510 files and directories currently installed.) 115s Preparing to unpack .../0-python3.13-gdbm_3.13.0-2_s390x.deb ... 115s Unpacking python3.13-gdbm (3.13.0-2) ... 115s Preparing to unpack .../1-python3-gdbm_3.12.7-1_s390x.deb ... 115s Unpacking python3-gdbm:s390x (3.12.7-1) over (3.12.6-1ubuntu1) ... 115s Preparing to unpack .../2-libgpgme11t64_1.23.2-5ubuntu4_s390x.deb ... 115s Unpacking libgpgme11t64:s390x (1.23.2-5ubuntu4) over (1.18.0-4.1ubuntu4) ... 115s Preparing to unpack .../3-libjson-glib-1.0-common_1.10.0+ds-3_all.deb ... 115s Unpacking libjson-glib-1.0-common (1.10.0+ds-3) over (1.10.0+ds-2) ... 115s Preparing to unpack .../4-libjson-glib-1.0-0_1.10.0+ds-3_s390x.deb ... 115s Unpacking libjson-glib-1.0-0:s390x (1.10.0+ds-3) over (1.10.0+ds-2) ... 115s Preparing to unpack .../5-libutempter0_1.2.1-4_s390x.deb ... 115s Unpacking libutempter0:s390x (1.2.1-4) over (1.2.1-3build1) ... 115s Setting up libutempter0:s390x (1.2.1-4) ... 115s Setting up libjson-glib-1.0-common (1.10.0+ds-3) ... 115s Setting up libgpgme11t64:s390x (1.23.2-5ubuntu4) ... 115s Setting up python3.13-gdbm (3.13.0-2) ... 115s Setting up libpython3-stdlib:s390x (3.12.7-1) ... 115s Setting up python3 (3.12.7-1) ... 115s Setting up libjson-glib-1.0-0:s390x (1.10.0+ds-3) ... 115s Setting up python3-gdbm:s390x (3.12.7-1) ... 115s Processing triggers for man-db (2.12.1-3) ... 117s Processing triggers for libc-bin (2.40-1ubuntu3) ... 117s Reading package lists... 117s Building dependency tree... 117s Reading state information... 117s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 118s Hit:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease 118s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 118s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 118s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 119s Reading package lists... 119s Reading package lists... 119s Building dependency tree... 119s Reading state information... 119s Calculating upgrade... 120s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 120s Reading package lists... 120s Building dependency tree... 120s Reading state information... 120s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 122s autopkgtest [15:24:32]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP Mon Sep 16 12:49:35 UTC 2024 123s autopkgtest [15:24:33]: @@@@@@@@@@@@@@@@@@@@ apt-source python-pgpy 125s Get:1 http://ftpmaster.internal/ubuntu plucky/universe python-pgpy 0.6.0-1.2 (dsc) [2386 B] 125s Get:2 http://ftpmaster.internal/ubuntu plucky/universe python-pgpy 0.6.0-1.2 (tar) [602 kB] 125s Get:3 http://ftpmaster.internal/ubuntu plucky/universe python-pgpy 0.6.0-1.2 (diff) [5284 B] 125s gpgv: Signature made Sun Jun 30 17:46:47 2024 UTC 125s gpgv: using RSA key 8F6DE104377F3B11E741748731F3144544A1741A 125s gpgv: issuer "tchet@debian.org" 125s gpgv: Can't check signature: No public key 125s dpkg-source: warning: cannot verify inline signature for ./python-pgpy_0.6.0-1.2.dsc: no acceptable signature found 125s autopkgtest [15:24:35]: testing package python-pgpy version 0.6.0-1.2 126s autopkgtest [15:24:36]: build not needed 126s autopkgtest [15:24:36]: test pybuild-autopkgtest: preparing testbed 128s Reading package lists... 128s Building dependency tree... 128s Reading state information... 128s Starting pkgProblemResolver with broken count: 0 128s Starting 2 pkgProblemResolver with broken count: 0 128s Done 128s The following additional packages will be installed: 128s autoconf automake autopoint autotools-dev build-essential cpp cpp-14 128s cpp-14-s390x-linux-gnu cpp-s390x-linux-gnu debhelper debugedit dh-autoreconf 128s dh-python dh-strip-nondeterminism docutils-common dwz g++ g++-14 128s g++-14-s390x-linux-gnu g++-s390x-linux-gnu gcc gcc-14 gcc-14-s390x-linux-gnu 128s gcc-s390x-linux-gnu gettext intltool-debian libarchive-zip-perl libasan8 128s libcc1-0 libdebhelper-perl libffi-dev libfile-stripnondeterminism-perl 128s libgcc-14-dev libgomp1 libisl23 libitm1 libjs-jquery libjs-jquery-hotkeys 128s libjs-jquery-isonscreen libjs-jquery-metadata libjs-jquery-tablesorter 128s libjs-jquery-throttle-debounce libjs-sphinxdoc libjs-underscore libjson-perl 128s libmpc3 libpython3.13-minimal libpython3.13-stdlib libstdc++-14-dev libtool 128s libubsan1 m4 pgpdump po-debconf pybuild-plugin-autopkgtest python3-alabaster 128s python3-all python3-coverage python3-defusedxml python3-docutils 128s python3-flake8 python3-flake8-polyfill python3-gpg python3-imagesize 128s python3-iniconfig python3-mccabe python3-packaging python3-pep8-naming 128s python3-pgpy python3-pgpy-doc python3-pluggy python3-progressbar 128s python3-pyasn1 python3-pycodestyle python3-pyflakes python3-pytest 128s python3-pytest-cov python3-roman python3-snowballstemmer python3-sphinx 128s python3-wheel python3.13 python3.13-minimal sgml-base sphinx-common xml-core 128s Suggested packages: 128s autoconf-archive gnu-standards autoconf-doc cpp-doc gcc-14-locales 128s cpp-14-doc dh-make flit python3-build python3-installer gcc-14-doc 128s gcc-multilib manpages-dev flex bison gdb gcc-doc gdb-s390x-linux-gnu 128s gettext-doc libasprintf-dev libgettextpo-dev libstdc++-14-doc libtool-doc 128s gfortran | fortran95-compiler gcj-jdk m4-doc libmail-box-perl 128s python-coverage-doc docutils-doc fonts-linuxlibertine | ttf-linux-libertine 128s texlive-lang-french texlive-latex-base texlive-latex-recommended 128s python3-stemmer dvipng dvisvgm fonts-freefont-otf imagemagick-6.q16 latexmk 128s libjs-mathjax python3-sphinx-rtd-theme sphinx-doc tex-gyre 128s texlive-fonts-extra texlive-fonts-recommended texlive-latex-extra 128s texlive-plain-generic python3.13-venv python3.13-doc binfmt-support 128s sgml-base-doc 128s Recommended packages: 128s libarchive-cpio-perl javascript-common libjson-xs-perl libltdl-dev 128s libmail-sendmail-perl libpaper-utils python3-pil pyflakes3 128s The following NEW packages will be installed: 128s autoconf automake autopkgtest-satdep autopoint autotools-dev build-essential 128s cpp cpp-14 cpp-14-s390x-linux-gnu cpp-s390x-linux-gnu debhelper debugedit 128s dh-autoreconf dh-python dh-strip-nondeterminism docutils-common dwz g++ 128s g++-14 g++-14-s390x-linux-gnu g++-s390x-linux-gnu gcc gcc-14 128s gcc-14-s390x-linux-gnu gcc-s390x-linux-gnu gettext intltool-debian 128s libarchive-zip-perl libasan8 libcc1-0 libdebhelper-perl libffi-dev 128s libfile-stripnondeterminism-perl libgcc-14-dev libgomp1 libisl23 libitm1 128s libjs-jquery libjs-jquery-hotkeys libjs-jquery-isonscreen 128s libjs-jquery-metadata libjs-jquery-tablesorter 128s libjs-jquery-throttle-debounce libjs-sphinxdoc libjs-underscore libjson-perl 128s libmpc3 libpython3.13-minimal libpython3.13-stdlib libstdc++-14-dev libtool 128s libubsan1 m4 pgpdump po-debconf pybuild-plugin-autopkgtest python3-alabaster 128s python3-all python3-coverage python3-defusedxml python3-docutils 128s python3-flake8 python3-flake8-polyfill python3-gpg python3-imagesize 128s python3-iniconfig python3-mccabe python3-packaging python3-pep8-naming 128s python3-pgpy python3-pgpy-doc python3-pluggy python3-progressbar 128s python3-pyasn1 python3-pycodestyle python3-pyflakes python3-pytest 128s python3-pytest-cov python3-roman python3-snowballstemmer python3-sphinx 128s python3-wheel python3.13 python3.13-minimal sgml-base sphinx-common xml-core 128s 0 upgraded, 87 newly installed, 0 to remove and 0 not upgraded. 128s Need to get 63.4 MB/63.4 MB of archives. 128s After this operation, 211 MB of additional disk space will be used. 128s Get:1 /tmp/autopkgtest.0LzrYH/1-autopkgtest-satdep.deb autopkgtest-satdep s390x 0 [888 B] 128s Get:2 http://ftpmaster.internal/ubuntu plucky/main s390x libpython3.13-minimal s390x 3.13.0-2 [877 kB] 129s Get:3 http://ftpmaster.internal/ubuntu plucky/main s390x python3.13-minimal s390x 3.13.0-2 [2172 kB] 130s Get:4 http://ftpmaster.internal/ubuntu plucky/main s390x sgml-base all 1.31 [11.4 kB] 130s Get:5 http://ftpmaster.internal/ubuntu plucky/main s390x libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB] 130s Get:6 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-jquery-hotkeys all 0~20130707+git2d51e3a9+dfsg-2.1 [11.5 kB] 130s Get:7 http://ftpmaster.internal/ubuntu plucky/main s390x m4 s390x 1.4.19-4build1 [256 kB] 130s Get:8 http://ftpmaster.internal/ubuntu plucky/main s390x autoconf all 2.72-3 [382 kB] 130s Get:9 http://ftpmaster.internal/ubuntu plucky/main s390x autotools-dev all 20220109.1 [44.9 kB] 130s Get:10 http://ftpmaster.internal/ubuntu plucky/main s390x automake all 1:1.16.5-1.3ubuntu1 [558 kB] 130s Get:11 http://ftpmaster.internal/ubuntu plucky/main s390x autopoint all 0.22.5-2 [616 kB] 130s Get:12 http://ftpmaster.internal/ubuntu plucky/main s390x libisl23 s390x 0.27-1 [704 kB] 131s Get:13 http://ftpmaster.internal/ubuntu plucky/main s390x libmpc3 s390x 1.3.1-1build2 [57.8 kB] 131s Get:14 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-14-s390x-linux-gnu s390x 14.2.0-8ubuntu1 [9570 kB] 133s Get:15 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-14 s390x 14.2.0-8ubuntu1 [1026 B] 133s Get:16 http://ftpmaster.internal/ubuntu plucky/main s390x cpp-s390x-linux-gnu s390x 4:14.1.0-2ubuntu1 [5452 B] 133s Get:17 http://ftpmaster.internal/ubuntu plucky/main s390x cpp s390x 4:14.1.0-2ubuntu1 [22.4 kB] 133s Get:18 http://ftpmaster.internal/ubuntu plucky/main s390x libcc1-0 s390x 14.2.0-8ubuntu1 [50.6 kB] 133s Get:19 http://ftpmaster.internal/ubuntu plucky/main s390x libgomp1 s390x 14.2.0-8ubuntu1 [151 kB] 133s Get:20 http://ftpmaster.internal/ubuntu plucky/main s390x libitm1 s390x 14.2.0-8ubuntu1 [30.9 kB] 133s Get:21 http://ftpmaster.internal/ubuntu plucky/main s390x libasan8 s390x 14.2.0-8ubuntu1 [2963 kB] 134s Get:22 http://ftpmaster.internal/ubuntu plucky/main s390x libubsan1 s390x 14.2.0-8ubuntu1 [1184 kB] 134s Get:23 http://ftpmaster.internal/ubuntu plucky/main s390x libgcc-14-dev s390x 14.2.0-8ubuntu1 [1037 kB] 134s Get:24 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-14-s390x-linux-gnu s390x 14.2.0-8ubuntu1 [18.7 MB] 139s Get:25 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-14 s390x 14.2.0-8ubuntu1 [518 kB] 139s Get:26 http://ftpmaster.internal/ubuntu plucky/main s390x gcc-s390x-linux-gnu s390x 4:14.1.0-2ubuntu1 [1204 B] 139s Get:27 http://ftpmaster.internal/ubuntu plucky/main s390x gcc s390x 4:14.1.0-2ubuntu1 [4996 B] 139s Get:28 http://ftpmaster.internal/ubuntu plucky/main s390x libstdc++-14-dev s390x 14.2.0-8ubuntu1 [2608 kB] 139s Get:29 http://ftpmaster.internal/ubuntu plucky/main s390x g++-14-s390x-linux-gnu s390x 14.2.0-8ubuntu1 [11.0 MB] 141s Get:30 http://ftpmaster.internal/ubuntu plucky/main s390x g++-14 s390x 14.2.0-8ubuntu1 [19.9 kB] 141s Get:31 http://ftpmaster.internal/ubuntu plucky/main s390x g++-s390x-linux-gnu s390x 4:14.1.0-2ubuntu1 [956 B] 141s Get:32 http://ftpmaster.internal/ubuntu plucky/main s390x g++ s390x 4:14.1.0-2ubuntu1 [1076 B] 141s Get:33 http://ftpmaster.internal/ubuntu plucky/main s390x build-essential s390x 12.10ubuntu1 [4930 B] 141s Get:34 http://ftpmaster.internal/ubuntu plucky/main s390x libdebhelper-perl all 13.20ubuntu1 [94.2 kB] 141s Get:35 http://ftpmaster.internal/ubuntu plucky/main s390x libtool all 2.4.7-7build1 [166 kB] 141s Get:36 http://ftpmaster.internal/ubuntu plucky/main s390x dh-autoreconf all 20 [16.1 kB] 141s Get:37 http://ftpmaster.internal/ubuntu plucky/main s390x libarchive-zip-perl all 1.68-1 [90.2 kB] 142s Get:38 http://ftpmaster.internal/ubuntu plucky/main s390x libfile-stripnondeterminism-perl all 1.14.0-1 [20.1 kB] 142s Get:39 http://ftpmaster.internal/ubuntu plucky/main s390x dh-strip-nondeterminism all 1.14.0-1 [5058 B] 142s Get:40 http://ftpmaster.internal/ubuntu plucky/main s390x debugedit s390x 1:5.1-1 [49.9 kB] 142s Get:41 http://ftpmaster.internal/ubuntu plucky/main s390x dwz s390x 0.15-1build6 [122 kB] 142s Get:42 http://ftpmaster.internal/ubuntu plucky/main s390x gettext s390x 0.22.5-2 [996 kB] 142s Get:43 http://ftpmaster.internal/ubuntu plucky/main s390x intltool-debian all 0.35.0+20060710.6 [23.2 kB] 142s Get:44 http://ftpmaster.internal/ubuntu plucky/main s390x po-debconf all 1.0.21+nmu1 [233 kB] 142s Get:45 http://ftpmaster.internal/ubuntu plucky/main s390x debhelper all 13.20ubuntu1 [893 kB] 142s Get:46 http://ftpmaster.internal/ubuntu plucky/universe s390x dh-python all 6.20241024 [112 kB] 142s Get:47 http://ftpmaster.internal/ubuntu plucky/main s390x xml-core all 0.19 [20.3 kB] 142s Get:48 http://ftpmaster.internal/ubuntu plucky/main s390x docutils-common all 0.21.2+dfsg-2 [131 kB] 142s Get:49 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-jquery-metadata all 12-4 [6582 B] 142s Get:50 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [192 kB] 142s Get:51 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.5 kB] 142s Get:52 http://ftpmaster.internal/ubuntu plucky/main s390x libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB] 142s Get:53 http://ftpmaster.internal/ubuntu plucky/main s390x libjs-sphinxdoc all 7.4.7-4 [158 kB] 142s Get:54 http://ftpmaster.internal/ubuntu plucky/main s390x libjson-perl all 4.10000-1 [81.9 kB] 142s Get:55 http://ftpmaster.internal/ubuntu plucky/main s390x libpython3.13-stdlib s390x 3.13.0-2 [2086 kB] 143s Get:56 http://ftpmaster.internal/ubuntu plucky/universe s390x pgpdump s390x 0.36-1 [20.5 kB] 143s Get:57 http://ftpmaster.internal/ubuntu plucky/universe s390x pybuild-plugin-autopkgtest all 6.20241024 [1746 B] 143s Get:58 http://ftpmaster.internal/ubuntu plucky/main s390x python3.13 s390x 3.13.0-2 [719 kB] 143s Get:59 http://ftpmaster.internal/ubuntu plucky-proposed/main s390x python3-all s390x 3.12.7-1 [890 B] 143s Get:60 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-coverage s390x 7.4.4+dfsg1-0ubuntu2 [147 kB] 143s Get:61 http://ftpmaster.internal/ubuntu plucky/main s390x python3-defusedxml all 0.7.1-2 [42.0 kB] 143s Get:62 http://ftpmaster.internal/ubuntu plucky/main s390x python3-roman all 4.2-1 [10.0 kB] 143s Get:63 http://ftpmaster.internal/ubuntu plucky/main s390x python3-docutils all 0.21.2+dfsg-2 [409 kB] 143s Get:64 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-mccabe all 0.7.0-1 [8678 B] 143s Get:65 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pycodestyle all 2.11.1-1 [29.9 kB] 143s Get:66 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pyflakes all 3.2.0-1 [52.8 kB] 143s Get:67 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-flake8 all 7.1.1-1 [43.9 kB] 143s Get:68 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-flake8-polyfill all 1.0.2-4 [6868 B] 143s Get:69 http://ftpmaster.internal/ubuntu plucky/main s390x python3-gpg s390x 1.23.2-5ubuntu4 [213 kB] 143s Get:70 http://ftpmaster.internal/ubuntu plucky/main s390x python3-imagesize all 1.4.1-1 [6844 B] 143s Get:71 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-iniconfig all 1.1.1-2 [6024 B] 143s Get:72 http://ftpmaster.internal/ubuntu plucky/main s390x python3-packaging all 24.1-1 [41.4 kB] 143s Get:73 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pep8-naming all 0.10.0-2 [10.1 kB] 143s Get:74 http://ftpmaster.internal/ubuntu plucky/main s390x python3-pyasn1 all 0.5.1-1 [57.4 kB] 143s Get:75 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pgpy all 0.6.0-1.2 [68.9 kB] 143s Get:76 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pgpy-doc all 0.6.0-1.2 [61.3 kB] 143s Get:77 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pluggy all 1.5.0-1 [21.0 kB] 143s Get:78 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-progressbar all 2.5-4 [11.0 kB] 143s Get:79 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pytest all 8.3.3-1 [251 kB] 143s Get:80 http://ftpmaster.internal/ubuntu plucky/universe s390x libjs-jquery-isonscreen all 1.2.0-1.1 [3244 B] 143s Get:81 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-pytest-cov all 5.0.0-1 [21.3 kB] 143s Get:82 http://ftpmaster.internal/ubuntu plucky/main s390x python3-snowballstemmer all 2.2.0-4build1 [59.8 kB] 143s Get:83 http://ftpmaster.internal/ubuntu plucky/main s390x sphinx-common all 7.4.7-4 [775 kB] 143s Get:84 http://ftpmaster.internal/ubuntu plucky/main s390x python3-alabaster all 0.7.16-0.1 [18.5 kB] 143s Get:85 http://ftpmaster.internal/ubuntu plucky/main s390x python3-sphinx all 7.4.7-4 [593 kB] 143s Get:86 http://ftpmaster.internal/ubuntu plucky/universe s390x python3-wheel all 0.44.0-1 [54.2 kB] 143s Get:87 http://ftpmaster.internal/ubuntu plucky/main s390x libffi-dev s390x 3.4.6-1build1 [58.8 kB] 144s Fetched 63.4 MB in 15s (4234 kB/s) 144s Selecting previously unselected package libpython3.13-minimal:s390x. 144s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 55517 files and directories currently installed.) 144s Preparing to unpack .../00-libpython3.13-minimal_3.13.0-2_s390x.deb ... 144s Unpacking libpython3.13-minimal:s390x (3.13.0-2) ... 144s Selecting previously unselected package python3.13-minimal. 144s Preparing to unpack .../01-python3.13-minimal_3.13.0-2_s390x.deb ... 144s Unpacking python3.13-minimal (3.13.0-2) ... 144s Selecting previously unselected package sgml-base. 144s Preparing to unpack .../02-sgml-base_1.31_all.deb ... 144s Unpacking sgml-base (1.31) ... 144s Selecting previously unselected package libjs-jquery. 144s Preparing to unpack .../03-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... 144s Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 144s Selecting previously unselected package libjs-jquery-hotkeys. 144s Preparing to unpack .../04-libjs-jquery-hotkeys_0~20130707+git2d51e3a9+dfsg-2.1_all.deb ... 144s Unpacking libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... 144s Selecting previously unselected package m4. 144s Preparing to unpack .../05-m4_1.4.19-4build1_s390x.deb ... 144s Unpacking m4 (1.4.19-4build1) ... 144s Selecting previously unselected package autoconf. 144s Preparing to unpack .../06-autoconf_2.72-3_all.deb ... 144s Unpacking autoconf (2.72-3) ... 144s Selecting previously unselected package autotools-dev. 144s Preparing to unpack .../07-autotools-dev_20220109.1_all.deb ... 144s Unpacking autotools-dev (20220109.1) ... 144s Selecting previously unselected package automake. 144s Preparing to unpack .../08-automake_1%3a1.16.5-1.3ubuntu1_all.deb ... 144s Unpacking automake (1:1.16.5-1.3ubuntu1) ... 144s Selecting previously unselected package autopoint. 144s Preparing to unpack .../09-autopoint_0.22.5-2_all.deb ... 144s Unpacking autopoint (0.22.5-2) ... 144s Selecting previously unselected package libisl23:s390x. 144s Preparing to unpack .../10-libisl23_0.27-1_s390x.deb ... 144s Unpacking libisl23:s390x (0.27-1) ... 144s Selecting previously unselected package libmpc3:s390x. 144s Preparing to unpack .../11-libmpc3_1.3.1-1build2_s390x.deb ... 144s Unpacking libmpc3:s390x (1.3.1-1build2) ... 144s Selecting previously unselected package cpp-14-s390x-linux-gnu. 144s Preparing to unpack .../12-cpp-14-s390x-linux-gnu_14.2.0-8ubuntu1_s390x.deb ... 144s Unpacking cpp-14-s390x-linux-gnu (14.2.0-8ubuntu1) ... 144s Selecting previously unselected package cpp-14. 144s Preparing to unpack .../13-cpp-14_14.2.0-8ubuntu1_s390x.deb ... 144s Unpacking cpp-14 (14.2.0-8ubuntu1) ... 144s Selecting previously unselected package cpp-s390x-linux-gnu. 144s Preparing to unpack .../14-cpp-s390x-linux-gnu_4%3a14.1.0-2ubuntu1_s390x.deb ... 144s Unpacking cpp-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 144s Selecting previously unselected package cpp. 144s Preparing to unpack .../15-cpp_4%3a14.1.0-2ubuntu1_s390x.deb ... 144s Unpacking cpp (4:14.1.0-2ubuntu1) ... 144s Selecting previously unselected package libcc1-0:s390x. 144s Preparing to unpack .../16-libcc1-0_14.2.0-8ubuntu1_s390x.deb ... 144s Unpacking libcc1-0:s390x (14.2.0-8ubuntu1) ... 144s Selecting previously unselected package libgomp1:s390x. 144s Preparing to unpack .../17-libgomp1_14.2.0-8ubuntu1_s390x.deb ... 144s Unpacking libgomp1:s390x (14.2.0-8ubuntu1) ... 144s Selecting previously unselected package libitm1:s390x. 144s Preparing to unpack .../18-libitm1_14.2.0-8ubuntu1_s390x.deb ... 144s Unpacking libitm1:s390x (14.2.0-8ubuntu1) ... 144s Selecting previously unselected package libasan8:s390x. 144s Preparing to unpack .../19-libasan8_14.2.0-8ubuntu1_s390x.deb ... 144s Unpacking libasan8:s390x (14.2.0-8ubuntu1) ... 144s Selecting previously unselected package libubsan1:s390x. 144s Preparing to unpack .../20-libubsan1_14.2.0-8ubuntu1_s390x.deb ... 144s Unpacking libubsan1:s390x (14.2.0-8ubuntu1) ... 144s Selecting previously unselected package libgcc-14-dev:s390x. 144s Preparing to unpack .../21-libgcc-14-dev_14.2.0-8ubuntu1_s390x.deb ... 144s Unpacking libgcc-14-dev:s390x (14.2.0-8ubuntu1) ... 144s Selecting previously unselected package gcc-14-s390x-linux-gnu. 144s Preparing to unpack .../22-gcc-14-s390x-linux-gnu_14.2.0-8ubuntu1_s390x.deb ... 144s Unpacking gcc-14-s390x-linux-gnu (14.2.0-8ubuntu1) ... 145s Selecting previously unselected package gcc-14. 145s Preparing to unpack .../23-gcc-14_14.2.0-8ubuntu1_s390x.deb ... 145s Unpacking gcc-14 (14.2.0-8ubuntu1) ... 145s Selecting previously unselected package gcc-s390x-linux-gnu. 145s Preparing to unpack .../24-gcc-s390x-linux-gnu_4%3a14.1.0-2ubuntu1_s390x.deb ... 145s Unpacking gcc-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 145s Selecting previously unselected package gcc. 145s Preparing to unpack .../25-gcc_4%3a14.1.0-2ubuntu1_s390x.deb ... 145s Unpacking gcc (4:14.1.0-2ubuntu1) ... 145s Selecting previously unselected package libstdc++-14-dev:s390x. 145s Preparing to unpack .../26-libstdc++-14-dev_14.2.0-8ubuntu1_s390x.deb ... 145s Unpacking libstdc++-14-dev:s390x (14.2.0-8ubuntu1) ... 145s Selecting previously unselected package g++-14-s390x-linux-gnu. 145s Preparing to unpack .../27-g++-14-s390x-linux-gnu_14.2.0-8ubuntu1_s390x.deb ... 145s Unpacking g++-14-s390x-linux-gnu (14.2.0-8ubuntu1) ... 145s Selecting previously unselected package g++-14. 145s Preparing to unpack .../28-g++-14_14.2.0-8ubuntu1_s390x.deb ... 145s Unpacking g++-14 (14.2.0-8ubuntu1) ... 145s Selecting previously unselected package g++-s390x-linux-gnu. 145s Preparing to unpack .../29-g++-s390x-linux-gnu_4%3a14.1.0-2ubuntu1_s390x.deb ... 145s Unpacking g++-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 145s Selecting previously unselected package g++. 145s Preparing to unpack .../30-g++_4%3a14.1.0-2ubuntu1_s390x.deb ... 145s Unpacking g++ (4:14.1.0-2ubuntu1) ... 145s Selecting previously unselected package build-essential. 145s Preparing to unpack .../31-build-essential_12.10ubuntu1_s390x.deb ... 145s Unpacking build-essential (12.10ubuntu1) ... 145s Selecting previously unselected package libdebhelper-perl. 145s Preparing to unpack .../32-libdebhelper-perl_13.20ubuntu1_all.deb ... 145s Unpacking libdebhelper-perl (13.20ubuntu1) ... 145s Selecting previously unselected package libtool. 145s Preparing to unpack .../33-libtool_2.4.7-7build1_all.deb ... 145s Unpacking libtool (2.4.7-7build1) ... 145s Selecting previously unselected package dh-autoreconf. 145s Preparing to unpack .../34-dh-autoreconf_20_all.deb ... 145s Unpacking dh-autoreconf (20) ... 145s Selecting previously unselected package libarchive-zip-perl. 145s Preparing to unpack .../35-libarchive-zip-perl_1.68-1_all.deb ... 145s Unpacking libarchive-zip-perl (1.68-1) ... 145s Selecting previously unselected package libfile-stripnondeterminism-perl. 145s Preparing to unpack .../36-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ... 145s Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ... 145s Selecting previously unselected package dh-strip-nondeterminism. 145s Preparing to unpack .../37-dh-strip-nondeterminism_1.14.0-1_all.deb ... 145s Unpacking dh-strip-nondeterminism (1.14.0-1) ... 145s Selecting previously unselected package debugedit. 145s Preparing to unpack .../38-debugedit_1%3a5.1-1_s390x.deb ... 145s Unpacking debugedit (1:5.1-1) ... 145s Selecting previously unselected package dwz. 145s Preparing to unpack .../39-dwz_0.15-1build6_s390x.deb ... 145s Unpacking dwz (0.15-1build6) ... 145s Selecting previously unselected package gettext. 145s Preparing to unpack .../40-gettext_0.22.5-2_s390x.deb ... 145s Unpacking gettext (0.22.5-2) ... 145s Selecting previously unselected package intltool-debian. 145s Preparing to unpack .../41-intltool-debian_0.35.0+20060710.6_all.deb ... 145s Unpacking intltool-debian (0.35.0+20060710.6) ... 145s Selecting previously unselected package po-debconf. 145s Preparing to unpack .../42-po-debconf_1.0.21+nmu1_all.deb ... 145s Unpacking po-debconf (1.0.21+nmu1) ... 145s Selecting previously unselected package debhelper. 145s Preparing to unpack .../43-debhelper_13.20ubuntu1_all.deb ... 145s Unpacking debhelper (13.20ubuntu1) ... 145s Selecting previously unselected package dh-python. 145s Preparing to unpack .../44-dh-python_6.20241024_all.deb ... 145s Unpacking dh-python (6.20241024) ... 145s Selecting previously unselected package xml-core. 145s Preparing to unpack .../45-xml-core_0.19_all.deb ... 145s Unpacking xml-core (0.19) ... 145s Selecting previously unselected package docutils-common. 145s Preparing to unpack .../46-docutils-common_0.21.2+dfsg-2_all.deb ... 145s Unpacking docutils-common (0.21.2+dfsg-2) ... 145s Selecting previously unselected package libjs-jquery-metadata. 145s Preparing to unpack .../47-libjs-jquery-metadata_12-4_all.deb ... 145s Unpacking libjs-jquery-metadata (12-4) ... 145s Selecting previously unselected package libjs-jquery-tablesorter. 145s Preparing to unpack .../48-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... 145s Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 145s Selecting previously unselected package libjs-jquery-throttle-debounce. 145s Preparing to unpack .../49-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... 145s Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 145s Selecting previously unselected package libjs-underscore. 145s Preparing to unpack .../50-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... 145s Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 145s Selecting previously unselected package libjs-sphinxdoc. 145s Preparing to unpack .../51-libjs-sphinxdoc_7.4.7-4_all.deb ... 145s Unpacking libjs-sphinxdoc (7.4.7-4) ... 145s Selecting previously unselected package libjson-perl. 145s Preparing to unpack .../52-libjson-perl_4.10000-1_all.deb ... 145s Unpacking libjson-perl (4.10000-1) ... 145s Selecting previously unselected package libpython3.13-stdlib:s390x. 145s Preparing to unpack .../53-libpython3.13-stdlib_3.13.0-2_s390x.deb ... 145s Unpacking libpython3.13-stdlib:s390x (3.13.0-2) ... 146s Selecting previously unselected package pgpdump. 146s Preparing to unpack .../54-pgpdump_0.36-1_s390x.deb ... 146s Unpacking pgpdump (0.36-1) ... 146s Selecting previously unselected package pybuild-plugin-autopkgtest. 146s Preparing to unpack .../55-pybuild-plugin-autopkgtest_6.20241024_all.deb ... 146s Unpacking pybuild-plugin-autopkgtest (6.20241024) ... 146s Selecting previously unselected package python3.13. 146s Preparing to unpack .../56-python3.13_3.13.0-2_s390x.deb ... 146s Unpacking python3.13 (3.13.0-2) ... 146s Selecting previously unselected package python3-all. 146s Preparing to unpack .../57-python3-all_3.12.7-1_s390x.deb ... 146s Unpacking python3-all (3.12.7-1) ... 146s Selecting previously unselected package python3-coverage. 146s Preparing to unpack .../58-python3-coverage_7.4.4+dfsg1-0ubuntu2_s390x.deb ... 146s Unpacking python3-coverage (7.4.4+dfsg1-0ubuntu2) ... 146s Selecting previously unselected package python3-defusedxml. 146s Preparing to unpack .../59-python3-defusedxml_0.7.1-2_all.deb ... 146s Unpacking python3-defusedxml (0.7.1-2) ... 146s Selecting previously unselected package python3-roman. 146s Preparing to unpack .../60-python3-roman_4.2-1_all.deb ... 146s Unpacking python3-roman (4.2-1) ... 146s Selecting previously unselected package python3-docutils. 146s Preparing to unpack .../61-python3-docutils_0.21.2+dfsg-2_all.deb ... 146s Unpacking python3-docutils (0.21.2+dfsg-2) ... 146s Selecting previously unselected package python3-mccabe. 146s Preparing to unpack .../62-python3-mccabe_0.7.0-1_all.deb ... 146s Unpacking python3-mccabe (0.7.0-1) ... 146s Selecting previously unselected package python3-pycodestyle. 146s Preparing to unpack .../63-python3-pycodestyle_2.11.1-1_all.deb ... 146s Unpacking python3-pycodestyle (2.11.1-1) ... 146s Selecting previously unselected package python3-pyflakes. 146s Preparing to unpack .../64-python3-pyflakes_3.2.0-1_all.deb ... 146s Unpacking python3-pyflakes (3.2.0-1) ... 146s Selecting previously unselected package python3-flake8. 146s Preparing to unpack .../65-python3-flake8_7.1.1-1_all.deb ... 146s Unpacking python3-flake8 (7.1.1-1) ... 146s Selecting previously unselected package python3-flake8-polyfill. 146s Preparing to unpack .../66-python3-flake8-polyfill_1.0.2-4_all.deb ... 146s Unpacking python3-flake8-polyfill (1.0.2-4) ... 146s Selecting previously unselected package python3-gpg. 146s Preparing to unpack .../67-python3-gpg_1.23.2-5ubuntu4_s390x.deb ... 146s Unpacking python3-gpg (1.23.2-5ubuntu4) ... 146s Selecting previously unselected package python3-imagesize. 146s Preparing to unpack .../68-python3-imagesize_1.4.1-1_all.deb ... 146s Unpacking python3-imagesize (1.4.1-1) ... 146s Selecting previously unselected package python3-iniconfig. 146s Preparing to unpack .../69-python3-iniconfig_1.1.1-2_all.deb ... 146s Unpacking python3-iniconfig (1.1.1-2) ... 146s Selecting previously unselected package python3-packaging. 146s Preparing to unpack .../70-python3-packaging_24.1-1_all.deb ... 146s Unpacking python3-packaging (24.1-1) ... 146s Selecting previously unselected package python3-pep8-naming. 146s Preparing to unpack .../71-python3-pep8-naming_0.10.0-2_all.deb ... 146s Unpacking python3-pep8-naming (0.10.0-2) ... 146s Selecting previously unselected package python3-pyasn1. 146s Preparing to unpack .../72-python3-pyasn1_0.5.1-1_all.deb ... 146s Unpacking python3-pyasn1 (0.5.1-1) ... 146s Selecting previously unselected package python3-pgpy. 146s Preparing to unpack .../73-python3-pgpy_0.6.0-1.2_all.deb ... 146s Unpacking python3-pgpy (0.6.0-1.2) ... 146s Selecting previously unselected package python3-pgpy-doc. 146s Preparing to unpack .../74-python3-pgpy-doc_0.6.0-1.2_all.deb ... 146s Unpacking python3-pgpy-doc (0.6.0-1.2) ... 146s Selecting previously unselected package python3-pluggy. 146s Preparing to unpack .../75-python3-pluggy_1.5.0-1_all.deb ... 146s Unpacking python3-pluggy (1.5.0-1) ... 146s Selecting previously unselected package python3-progressbar. 146s Preparing to unpack .../76-python3-progressbar_2.5-4_all.deb ... 146s Unpacking python3-progressbar (2.5-4) ... 146s Selecting previously unselected package python3-pytest. 146s Preparing to unpack .../77-python3-pytest_8.3.3-1_all.deb ... 146s Unpacking python3-pytest (8.3.3-1) ... 146s Selecting previously unselected package libjs-jquery-isonscreen. 146s Preparing to unpack .../78-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... 146s Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... 146s Selecting previously unselected package python3-pytest-cov. 146s Preparing to unpack .../79-python3-pytest-cov_5.0.0-1_all.deb ... 146s Unpacking python3-pytest-cov (5.0.0-1) ... 146s Selecting previously unselected package python3-snowballstemmer. 146s Preparing to unpack .../80-python3-snowballstemmer_2.2.0-4build1_all.deb ... 146s Unpacking python3-snowballstemmer (2.2.0-4build1) ... 146s Selecting previously unselected package sphinx-common. 146s Preparing to unpack .../81-sphinx-common_7.4.7-4_all.deb ... 146s Unpacking sphinx-common (7.4.7-4) ... 146s Selecting previously unselected package python3-alabaster. 146s Preparing to unpack .../82-python3-alabaster_0.7.16-0.1_all.deb ... 146s Unpacking python3-alabaster (0.7.16-0.1) ... 146s Selecting previously unselected package python3-sphinx. 146s Preparing to unpack .../83-python3-sphinx_7.4.7-4_all.deb ... 146s Unpacking python3-sphinx (7.4.7-4) ... 146s Selecting previously unselected package python3-wheel. 146s Preparing to unpack .../84-python3-wheel_0.44.0-1_all.deb ... 146s Unpacking python3-wheel (0.44.0-1) ... 146s Selecting previously unselected package libffi-dev:s390x. 146s Preparing to unpack .../85-libffi-dev_3.4.6-1build1_s390x.deb ... 146s Unpacking libffi-dev:s390x (3.4.6-1build1) ... 146s Selecting previously unselected package autopkgtest-satdep. 146s Preparing to unpack .../86-1-autopkgtest-satdep.deb ... 146s Unpacking autopkgtest-satdep (0) ... 146s Setting up dh-python (6.20241024) ... 146s Setting up python3-iniconfig (1.1.1-2) ... 147s Setting up pgpdump (0.36-1) ... 147s Setting up python3-defusedxml (0.7.1-2) ... 147s Setting up libarchive-zip-perl (1.68-1) ... 147s Setting up python3-alabaster (0.7.16-0.1) ... 147s Setting up libdebhelper-perl (13.20ubuntu1) ... 147s Setting up python3-pyflakes (3.2.0-1) ... 147s Setting up m4 (1.4.19-4build1) ... 147s Setting up python3-coverage (7.4.4+dfsg1-0ubuntu2) ... 148s Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... 148s Setting up libgomp1:s390x (14.2.0-8ubuntu1) ... 148s Setting up libffi-dev:s390x (3.4.6-1build1) ... 148s Setting up python3-wheel (0.44.0-1) ... 148s Setting up libpython3.13-minimal:s390x (3.13.0-2) ... 148s Setting up python3-progressbar (2.5-4) ... 148s Setting up python3-roman (4.2-1) ... 148s Setting up python3-pycodestyle (2.11.1-1) ... 148s Setting up autotools-dev (20220109.1) ... 148s Setting up python3-packaging (24.1-1) ... 149s Setting up python3-gpg (1.23.2-5ubuntu4) ... 149s Setting up python3-snowballstemmer (2.2.0-4build1) ... 149s Setting up libmpc3:s390x (1.3.1-1build2) ... 149s Setting up autopoint (0.22.5-2) ... 149s Setting up autoconf (2.72-3) ... 149s Setting up python3-pluggy (1.5.0-1) ... 150s Setting up libubsan1:s390x (14.2.0-8ubuntu1) ... 150s Setting up dwz (0.15-1build6) ... 150s Setting up libasan8:s390x (14.2.0-8ubuntu1) ... 150s Setting up libjson-perl (4.10000-1) ... 150s Setting up python3-pgpy-doc (0.6.0-1.2) ... 150s Setting up python3-pyasn1 (0.5.1-1) ... 150s Setting up debugedit (1:5.1-1) ... 150s Setting up python3.13-minimal (3.13.0-2) ... 151s Setting up python3-mccabe (0.7.0-1) ... 151s Setting up sgml-base (1.31) ... 151s Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... 151s Setting up libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... 151s Setting up libisl23:s390x (0.27-1) ... 151s Setting up libpython3.13-stdlib:s390x (3.13.0-2) ... 151s Setting up libcc1-0:s390x (14.2.0-8ubuntu1) ... 151s Setting up libitm1:s390x (14.2.0-8ubuntu1) ... 151s Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... 151s Setting up python3-imagesize (1.4.1-1) ... 151s Setting up automake (1:1.16.5-1.3ubuntu1) ... 152s update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode 152s Setting up python3-pgpy (0.6.0-1.2) ... 152s Setting up libfile-stripnondeterminism-perl (1.14.0-1) ... 152s Setting up gettext (0.22.5-2) ... 152s Setting up python3.13 (3.13.0-2) ... 153s Setting up python3-pytest (8.3.3-1) ... 154s Setting up python3-all (3.12.7-1) ... 154s Setting up intltool-debian (0.35.0+20060710.6) ... 154s Setting up python3-flake8 (7.1.1-1) ... 154s Setting up libjs-jquery-metadata (12-4) ... 154s Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... 154s Setting up libjs-sphinxdoc (7.4.7-4) ... 154s Setting up cpp-14-s390x-linux-gnu (14.2.0-8ubuntu1) ... 154s Setting up cpp-14 (14.2.0-8ubuntu1) ... 154s Setting up dh-strip-nondeterminism (1.14.0-1) ... 154s Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... 154s Setting up xml-core (0.19) ... 154s Setting up python3-flake8-polyfill (1.0.2-4) ... 155s Setting up libgcc-14-dev:s390x (14.2.0-8ubuntu1) ... 155s Setting up libstdc++-14-dev:s390x (14.2.0-8ubuntu1) ... 155s Setting up cpp-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 155s Setting up python3-pep8-naming (0.10.0-2) ... 155s Setting up po-debconf (1.0.21+nmu1) ... 155s Setting up python3-pytest-cov (5.0.0-1) ... 155s Setting up gcc-14-s390x-linux-gnu (14.2.0-8ubuntu1) ... 155s Setting up gcc-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 155s Setting up sphinx-common (7.4.7-4) ... 155s Setting up g++-14-s390x-linux-gnu (14.2.0-8ubuntu1) ... 155s Setting up cpp (4:14.1.0-2ubuntu1) ... 155s Setting up g++-s390x-linux-gnu (4:14.1.0-2ubuntu1) ... 155s Setting up gcc-14 (14.2.0-8ubuntu1) ... 155s Setting up g++-14 (14.2.0-8ubuntu1) ... 155s Setting up libtool (2.4.7-7build1) ... 155s Setting up gcc (4:14.1.0-2ubuntu1) ... 155s Setting up dh-autoreconf (20) ... 155s Setting up g++ (4:14.1.0-2ubuntu1) ... 155s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 155s Setting up build-essential (12.10ubuntu1) ... 155s Setting up debhelper (13.20ubuntu1) ... 155s Setting up pybuild-plugin-autopkgtest (6.20241024) ... 155s Processing triggers for libc-bin (2.40-1ubuntu3) ... 155s Processing triggers for systemd (256.5-2ubuntu4) ... 155s Processing triggers for man-db (2.12.1-3) ... 156s Processing triggers for install-info (7.1.1-1) ... 156s Processing triggers for sgml-base (1.31) ... 156s Setting up docutils-common (0.21.2+dfsg-2) ... 156s Processing triggers for sgml-base (1.31) ... 156s Setting up python3-docutils (0.21.2+dfsg-2) ... 157s Setting up python3-sphinx (7.4.7-4) ... 159s Setting up autopkgtest-satdep (0) ... 163s (Reading database ... 60635 files and directories currently installed.) 163s Removing autopkgtest-satdep (0) ... 163s autopkgtest [15:25:13]: test pybuild-autopkgtest: pybuild-autopkgtest 163s autopkgtest [15:25:13]: test pybuild-autopkgtest: [----------------------- 164s pybuild-autopkgtest 164s I: pybuild base:311: cd /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build; python3.13 -m pytest tests 164s ImportError while loading conftest '/tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/conftest.py'. 165s tests/conftest.py:17: in 165s from cryptography.hazmat.backends import openssl 165s /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__init__.py:7: in 165s from cryptography.hazmat.backends.openssl.backend import backend 165s /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/backend.py:12: in 165s from cryptography import utils, x509 165s /usr/lib/python3/dist-packages/cryptography/x509/__init__.py:7: in 165s from cryptography.x509 import certificate_transparency, verification 165s /usr/lib/python3/dist-packages/cryptography/x509/certificate_transparency.py:11: in 165s from cryptography.hazmat.bindings._rust import x509 as rust_x509 165s E ImportError: cannot import name 'x509' from 'cryptography.hazmat.bindings._rust' (unknown location) 165s E: pybuild pybuild:389: test: plugin distutils failed with: exit code=4: cd /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build; python3.13 -m pytest tests 165s I: pybuild base:311: cd /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build; python3.12 -m pytest tests 166s == PGPy Test Suite == 166s Working Directory: /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build 166s Using OpenSSL 3.3.1 166s Using GnuPG 2.4.4 166s 166s ============================= test session starts ============================== 166s platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0 166s rootdir: /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build 166s configfile: pyproject.toml 166s plugins: typeguard-4.4.1, cov-5.0.0 166s collected 1106 items 166s 166s tests/test_00_exports.py ............. [ 1%] 166s tests/test_01_packetfields.py .......................................... [ 4%] 166s ........................................................................ [ 11%] 166s ........................................................................ [ 17%] 166s ........................................................................ [ 24%] 166s ........................................................................ [ 31%] 166s .......................................... [ 34%] 166s tests/test_01_types.py ........ [ 35%] 166s tests/test_02_packets.py ............................................... [ 39%] 166s ... [ 40%] 166s tests/test_03_armor.py s................................................ [ 44%] 166s ............................................. [ 48%] 167s tests/test_04_PGP_objects.py ........................................... [ 52%] 167s ...................................... [ 55%] 167s tests/test_04_copy.py ............. [ 57%] 172s tests/test_05_actions.py FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF...... [ 61%] 204s ....FFFFFFxFFFFFFxFFFFFFxFFFFFFxFFFFFFFFFFFF........FFFFFFFF............ [ 67%] 232s FFFFFFxFFFFFFxFFFFFFxFFFFFFxFFFFFFFFs................................... [ 74%] 234s ......................Fssssssssssssxx......x...xx......x...xx......x...x [ 80%] 237s x......x...ssssssssssssss......s...ss......s...ss......s...ss......s...s [ 87%] 243s sssssssssssss......s...ss......s...ss......s...ss......s...... [ 92%] 244s tests/test_10_exceptions.py ............................................ [ 96%] 244s ............. [ 98%] 245s tests/test_99_regressions.py ..................... [100%] 245s 245s =================================== FAILURES =================================== 245s _______________________ TestPGPMessage.test_new[0-False] _______________________ 245s 245s self = 245s comp_alg = , sensitive = False 245s 245s @pytest.mark.parametrize('comp_alg,sensitive', 245s itertools.product(CompressionAlgorithm, [False, True])) 245s def test_new(self, comp_alg, sensitive): 245s mtxt = u"This is a new message!" 245s msg = PGPMessage.new(mtxt, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else '') 245s assert msg.is_sensitive is sensitive 245s assert msg.type == 'literal' 245s assert msg.message == mtxt 245s assert msg._compression == comp_alg 245s 245s if gpg: 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg).decode('utf-8') == mtxt 245s 245s tests/test_05_actions.py:86: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:171: in wrapper 245s return _funcwrap(self, *args) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _______________________ TestPGPMessage.test_new[0-True] ________________________ 245s 245s self = 245s comp_alg = , sensitive = True 245s 245s @pytest.mark.parametrize('comp_alg,sensitive', 245s itertools.product(CompressionAlgorithm, [False, True])) 245s def test_new(self, comp_alg, sensitive): 245s mtxt = u"This is a new message!" 245s msg = PGPMessage.new(mtxt, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else '') 245s assert msg.is_sensitive is sensitive 245s assert msg.type == 'literal' 245s assert msg.message == mtxt 245s assert msg._compression == comp_alg 245s 245s if gpg: 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg).decode('utf-8') == mtxt 245s 245s tests/test_05_actions.py:86: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _______________________ TestPGPMessage.test_new[1-False] _______________________ 245s 245s self = 245s comp_alg = , sensitive = False 245s 245s @pytest.mark.parametrize('comp_alg,sensitive', 245s itertools.product(CompressionAlgorithm, [False, True])) 245s def test_new(self, comp_alg, sensitive): 245s mtxt = u"This is a new message!" 245s msg = PGPMessage.new(mtxt, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else '') 245s assert msg.is_sensitive is sensitive 245s assert msg.type == 'literal' 245s assert msg.message == mtxt 245s assert msg._compression == comp_alg 245s 245s if gpg: 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg).decode('utf-8') == mtxt 245s 245s tests/test_05_actions.py:86: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _______________________ TestPGPMessage.test_new[1-True] ________________________ 245s 245s self = 245s comp_alg = , sensitive = True 245s 245s @pytest.mark.parametrize('comp_alg,sensitive', 245s itertools.product(CompressionAlgorithm, [False, True])) 245s def test_new(self, comp_alg, sensitive): 245s mtxt = u"This is a new message!" 245s msg = PGPMessage.new(mtxt, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else '') 245s assert msg.is_sensitive is sensitive 245s assert msg.type == 'literal' 245s assert msg.message == mtxt 245s assert msg._compression == comp_alg 245s 245s if gpg: 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg).decode('utf-8') == mtxt 245s 245s tests/test_05_actions.py:86: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _______________________ TestPGPMessage.test_new[2-False] _______________________ 245s 245s self = 245s comp_alg = , sensitive = False 245s 245s @pytest.mark.parametrize('comp_alg,sensitive', 245s itertools.product(CompressionAlgorithm, [False, True])) 245s def test_new(self, comp_alg, sensitive): 245s mtxt = u"This is a new message!" 245s msg = PGPMessage.new(mtxt, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else '') 245s assert msg.is_sensitive is sensitive 245s assert msg.type == 'literal' 245s assert msg.message == mtxt 245s assert msg._compression == comp_alg 245s 245s if gpg: 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg).decode('utf-8') == mtxt 245s 245s tests/test_05_actions.py:86: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _______________________ TestPGPMessage.test_new[2-True] ________________________ 245s 245s self = 245s comp_alg = , sensitive = True 245s 245s @pytest.mark.parametrize('comp_alg,sensitive', 245s itertools.product(CompressionAlgorithm, [False, True])) 245s def test_new(self, comp_alg, sensitive): 245s mtxt = u"This is a new message!" 245s msg = PGPMessage.new(mtxt, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else '') 245s assert msg.is_sensitive is sensitive 245s assert msg.type == 'literal' 245s assert msg.message == mtxt 245s assert msg._compression == comp_alg 245s 245s if gpg: 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg).decode('utf-8') == mtxt 245s 245s tests/test_05_actions.py:86: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _______________________ TestPGPMessage.test_new[3-False] _______________________ 245s 245s self = 245s comp_alg = , sensitive = False 245s 245s @pytest.mark.parametrize('comp_alg,sensitive', 245s itertools.product(CompressionAlgorithm, [False, True])) 245s def test_new(self, comp_alg, sensitive): 245s mtxt = u"This is a new message!" 245s msg = PGPMessage.new(mtxt, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else '') 245s assert msg.is_sensitive is sensitive 245s assert msg.type == 'literal' 245s assert msg.message == mtxt 245s assert msg._compression == comp_alg 245s 245s if gpg: 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg).decode('utf-8') == mtxt 245s 245s tests/test_05_actions.py:86: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _______________________ TestPGPMessage.test_new[3-True] ________________________ 245s 245s self = 245s comp_alg = , sensitive = True 245s 245s @pytest.mark.parametrize('comp_alg,sensitive', 245s itertools.product(CompressionAlgorithm, [False, True])) 245s def test_new(self, comp_alg, sensitive): 245s mtxt = u"This is a new message!" 245s msg = PGPMessage.new(mtxt, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else '') 245s assert msg.is_sensitive is sensitive 245s assert msg.type == 'literal' 245s assert msg.message == mtxt 245s assert msg._compression == comp_alg 245s 245s if gpg: 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg).decode('utf-8') == mtxt 245s 245s tests/test_05_actions.py:86: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[0-False-tests/testdata/files/literal.1.txt] _ 245s 245s self = 245s comp_alg = , sensitive = False 245s path = 'tests/testdata/files/literal.1.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[0-False-tests/testdata/files/literal.2.txt] _ 245s 245s self = 245s comp_alg = , sensitive = False 245s path = 'tests/testdata/files/literal.2.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[0-False-tests/testdata/files/literal.bin] __ 245s 245s self = 245s comp_alg = , sensitive = False 245s path = 'tests/testdata/files/literal.bin' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[0-False-tests/testdata/files/literal.dashesc.txt] _ 245s 245s self = 245s comp_alg = , sensitive = False 245s path = 'tests/testdata/files/literal.dashesc.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[0-True-tests/testdata/files/literal.1.txt] _ 245s 245s self = 245s comp_alg = , sensitive = True 245s path = 'tests/testdata/files/literal.1.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[0-True-tests/testdata/files/literal.2.txt] _ 245s 245s self = 245s comp_alg = , sensitive = True 245s path = 'tests/testdata/files/literal.2.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s __ TestPGPMessage.test_new_from_file[0-True-tests/testdata/files/literal.bin] __ 245s 245s self = 245s comp_alg = , sensitive = True 245s path = 'tests/testdata/files/literal.bin' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[0-True-tests/testdata/files/literal.dashesc.txt] _ 245s 245s self = 245s comp_alg = , sensitive = True 245s path = 'tests/testdata/files/literal.dashesc.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[1-False-tests/testdata/files/literal.1.txt] _ 245s 245s self = 245s comp_alg = , sensitive = False 245s path = 'tests/testdata/files/literal.1.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[1-False-tests/testdata/files/literal.2.txt] _ 245s 245s self = 245s comp_alg = , sensitive = False 245s path = 'tests/testdata/files/literal.2.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[1-False-tests/testdata/files/literal.bin] __ 245s 245s self = 245s comp_alg = , sensitive = False 245s path = 'tests/testdata/files/literal.bin' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[1-False-tests/testdata/files/literal.dashesc.txt] _ 245s 245s self = 245s comp_alg = , sensitive = False 245s path = 'tests/testdata/files/literal.dashesc.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[1-True-tests/testdata/files/literal.1.txt] _ 245s 245s self = 245s comp_alg = , sensitive = True 245s path = 'tests/testdata/files/literal.1.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[1-True-tests/testdata/files/literal.2.txt] _ 245s 245s self = 245s comp_alg = , sensitive = True 245s path = 'tests/testdata/files/literal.2.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s __ TestPGPMessage.test_new_from_file[1-True-tests/testdata/files/literal.bin] __ 245s 245s self = 245s comp_alg = , sensitive = True 245s path = 'tests/testdata/files/literal.bin' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[1-True-tests/testdata/files/literal.dashesc.txt] _ 245s 245s self = 245s comp_alg = , sensitive = True 245s path = 'tests/testdata/files/literal.dashesc.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[2-False-tests/testdata/files/literal.1.txt] _ 245s 245s self = 245s comp_alg = , sensitive = False 245s path = 'tests/testdata/files/literal.1.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[2-False-tests/testdata/files/literal.2.txt] _ 245s 245s self = 245s comp_alg = , sensitive = False 245s path = 'tests/testdata/files/literal.2.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[2-False-tests/testdata/files/literal.bin] __ 245s 245s self = 245s comp_alg = , sensitive = False 245s path = 'tests/testdata/files/literal.bin' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[2-False-tests/testdata/files/literal.dashesc.txt] _ 245s 245s self = 245s comp_alg = , sensitive = False 245s path = 'tests/testdata/files/literal.dashesc.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[2-True-tests/testdata/files/literal.1.txt] _ 245s 245s self = 245s comp_alg = , sensitive = True 245s path = 'tests/testdata/files/literal.1.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[2-True-tests/testdata/files/literal.2.txt] _ 245s 245s self = 245s comp_alg = , sensitive = True 245s path = 'tests/testdata/files/literal.2.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s __ TestPGPMessage.test_new_from_file[2-True-tests/testdata/files/literal.bin] __ 245s 245s self = 245s comp_alg = , sensitive = True 245s path = 'tests/testdata/files/literal.bin' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[2-True-tests/testdata/files/literal.dashesc.txt] _ 245s 245s self = 245s comp_alg = , sensitive = True 245s path = 'tests/testdata/files/literal.dashesc.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[3-False-tests/testdata/files/literal.1.txt] _ 245s 245s self = 245s comp_alg = , sensitive = False 245s path = 'tests/testdata/files/literal.1.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[3-False-tests/testdata/files/literal.2.txt] _ 245s 245s self = 245s comp_alg = , sensitive = False 245s path = 'tests/testdata/files/literal.2.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[3-False-tests/testdata/files/literal.bin] __ 245s 245s self = 245s comp_alg = , sensitive = False 245s path = 'tests/testdata/files/literal.bin' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[3-False-tests/testdata/files/literal.dashesc.txt] _ 245s 245s self = 245s comp_alg = , sensitive = False 245s path = 'tests/testdata/files/literal.dashesc.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[3-True-tests/testdata/files/literal.1.txt] _ 245s 245s self = 245s comp_alg = , sensitive = True 245s path = 'tests/testdata/files/literal.1.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[3-True-tests/testdata/files/literal.2.txt] _ 245s 245s self = 245s comp_alg = , sensitive = True 245s path = 'tests/testdata/files/literal.2.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s __ TestPGPMessage.test_new_from_file[3-True-tests/testdata/files/literal.bin] __ 245s 245s self = 245s comp_alg = , sensitive = True 245s path = 'tests/testdata/files/literal.bin' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPMessage.test_new_from_file[3-True-tests/testdata/files/literal.dashesc.txt] _ 245s 245s self = 245s comp_alg = , sensitive = True 245s path = 'tests/testdata/files/literal.dashesc.txt' 245s 245s @pytest.mark.parametrize('comp_alg,sensitive,path', 245s itertools.product(CompressionAlgorithm, [False, True], sorted(glob.glob('tests/testdata/files/literal*')))) 245s def test_new_from_file(self, comp_alg, sensitive, path): 245s msg = PGPMessage.new(path, file=True, compression=comp_alg, sensitive=sensitive) 245s 245s assert isinstance(msg, PGPMessage) 245s assert msg.filename == ('_CONSOLE' if sensitive else os.path.basename(path)) 245s assert msg.type == 'literal' 245s assert msg.is_sensitive is sensitive 245s 245s if gpg: 245s with open(path, 'rb') as tf: 245s mtxt = tf.read() 245s 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg) == mtxt 245s 245s tests/test_05_actions.py:103: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _____________________ TestPGPMessage.test_new_non_unicode ______________________ 245s 245s self = 245s 245s @pytest.mark.regression(issue=154) 245s # @pytest.mark.parametrize('cleartext', [False, True]) 245s def test_new_non_unicode(self): 245s # this message text comes from http://www.columbia.edu/~fdc/utf8/ 245s text = u'色は匂へど 散りぬるを\n' \ 245s u'我が世誰ぞ 常ならむ\n' \ 245s u'有為の奥山 今日越えて\n' \ 245s u'浅き夢見じ 酔ひもせず' 245s msg = PGPMessage.new(text.encode('jisx0213'), encoding='jisx0213') 245s 245s assert msg.type == 'literal' 245s assert msg.message == text.encode('jisx0213') 245s 245s if gpg: 245s # see if GPG can parse our message 245s > assert self.gpg_message(msg).decode('jisx0213') == text 245s 245s tests/test_05_actions.py:120: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:49: in gpg_message 245s msg, _ = c.verify(gpg.Data(string=str(msg))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440570, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: No data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s __________________ TestPGPKey_Management.test_gen_key[1-2048] __________________ 245s 245s self = 245s alg = , size = 2048 245s 245s @pytest.mark.order(1) 245s @pytest.mark.parametrize('alg,size', pkeyspecs) 245s def test_gen_key(self, alg, size): 245s # create a primary key with a UID 245s uid = PGPUID.new('Test Key', '{}.{}'.format(alg.name, size), 'user@localhost.local') 245s key = PGPKey.new(alg, size) 245s 245s if alg is PubKeyAlgorithm.ECDSA: 245s # ECDSA keys require larger hash digests 245s key.add_uid(uid, hashes=[HashAlgorithm.SHA384]) 245s 245s else: 245s key.add_uid(uid, hashes=[HashAlgorithm.SHA224]) 245s 245s assert uid in key 245s 245s # self-verify the key 245s assert key.verify(key) 245s self.keys[(alg, size)] = key 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:277: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _________________ TestPGPKey_Management.test_gen_key[17-2048] __________________ 245s 245s self = 245s alg = , size = 2048 245s 245s @pytest.mark.order(1) 245s @pytest.mark.parametrize('alg,size', pkeyspecs) 245s def test_gen_key(self, alg, size): 245s # create a primary key with a UID 245s uid = PGPUID.new('Test Key', '{}.{}'.format(alg.name, size), 'user@localhost.local') 245s key = PGPKey.new(alg, size) 245s 245s if alg is PubKeyAlgorithm.ECDSA: 245s # ECDSA keys require larger hash digests 245s key.add_uid(uid, hashes=[HashAlgorithm.SHA384]) 245s 245s else: 245s key.add_uid(uid, hashes=[HashAlgorithm.SHA224]) 245s 245s assert uid in key 245s 245s # self-verify the key 245s assert key.verify(key) 245s self.keys[(alg, size)] = key 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:277: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ______ TestPGPKey_Management.test_gen_key[19-EllipticCurveOID.NIST_P256] _______ 245s 245s self = 245s alg = 245s size = , payload [1.2.840.10045.3.1.7]>> 245s 245s @pytest.mark.order(1) 245s @pytest.mark.parametrize('alg,size', pkeyspecs) 245s def test_gen_key(self, alg, size): 245s # create a primary key with a UID 245s uid = PGPUID.new('Test Key', '{}.{}'.format(alg.name, size), 'user@localhost.local') 245s key = PGPKey.new(alg, size) 245s 245s if alg is PubKeyAlgorithm.ECDSA: 245s # ECDSA keys require larger hash digests 245s key.add_uid(uid, hashes=[HashAlgorithm.SHA384]) 245s 245s else: 245s key.add_uid(uid, hashes=[HashAlgorithm.SHA224]) 245s 245s assert uid in key 245s 245s # self-verify the key 245s assert key.verify(key) 245s self.keys[(alg, size)] = key 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:277: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _______ TestPGPKey_Management.test_gen_key[22-EllipticCurveOID.Ed25519] ________ 245s 245s self = 245s alg = 245s size = , payload [1.3.6.1.4.1.11591.15.1]>> 245s 245s @pytest.mark.order(1) 245s @pytest.mark.parametrize('alg,size', pkeyspecs) 245s def test_gen_key(self, alg, size): 245s # create a primary key with a UID 245s uid = PGPUID.new('Test Key', '{}.{}'.format(alg.name, size), 'user@localhost.local') 245s key = PGPKey.new(alg, size) 245s 245s if alg is PubKeyAlgorithm.ECDSA: 245s # ECDSA keys require larger hash digests 245s key.add_uid(uid, hashes=[HashAlgorithm.SHA384]) 245s 245s else: 245s key.add_uid(uid, hashes=[HashAlgorithm.SHA224]) 245s 245s assert uid in key 245s 245s # self-verify the key 245s assert key.verify(key) 245s self.keys[(alg, size)] = key 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:277: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_add_subkey[RSAEncryptOrSign-RSAEncryptOrSign-2048] _ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, 2048) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _______ TestPGPKey_Management.test_add_subkey[RSAEncryptOrSign-DSA-2048] _______ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, 2048) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_add_subkey[RSAEncryptOrSign-ECDSA-EllipticCurveOID.SECP256K1] _ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, , payload [1.3.132.0.10]>>) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_add_subkey[RSAEncryptOrSign-ECDH-EllipticCurveOID.Brainpool_P256] _ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, , payload [1.3.36.3.3.2.8.1.1.7]>>) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_add_subkey[RSAEncryptOrSign-EdDSA-EllipticCurveOID.Ed25519] _ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_add_subkey[RSAEncryptOrSign-ECDH-EllipticCurveOID.Curve25519] _ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, , payload [1.3.6.1.4.1.3029.1.5.1]>>) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _______ TestPGPKey_Management.test_add_subkey[DSA-RSAEncryptOrSign-2048] _______ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, 2048) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _____________ TestPGPKey_Management.test_add_subkey[DSA-DSA-2048] ______________ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, 2048) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_add_subkey[DSA-ECDSA-EllipticCurveOID.SECP256K1] __ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, , payload [1.3.132.0.10]>>) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_add_subkey[DSA-ECDH-EllipticCurveOID.Brainpool_P256] _ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, , payload [1.3.36.3.3.2.8.1.1.7]>>) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s __ TestPGPKey_Management.test_add_subkey[DSA-EdDSA-EllipticCurveOID.Ed25519] ___ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_add_subkey[DSA-ECDH-EllipticCurveOID.Curve25519] __ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, , payload [1.3.6.1.4.1.3029.1.5.1]>>) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ______ TestPGPKey_Management.test_add_subkey[ECDSA-RSAEncryptOrSign-2048] ______ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s skspec = (, 2048) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ____________ TestPGPKey_Management.test_add_subkey[ECDSA-DSA-2048] _____________ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s skspec = (, 2048) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_add_subkey[ECDSA-ECDSA-EllipticCurveOID.SECP256K1] _ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s skspec = (, , payload [1.3.132.0.10]>>) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_add_subkey[ECDSA-ECDH-EllipticCurveOID.Brainpool_P256] _ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s skspec = (, , payload [1.3.36.3.3.2.8.1.1.7]>>) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_add_subkey[ECDSA-EdDSA-EllipticCurveOID.Ed25519] __ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s skspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_add_subkey[ECDSA-ECDH-EllipticCurveOID.Curve25519] _ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s skspec = (, , payload [1.3.6.1.4.1.3029.1.5.1]>>) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ______ TestPGPKey_Management.test_add_subkey[EdDSA-RSAEncryptOrSign-2048] ______ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s skspec = (, 2048) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ____________ TestPGPKey_Management.test_add_subkey[EdDSA-DSA-2048] _____________ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s skspec = (, 2048) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_add_subkey[EdDSA-ECDSA-EllipticCurveOID.SECP256K1] _ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s skspec = (, , payload [1.3.132.0.10]>>) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_add_subkey[EdDSA-ECDH-EllipticCurveOID.Brainpool_P256] _ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s skspec = (, , payload [1.3.36.3.3.2.8.1.1.7]>>) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_add_subkey[EdDSA-EdDSA-EllipticCurveOID.Ed25519] __ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s skspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_add_subkey[EdDSA-ECDH-EllipticCurveOID.Curve25519] _ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s skspec = (, , payload [1.3.6.1.4.1.3029.1.5.1]>>) 245s 245s @pytest.mark.order(after='test_gen_key') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in itertools.product(pkeyspecs, skeyspecs)]) 245s def test_add_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s key = self.keys[pkspec] 245s subkey = PGPKey.new(*skspec) 245s 245s # before adding subkey to key, the key packet should be a PrivKeyV4, not a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivKeyV4) 245s assert not isinstance(subkey._key, PrivSubKeyV4) 245s 245s key.add_subkey(subkey, usage={KeyFlags.EncryptCommunications}) 245s 245s # now that we've added it, it should be a PrivSubKeyV4 245s assert isinstance(subkey._key, PrivSubKeyV4) 245s 245s # self-verify 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s assert key.verify(subkey) 245s 245s sv = key.verify(key) 245s assert sv 245s assert subkey in sv 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:317: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ___________________ TestPGPKey_Management.test_add_altuid[1] ___________________ 245s 245s self = 245s pkspec = (, 2048) 245s 245s @pytest.mark.order(after='test_add_subkey') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_add_altuid(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s key = self.keys[pkspec] 245s uid = PGPUID.new('T. Keyerson', 'Secondary UID', 'testkey@localhost.local') 245s 245s expiration = datetime.now(timezone.utc) + timedelta(days=2) 245s 245s # add all of the sbpackets that only work on self-certifications 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s key.add_uid(uid, 245s usage=[KeyFlags.Certify, KeyFlags.Sign], 245s ciphers=[SymmetricKeyAlgorithm.AES256, SymmetricKeyAlgorithm.Camellia256], 245s hashes=[HashAlgorithm.SHA384], 245s compression=[CompressionAlgorithm.ZLIB], 245s key_expiration=expiration, 245s keyserver_flags={KeyServerPreferences.NoModify}, 245s keyserver='about:none', 245s primary=False) 245s 245s sig = uid.selfsig 245s 245s assert sig.type == SignatureType.Positive_Cert 245s assert sig.cipherprefs == [SymmetricKeyAlgorithm.AES256, SymmetricKeyAlgorithm.Camellia256] 245s assert sig.hashprefs == [HashAlgorithm.SHA384] 245s assert sig.compprefs == [CompressionAlgorithm.ZLIB] 245s assert sig.features == {Features.ModificationDetection} 245s assert sig.key_expiration == expiration - key.created 245s assert sig.keyserver == 'about:none' 245s assert sig.keyserverprefs == {KeyServerPreferences.NoModify} 245s 245s assert uid.is_primary is False 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:358: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s __________________ TestPGPKey_Management.test_add_altuid[17] ___________________ 245s 245s self = 245s pkspec = (, 2048) 245s 245s @pytest.mark.order(after='test_add_subkey') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_add_altuid(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s key = self.keys[pkspec] 245s uid = PGPUID.new('T. Keyerson', 'Secondary UID', 'testkey@localhost.local') 245s 245s expiration = datetime.now(timezone.utc) + timedelta(days=2) 245s 245s # add all of the sbpackets that only work on self-certifications 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s key.add_uid(uid, 245s usage=[KeyFlags.Certify, KeyFlags.Sign], 245s ciphers=[SymmetricKeyAlgorithm.AES256, SymmetricKeyAlgorithm.Camellia256], 245s hashes=[HashAlgorithm.SHA384], 245s compression=[CompressionAlgorithm.ZLIB], 245s key_expiration=expiration, 245s keyserver_flags={KeyServerPreferences.NoModify}, 245s keyserver='about:none', 245s primary=False) 245s 245s sig = uid.selfsig 245s 245s assert sig.type == SignatureType.Positive_Cert 245s assert sig.cipherprefs == [SymmetricKeyAlgorithm.AES256, SymmetricKeyAlgorithm.Camellia256] 245s assert sig.hashprefs == [HashAlgorithm.SHA384] 245s assert sig.compprefs == [CompressionAlgorithm.ZLIB] 245s assert sig.features == {Features.ModificationDetection} 245s assert sig.key_expiration == expiration - key.created 245s assert sig.keyserver == 'about:none' 245s assert sig.keyserverprefs == {KeyServerPreferences.NoModify} 245s 245s assert uid.is_primary is False 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:358: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s __________________ TestPGPKey_Management.test_add_altuid[19] ___________________ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s 245s @pytest.mark.order(after='test_add_subkey') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_add_altuid(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s key = self.keys[pkspec] 245s uid = PGPUID.new('T. Keyerson', 'Secondary UID', 'testkey@localhost.local') 245s 245s expiration = datetime.now(timezone.utc) + timedelta(days=2) 245s 245s # add all of the sbpackets that only work on self-certifications 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s key.add_uid(uid, 245s usage=[KeyFlags.Certify, KeyFlags.Sign], 245s ciphers=[SymmetricKeyAlgorithm.AES256, SymmetricKeyAlgorithm.Camellia256], 245s hashes=[HashAlgorithm.SHA384], 245s compression=[CompressionAlgorithm.ZLIB], 245s key_expiration=expiration, 245s keyserver_flags={KeyServerPreferences.NoModify}, 245s keyserver='about:none', 245s primary=False) 245s 245s sig = uid.selfsig 245s 245s assert sig.type == SignatureType.Positive_Cert 245s assert sig.cipherprefs == [SymmetricKeyAlgorithm.AES256, SymmetricKeyAlgorithm.Camellia256] 245s assert sig.hashprefs == [HashAlgorithm.SHA384] 245s assert sig.compprefs == [CompressionAlgorithm.ZLIB] 245s assert sig.features == {Features.ModificationDetection} 245s assert sig.key_expiration == expiration - key.created 245s assert sig.keyserver == 'about:none' 245s assert sig.keyserverprefs == {KeyServerPreferences.NoModify} 245s 245s assert uid.is_primary is False 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:358: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s __________________ TestPGPKey_Management.test_add_altuid[22] ___________________ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s 245s @pytest.mark.order(after='test_add_subkey') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_add_altuid(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s key = self.keys[pkspec] 245s uid = PGPUID.new('T. Keyerson', 'Secondary UID', 'testkey@localhost.local') 245s 245s expiration = datetime.now(timezone.utc) + timedelta(days=2) 245s 245s # add all of the sbpackets that only work on self-certifications 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s key.add_uid(uid, 245s usage=[KeyFlags.Certify, KeyFlags.Sign], 245s ciphers=[SymmetricKeyAlgorithm.AES256, SymmetricKeyAlgorithm.Camellia256], 245s hashes=[HashAlgorithm.SHA384], 245s compression=[CompressionAlgorithm.ZLIB], 245s key_expiration=expiration, 245s keyserver_flags={KeyServerPreferences.NoModify}, 245s keyserver='about:none', 245s primary=False) 245s 245s sig = uid.selfsig 245s 245s assert sig.type == SignatureType.Positive_Cert 245s assert sig.cipherprefs == [SymmetricKeyAlgorithm.AES256, SymmetricKeyAlgorithm.Camellia256] 245s assert sig.hashprefs == [HashAlgorithm.SHA384] 245s assert sig.compprefs == [CompressionAlgorithm.ZLIB] 245s assert sig.features == {Features.ModificationDetection} 245s assert sig.key_expiration == expiration - key.created 245s assert sig.keyserver == 'about:none' 245s assert sig.keyserverprefs == {KeyServerPreferences.NoModify} 245s 245s assert uid.is_primary is False 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:358: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ___________________ TestPGPKey_Management.test_add_photo[1] ____________________ 245s 245s self = 245s pkspec = (, 2048) 245s userphoto = 245s 245s @pytest.mark.order(after='test_add_altuid') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_add_photo(self, pkspec, userphoto): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # add a photo 245s key = self.keys[pkspec] 245s photo = copy.copy(userphoto) 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s key.add_uid(photo) 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:375: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ___________________ TestPGPKey_Management.test_add_photo[17] ___________________ 245s 245s self = 245s pkspec = (, 2048) 245s userphoto = 245s 245s @pytest.mark.order(after='test_add_altuid') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_add_photo(self, pkspec, userphoto): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # add a photo 245s key = self.keys[pkspec] 245s photo = copy.copy(userphoto) 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s key.add_uid(photo) 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:375: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ___________________ TestPGPKey_Management.test_add_photo[19] ___________________ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s userphoto = 245s 245s @pytest.mark.order(after='test_add_altuid') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_add_photo(self, pkspec, userphoto): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # add a photo 245s key = self.keys[pkspec] 245s photo = copy.copy(userphoto) 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s key.add_uid(photo) 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:375: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ___________________ TestPGPKey_Management.test_add_photo[22] ___________________ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s userphoto = 245s 245s @pytest.mark.order(after='test_add_altuid') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_add_photo(self, pkspec, userphoto): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # add a photo 245s key = self.keys[pkspec] 245s photo = copy.copy(userphoto) 245s with warnings.catch_warnings(): 245s warnings.simplefilter('ignore') 245s key.add_uid(photo) 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:375: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _______________ TestPGPKey_Management.test_add_revocation_key[1] _______________ 245s 245s self = 245s pkspec = (, 2048) 245s 245s @pytest.mark.order(after='test_remove_altuid') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_add_revocation_key(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # add a revocation key 245s rev = self.keys[next(pks for pks in pkeyspecs if pks != pkspec)] 245s key = self.keys[pkspec] 245s revsig = key.revoker(rev) 245s key |= revsig 245s 245s assert revsig in key 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:418: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ______________ TestPGPKey_Management.test_add_revocation_key[17] _______________ 245s 245s self = 245s pkspec = (, 2048) 245s 245s @pytest.mark.order(after='test_remove_altuid') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_add_revocation_key(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # add a revocation key 245s rev = self.keys[next(pks for pks in pkeyspecs if pks != pkspec)] 245s key = self.keys[pkspec] 245s revsig = key.revoker(rev) 245s key |= revsig 245s 245s assert revsig in key 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:418: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ______________ TestPGPKey_Management.test_add_revocation_key[19] _______________ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s 245s @pytest.mark.order(after='test_remove_altuid') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_add_revocation_key(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # add a revocation key 245s rev = self.keys[next(pks for pks in pkeyspecs if pks != pkspec)] 245s key = self.keys[pkspec] 245s revsig = key.revoker(rev) 245s key |= revsig 245s 245s assert revsig in key 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:418: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ______________ TestPGPKey_Management.test_add_revocation_key[22] _______________ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s 245s @pytest.mark.order(after='test_remove_altuid') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_add_revocation_key(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # add a revocation key 245s rev = self.keys[next(pks for pks in pkeyspecs if pks != pkspec)] 245s key = self.keys[pkspec] 245s revsig = key.revoker(rev) 245s key |= revsig 245s 245s assert revsig in key 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:418: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ____________________ TestPGPKey_Management.test_protect[1] _____________________ 245s 245s self = 245s pkspec = (, 2048) 245s 245s @pytest.mark.order(after='test_add_revocation_key') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_protect(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # add a passphrase 245s key = self.keys[pkspec] 245s 245s assert key.is_protected is False 245s key.protect('There Are Many Like It, But This Key Is Mine', 245s SymmetricKeyAlgorithm.AES256, HashAlgorithm.SHA256) 245s 245s assert key.is_protected 245s assert key.is_unlocked is False 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:438: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ____________________ TestPGPKey_Management.test_protect[17] ____________________ 245s 245s self = 245s pkspec = (, 2048) 245s 245s @pytest.mark.order(after='test_add_revocation_key') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_protect(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # add a passphrase 245s key = self.keys[pkspec] 245s 245s assert key.is_protected is False 245s key.protect('There Are Many Like It, But This Key Is Mine', 245s SymmetricKeyAlgorithm.AES256, HashAlgorithm.SHA256) 245s 245s assert key.is_protected 245s assert key.is_unlocked is False 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:438: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ____________________ TestPGPKey_Management.test_protect[19] ____________________ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s 245s @pytest.mark.order(after='test_add_revocation_key') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_protect(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # add a passphrase 245s key = self.keys[pkspec] 245s 245s assert key.is_protected is False 245s key.protect('There Are Many Like It, But This Key Is Mine', 245s SymmetricKeyAlgorithm.AES256, HashAlgorithm.SHA256) 245s 245s assert key.is_protected 245s assert key.is_unlocked is False 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:438: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ____________________ TestPGPKey_Management.test_protect[22] ____________________ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s 245s @pytest.mark.order(after='test_add_revocation_key') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_protect(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # add a passphrase 245s key = self.keys[pkspec] 245s 245s assert key.is_protected is False 245s key.protect('There Are Many Like It, But This Key Is Mine', 245s SymmetricKeyAlgorithm.AES256, HashAlgorithm.SHA256) 245s 245s assert key.is_protected 245s assert key.is_unlocked is False 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:438: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _________________ TestPGPKey_Management.test_pub_from_spec[1] __________________ 245s 245s self = 245s pkspec = (, 2048) 245s 245s @pytest.mark.order(after='test_unlock2') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_pub_from_spec(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # get the public half of the key 245s priv = self.keys[pkspec] 245s pub = priv.pubkey 245s 245s assert pub.is_public 245s assert pub.fingerprint == priv.fingerprint 245s 245s for skid, subkey in priv.subkeys.items(): 245s assert skid in pub.subkeys 245s assert pub.subkeys[skid].is_public 245s assert len(subkey._key) == len(subkey._key.__bytes__()) 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(pub) 245s 245s tests/test_05_actions.py:499: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _________________ TestPGPKey_Management.test_pub_from_spec[17] _________________ 245s 245s self = 245s pkspec = (, 2048) 245s 245s @pytest.mark.order(after='test_unlock2') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_pub_from_spec(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # get the public half of the key 245s priv = self.keys[pkspec] 245s pub = priv.pubkey 245s 245s assert pub.is_public 245s assert pub.fingerprint == priv.fingerprint 245s 245s for skid, subkey in priv.subkeys.items(): 245s assert skid in pub.subkeys 245s assert pub.subkeys[skid].is_public 245s assert len(subkey._key) == len(subkey._key.__bytes__()) 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(pub) 245s 245s tests/test_05_actions.py:499: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _________________ TestPGPKey_Management.test_pub_from_spec[19] _________________ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s 245s @pytest.mark.order(after='test_unlock2') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_pub_from_spec(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # get the public half of the key 245s priv = self.keys[pkspec] 245s pub = priv.pubkey 245s 245s assert pub.is_public 245s assert pub.fingerprint == priv.fingerprint 245s 245s for skid, subkey in priv.subkeys.items(): 245s assert skid in pub.subkeys 245s assert pub.subkeys[skid].is_public 245s assert len(subkey._key) == len(subkey._key.__bytes__()) 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(pub) 245s 245s tests/test_05_actions.py:499: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _________________ TestPGPKey_Management.test_pub_from_spec[22] _________________ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s 245s @pytest.mark.order(after='test_unlock2') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_pub_from_spec(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # get the public half of the key 245s priv = self.keys[pkspec] 245s pub = priv.pubkey 245s 245s assert pub.is_public 245s assert pub.fingerprint == priv.fingerprint 245s 245s for skid, subkey in priv.subkeys.items(): 245s assert skid in pub.subkeys 245s assert pub.subkeys[skid].is_public 245s assert len(subkey._key) == len(subkey._key.__bytes__()) 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(pub) 245s 245s tests/test_05_actions.py:499: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_revoke_subkey[RSAEncryptOrSign-RSAEncryptOrSign-2048] _ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, 2048) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _____ TestPGPKey_Management.test_revoke_subkey[RSAEncryptOrSign-DSA-2048] ______ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, 2048) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_revoke_subkey[RSAEncryptOrSign-ECDSA-EllipticCurveOID.SECP256K1] _ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, , payload [1.3.132.0.10]>>) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_revoke_subkey[RSAEncryptOrSign-ECDH-EllipticCurveOID.Brainpool_P256] _ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, , payload [1.3.36.3.3.2.8.1.1.7]>>) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_revoke_subkey[RSAEncryptOrSign-EdDSA-EllipticCurveOID.Ed25519] _ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_revoke_subkey[RSAEncryptOrSign-ECDH-EllipticCurveOID.Curve25519] _ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, , payload [1.3.6.1.4.1.3029.1.5.1]>>) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _____ TestPGPKey_Management.test_revoke_subkey[DSA-RSAEncryptOrSign-2048] ______ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, 2048) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ____________ TestPGPKey_Management.test_revoke_subkey[DSA-DSA-2048] ____________ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, 2048) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_revoke_subkey[DSA-ECDSA-EllipticCurveOID.SECP256K1] _ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, , payload [1.3.132.0.10]>>) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_revoke_subkey[DSA-ECDH-EllipticCurveOID.Brainpool_P256] _ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, , payload [1.3.36.3.3.2.8.1.1.7]>>) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_revoke_subkey[DSA-EdDSA-EllipticCurveOID.Ed25519] _ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_revoke_subkey[DSA-ECDH-EllipticCurveOID.Curve25519] _ 245s 245s self = 245s pkspec = (, 2048) 245s skspec = (, , payload [1.3.6.1.4.1.3029.1.5.1]>>) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ____ TestPGPKey_Management.test_revoke_subkey[ECDSA-RSAEncryptOrSign-2048] _____ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s skspec = (, 2048) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ___________ TestPGPKey_Management.test_revoke_subkey[ECDSA-DSA-2048] ___________ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s skspec = (, 2048) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_revoke_subkey[ECDSA-ECDSA-EllipticCurveOID.SECP256K1] _ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s skspec = (, , payload [1.3.132.0.10]>>) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_revoke_subkey[ECDSA-ECDH-EllipticCurveOID.Brainpool_P256] _ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s skspec = (, , payload [1.3.36.3.3.2.8.1.1.7]>>) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_revoke_subkey[ECDSA-EdDSA-EllipticCurveOID.Ed25519] _ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s skspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_revoke_subkey[ECDSA-ECDH-EllipticCurveOID.Curve25519] _ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s skspec = (, , payload [1.3.6.1.4.1.3029.1.5.1]>>) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ____ TestPGPKey_Management.test_revoke_subkey[EdDSA-RSAEncryptOrSign-2048] _____ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s skspec = (, 2048) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ___________ TestPGPKey_Management.test_revoke_subkey[EdDSA-DSA-2048] ___________ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s skspec = (, 2048) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_revoke_subkey[EdDSA-ECDSA-EllipticCurveOID.SECP256K1] _ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s skspec = (, , payload [1.3.132.0.10]>>) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_revoke_subkey[EdDSA-ECDH-EllipticCurveOID.Brainpool_P256] _ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s skspec = (, , payload [1.3.36.3.3.2.8.1.1.7]>>) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_revoke_subkey[EdDSA-EdDSA-EllipticCurveOID.Ed25519] _ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s skspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s _ TestPGPKey_Management.test_revoke_subkey[EdDSA-ECDH-EllipticCurveOID.Curve25519] _ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s skspec = (, , payload [1.3.6.1.4.1.3029.1.5.1]>>) 245s 245s @pytest.mark.order(after='test_pub_from_spec') 245s @pytest.mark.parametrize('pkspec,skspec', 245s itertools.product(pkeyspecs, skeyspecs), 245s ids=['{}-{}-{}'.format(pk[0].name, sk[0].name, sk[1]) for pk, sk in 245s itertools.product(pkeyspecs, skeyspecs)]) 245s def test_revoke_subkey(self, pkspec, skspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s alg, size = skspec 245s if not alg.can_gen: 245s pytest.xfail('Key algorithm {} not yet supported'.format(alg.name)) 245s 245s if isinstance(size, EllipticCurveOID) and ((not size.can_gen) or size.curve.name not in _openssl_get_supported_curves()): 245s pytest.xfail('Curve {} not yet supported'.format(size.curve.name)) 245s 245s # revoke the subkey 245s key = self.keys[pkspec] 245s # pub = key.pubkey 245s 245s subkey = next(sk for si, sk in key.subkeys.items() if (sk.key_algorithm, sk.key_size) == skspec) 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(subkey, sigtype=SignatureType.SubkeyRevocation) 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s 245s subkey |= rsig 245s 245s # verify with PGPy 245s assert key.verify(subkey, rsig) 245s assert rsig in subkey.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:536: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ___________________ TestPGPKey_Management.test_revoke_key[1] ___________________ 245s 245s self = 245s pkspec = (, 2048) 245s 245s @pytest.mark.order(after='test_revoke_subkey') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_revoke_key(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # revoke the key 245s key = self.keys[pkspec] 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(key, sigtype=SignatureType.KeyRevocation, reason=RevocationReason.Retired, 245s comment="But you're so oooold") 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s key |= rsig 245s 245s # verify with PGPy 245s assert key.verify(key, rsig) 245s assert rsig in key.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:560: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s __________________ TestPGPKey_Management.test_revoke_key[17] ___________________ 245s 245s self = 245s pkspec = (, 2048) 245s 245s @pytest.mark.order(after='test_revoke_subkey') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_revoke_key(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # revoke the key 245s key = self.keys[pkspec] 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(key, sigtype=SignatureType.KeyRevocation, reason=RevocationReason.Retired, 245s comment="But you're so oooold") 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s key |= rsig 245s 245s # verify with PGPy 245s assert key.verify(key, rsig) 245s assert rsig in key.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:560: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s __________________ TestPGPKey_Management.test_revoke_key[19] ___________________ 245s 245s self = 245s pkspec = (, , payload [1.2.840.10045.3.1.7]>>) 245s 245s @pytest.mark.order(after='test_revoke_subkey') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_revoke_key(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # revoke the key 245s key = self.keys[pkspec] 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(key, sigtype=SignatureType.KeyRevocation, reason=RevocationReason.Retired, 245s comment="But you're so oooold") 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s key |= rsig 245s 245s # verify with PGPy 245s assert key.verify(key, rsig) 245s assert rsig in key.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:560: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s __________________ TestPGPKey_Management.test_revoke_key[22] ___________________ 245s 245s self = 245s pkspec = (, , payload [1.3.6.1.4.1.11591.15.1]>>) 245s 245s @pytest.mark.order(after='test_revoke_subkey') 245s @pytest.mark.parametrize('pkspec', pkeyspecs, ids=[str(a) for a, s in pkeyspecs]) 245s def test_revoke_key(self, pkspec): 245s if pkspec not in self.keys: 245s pytest.skip('Keyspec {} not in keys; must not have generated'.format(pkspec)) 245s 245s # revoke the key 245s key = self.keys[pkspec] 245s 245s with key.unlock('This Password Has Been Changed') as ukey: 245s rsig = ukey.revoke(key, sigtype=SignatureType.KeyRevocation, reason=RevocationReason.Retired, 245s comment="But you're so oooold") 245s 245s assert 'ReasonForRevocation' in rsig._signature.subpackets 245s key |= rsig 245s 245s # verify with PGPy 245s assert key.verify(key, rsig) 245s assert rsig in key.revocation_signatures 245s 245s if gpg: 245s # try to verify with GPG 245s > self.gpg_verify_key(key) 245s 245s tests/test_05_actions.py:560: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:251: in gpg_verify_key 245s data, vres = c.verify(gpg.Data(string=str(key))) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ____________________ TestPGPKey_Actions.test_gpg_import_abe ____________________ 245s 245s self = 245s abe = 245s 245s def test_gpg_import_abe(self, abe): 245s if gpg is None: 245s pytest.skip('integration test') 245s # verify all of the things we did to Abe's key with GnuPG in one fell swoop 245s > self.gpg_verify(abe) 245s 245s tests/test_05_actions.py:906: 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s tests/test_05_actions.py:649: in gpg_verify 245s _, vres = c.verify(*vargs) 245s /usr/lib/python3/dist-packages/gpg/core.py:554: in verify 245s raise e 245s /usr/lib/python3/dist-packages/gpg/core.py:550: in verify 245s self.op_verify(signed_data, None, data) 245s /usr/lib/python3/dist-packages/gpg/core.py:147: in _funcwrap 245s return errorcheck(result, name) 245s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 245s 245s retval = 117440601, extradata = 'gpgme_op_verify' 245s 245s def errorcheck(retval, extradata=None): 245s if retval: 245s > raise GPGMEError(retval, extradata) 245s E gpg.errors.GPGMEError: gpgme_op_verify: GPGME: Bad data 245s 245s /usr/lib/python3/dist-packages/gpg/errors.py:129: GPGMEError 245s ----------------------------- Captured stdout call ----------------------------- 245s [Key(can_authenticate=0, can_certify=1, can_encrypt=0, can_sign=1, chain_id=None, disabled=0, expired=0, fpr='D396FE3105C7676C74DE84760E79E47169AEC37A', has_authenticate=0, has_certify=1, has_encrypt=0, has_sign=1, invalid=0, is_qualified=0, issuer_name=None, issuer_serial=None, keylist_mode=1, last_update=0, origin=0, owner_trust=0, protocol=0, revoked=0, secret=0, subkeys=[SubKey(can_authenticate=0, can_certify=1, can_encrypt=0, can_renc=0, can_sign=1, can_timestamp=0, card_number=None, curve=None, disabled=0, expired=0, expires=0, fpr='D396FE3105C7676C74DE84760E79E47169AEC37A', invalid=0, is_cardkey=0, is_de_vs=0, is_group_owned=0, is_qualified=0, keygrip=None, keyid='0E79E47169AEC37A', length=1024, pubkey_algo=1, revoked=0, secret=0, thisown=False, timestamp=1411074782, v5fpr=None)], thisown=False, uids=[UID(address=None, comment='', email='', invalid=0, last_update=0, name="Targette R'Essay", origin=0, revoked=0, signatures=[], thisown=False, tofu=[], uid="Targette R'Essay", uidhash='44AB76D7B07E1A3BFE6F32FFE3C03D1C6A9A7069', validity=0)])] 245s =============================== warnings summary =============================== 245s ../../../../usr/lib/python3/dist-packages/pgpy/constants.py:5 245s /usr/lib/python3/dist-packages/pgpy/constants.py:5: DeprecationWarning: 'imghdr' is deprecated and slated for removal in Python 3.13 245s import imghdr 245s 245s tests/test_01_types.py:50 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_01_types.py:50: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression(issue=154) 245s 245s tests/test_01_types.py:57 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_01_types.py:57: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression(issue=154) 245s 245s tests/test_04_PGP_objects.py:114 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_04_PGP_objects.py:114: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression(issue=140) 245s 245s tests/test_04_PGP_objects.py:122 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_04_PGP_objects.py:122: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression(issue=140) 245s 245s tests/test_05_actions.py:105 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:105: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression(issue=154) 245s 245s tests/test_05_actions.py:122 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:122: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression(issue=154) 245s 245s tests/test_05_actions.py:255 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:255: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(1) 245s 245s tests/test_05_actions.py:279 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:279: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_gen_key') 245s 245s tests/test_05_actions.py:319 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:319: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_add_subkey') 245s 245s tests/test_05_actions.py:360 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:360: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_add_altuid') 245s 245s tests/test_05_actions.py:377 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:377: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_add_photo') 245s 245s tests/test_05_actions.py:390 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:390: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_revoke_altuid') 245s 245s tests/test_05_actions.py:402 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:402: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_remove_altuid') 245s 245s tests/test_05_actions.py:420 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:420: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_add_revocation_key') 245s 245s tests/test_05_actions.py:440 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:440: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_protect') 245s 245s tests/test_05_actions.py:455 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:455: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_unlock') 245s 245s tests/test_05_actions.py:467 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:467: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_change_passphrase') 245s 245s tests/test_05_actions.py:479 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:479: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_unlock2') 245s 245s tests/test_05_actions.py:501 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:501: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_pub_from_spec') 245s 245s tests/test_05_actions.py:538 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:538: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_revoke_subkey') 245s 245s tests/test_05_actions.py:562 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:562: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_revoke_key') 245s 245s tests/test_05_actions.py:709 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:709: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_sign_string') 245s 245s tests/test_05_actions.py:732 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:732: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_sign_message') 245s 245s tests/test_05_actions.py:755 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:755: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_sign_ctmessage') 245s 245s tests/test_05_actions.py:773 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:773: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_sign_timestamp') 245s 245s tests/test_05_actions.py:798 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:798: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_sign_standalone') 245s 245s tests/test_05_actions.py:856 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:856: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_certify_uid') 245s 245s tests/test_05_actions.py:873 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:873: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_certify_photo') 245s 245s tests/test_05_actions.py:926 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:926: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_encrypt_message') 245s 245s tests/test_05_actions.py:950 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_05_actions.py:950: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.order(after='test_encrypt_message') 245s 245s tests/test_99_regressions.py:18 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_99_regressions.py:18: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression(issue=56) 245s 245s tests/test_99_regressions.py:184 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_99_regressions.py:184: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression(issue=172) 245s 245s tests/test_99_regressions.py:195 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_99_regressions.py:195: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression(issue=183) 245s 245s tests/test_99_regressions.py:256 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_99_regressions.py:256: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression(194) 245s 245s tests/test_99_regressions.py:297 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_99_regressions.py:297: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression(issue=192) 245s 245s tests/test_99_regressions.py:310 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_99_regressions.py:310: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression(issue=199) 245s 245s tests/test_99_regressions.py:316 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_99_regressions.py:316: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression(issue=226) 245s 245s tests/test_99_regressions.py:349 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_99_regressions.py:349: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression(issue=243) 245s 245s tests/test_99_regressions.py:388 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_99_regressions.py:388: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression(issue=291) 245s 245s tests/test_99_regressions.py:433 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_99_regressions.py:433: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression 245s 245s tests/test_99_regressions.py:555 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_99_regressions.py:555: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression(issue=341) 245s 245s tests/test_99_regressions.py:587 245s /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build/tests/test_99_regressions.py:587: PytestUnknownMarkWarning: Unknown pytest.mark.regression - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 245s @pytest.mark.regression(issue=393) 245s 245s tests/test_01_packetfields.py: 330 warnings 245s tests/test_02_packets.py: 6 warnings 245s tests/test_03_armor.py: 2 warnings 245s tests/test_04_PGP_objects.py: 10 warnings 245s tests/test_05_actions.py: 53 warnings 245s tests/test_10_exceptions.py: 6 warnings 245s tests/test_99_regressions.py: 1 warning 245s /usr/lib/python3/dist-packages/pgpy/constants.py:192: CryptographyDeprecationWarning: IDEA has been deprecated and will be removed in a future release 245s bs = {SymmetricKeyAlgorithm.IDEA: algorithms.IDEA, 245s 245s tests/test_01_packetfields.py: 330 warnings 245s tests/test_02_packets.py: 6 warnings 245s tests/test_03_armor.py: 2 warnings 245s tests/test_04_PGP_objects.py: 10 warnings 245s tests/test_05_actions.py: 53 warnings 245s tests/test_10_exceptions.py: 6 warnings 245s tests/test_99_regressions.py: 1 warning 245s /usr/lib/python3/dist-packages/pgpy/constants.py:194: CryptographyDeprecationWarning: CAST5 has been deprecated and will be removed in a future release 245s SymmetricKeyAlgorithm.CAST5: algorithms.CAST5, 245s 245s tests/test_01_packetfields.py: 330 warnings 245s tests/test_02_packets.py: 6 warnings 245s tests/test_03_armor.py: 2 warnings 245s tests/test_04_PGP_objects.py: 10 warnings 245s tests/test_05_actions.py: 53 warnings 245s tests/test_10_exceptions.py: 6 warnings 245s tests/test_99_regressions.py: 1 warning 245s /usr/lib/python3/dist-packages/pgpy/constants.py:195: CryptographyDeprecationWarning: Blowfish has been deprecated and will be removed in a future release 245s SymmetricKeyAlgorithm.Blowfish: algorithms.Blowfish, 245s 245s tests/test_04_copy.py: 8 warnings 245s tests/test_05_actions.py: 56 warnings 245s tests/test_99_regressions.py: 3 warnings 245s /usr/lib/python3/dist-packages/pgpy/pgp.py:2389: UserWarning: TODO: Self-sigs verification is not yet working because self-sigs are not parsed!!! 245s warnings.warn("TODO: Self-sigs verification is not yet working because self-sigs are not parsed!!!") 245s 245s tests/test_05_actions.py: 56 warnings 245s tests/test_99_regressions.py: 3 warnings 245s /usr/lib/python3/dist-packages/pgpy/pgp.py:2406: UserWarning: TODO: Revocation checks are not yet implemented!!! 245s warnings.warn("TODO: Revocation checks are not yet implemented!!!") 245s 245s tests/test_05_actions.py: 56 warnings 245s tests/test_99_regressions.py: 3 warnings 245s /usr/lib/python3/dist-packages/pgpy/pgp.py:2407: UserWarning: TODO: Flags (s.a. `disabled`) checks are not yet implemented!!! 245s warnings.warn("TODO: Flags (s.a. `disabled`) checks are not yet implemented!!!") 245s 245s tests/test_05_actions.py::TestPGPKey_Actions::test_certify_uid[dsa.1.sec.asc] 245s /usr/lib/python3/dist-packages/pgpy/pgp.py:1834: UserWarning: Selected hash algorithm not in key preferences 245s uid |= self.certify(uid, SignatureType.Positive_Cert, **prefs) 245s 245s tests/test_99_regressions.py::test_reg_bug_56 245s /usr/lib/python3/dist-packages/pgpy/packet/subpackets/signature.py:233: UserWarning: Passing TZ-naive datetime object to CreationTime subpacket 245s warnings.warn("Passing TZ-naive datetime object to CreationTime subpacket") 245s 245s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 245s =========================== short test summary info ============================ 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new[0-False] - gpg.erro... 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new[0-True] - gpg.error... 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new[1-False] - gpg.erro... 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new[1-True] - gpg.error... 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new[2-False] - gpg.erro... 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new[2-True] - gpg.error... 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new[3-False] - gpg.erro... 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new[3-True] - gpg.error... 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[0-False-tests/testdata/files/literal.1.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[0-False-tests/testdata/files/literal.2.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[0-False-tests/testdata/files/literal.bin] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[0-False-tests/testdata/files/literal.dashesc.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[0-True-tests/testdata/files/literal.1.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[0-True-tests/testdata/files/literal.2.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[0-True-tests/testdata/files/literal.bin] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[0-True-tests/testdata/files/literal.dashesc.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[1-False-tests/testdata/files/literal.1.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[1-False-tests/testdata/files/literal.2.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[1-False-tests/testdata/files/literal.bin] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[1-False-tests/testdata/files/literal.dashesc.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[1-True-tests/testdata/files/literal.1.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[1-True-tests/testdata/files/literal.2.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[1-True-tests/testdata/files/literal.bin] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[1-True-tests/testdata/files/literal.dashesc.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[2-False-tests/testdata/files/literal.1.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[2-False-tests/testdata/files/literal.2.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[2-False-tests/testdata/files/literal.bin] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[2-False-tests/testdata/files/literal.dashesc.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[2-True-tests/testdata/files/literal.1.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[2-True-tests/testdata/files/literal.2.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[2-True-tests/testdata/files/literal.bin] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[2-True-tests/testdata/files/literal.dashesc.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[3-False-tests/testdata/files/literal.1.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[3-False-tests/testdata/files/literal.2.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[3-False-tests/testdata/files/literal.bin] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[3-False-tests/testdata/files/literal.dashesc.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[3-True-tests/testdata/files/literal.1.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[3-True-tests/testdata/files/literal.2.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[3-True-tests/testdata/files/literal.bin] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_from_file[3-True-tests/testdata/files/literal.dashesc.txt] 245s FAILED tests/test_05_actions.py::TestPGPMessage::test_new_non_unicode - gpg.e... 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_gen_key[1-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_gen_key[17-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_gen_key[19-EllipticCurveOID.NIST_P256] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_gen_key[22-EllipticCurveOID.Ed25519] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[RSAEncryptOrSign-RSAEncryptOrSign-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[RSAEncryptOrSign-DSA-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[RSAEncryptOrSign-ECDSA-EllipticCurveOID.SECP256K1] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[RSAEncryptOrSign-ECDH-EllipticCurveOID.Brainpool_P256] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[RSAEncryptOrSign-EdDSA-EllipticCurveOID.Ed25519] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[RSAEncryptOrSign-ECDH-EllipticCurveOID.Curve25519] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[DSA-RSAEncryptOrSign-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[DSA-DSA-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[DSA-ECDSA-EllipticCurveOID.SECP256K1] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[DSA-ECDH-EllipticCurveOID.Brainpool_P256] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[DSA-EdDSA-EllipticCurveOID.Ed25519] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[DSA-ECDH-EllipticCurveOID.Curve25519] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[ECDSA-RSAEncryptOrSign-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[ECDSA-DSA-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[ECDSA-ECDSA-EllipticCurveOID.SECP256K1] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[ECDSA-ECDH-EllipticCurveOID.Brainpool_P256] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[ECDSA-EdDSA-EllipticCurveOID.Ed25519] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[ECDSA-ECDH-EllipticCurveOID.Curve25519] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[EdDSA-RSAEncryptOrSign-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[EdDSA-DSA-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[EdDSA-ECDSA-EllipticCurveOID.SECP256K1] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[EdDSA-ECDH-EllipticCurveOID.Brainpool_P256] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[EdDSA-EdDSA-EllipticCurveOID.Ed25519] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_subkey[EdDSA-ECDH-EllipticCurveOID.Curve25519] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_altuid[1] - ... 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_altuid[17] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_altuid[19] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_altuid[22] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_photo[1] - g... 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_photo[17] - ... 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_photo[19] - ... 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_photo[22] - ... 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_revocation_key[1] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_revocation_key[17] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_revocation_key[19] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_add_revocation_key[22] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_protect[1] - gpg... 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_protect[17] - gp... 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_protect[19] - gp... 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_protect[22] - gp... 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_pub_from_spec[1] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_pub_from_spec[17] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_pub_from_spec[19] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_pub_from_spec[22] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[RSAEncryptOrSign-RSAEncryptOrSign-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[RSAEncryptOrSign-DSA-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[RSAEncryptOrSign-ECDSA-EllipticCurveOID.SECP256K1] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[RSAEncryptOrSign-ECDH-EllipticCurveOID.Brainpool_P256] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[RSAEncryptOrSign-EdDSA-EllipticCurveOID.Ed25519] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[RSAEncryptOrSign-ECDH-EllipticCurveOID.Curve25519] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[DSA-RSAEncryptOrSign-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[DSA-DSA-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[DSA-ECDSA-EllipticCurveOID.SECP256K1] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[DSA-ECDH-EllipticCurveOID.Brainpool_P256] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[DSA-EdDSA-EllipticCurveOID.Ed25519] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[DSA-ECDH-EllipticCurveOID.Curve25519] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[ECDSA-RSAEncryptOrSign-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[ECDSA-DSA-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[ECDSA-ECDSA-EllipticCurveOID.SECP256K1] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[ECDSA-ECDH-EllipticCurveOID.Brainpool_P256] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[ECDSA-EdDSA-EllipticCurveOID.Ed25519] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[ECDSA-ECDH-EllipticCurveOID.Curve25519] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[EdDSA-RSAEncryptOrSign-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[EdDSA-DSA-2048] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[EdDSA-ECDSA-EllipticCurveOID.SECP256K1] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[EdDSA-ECDH-EllipticCurveOID.Brainpool_P256] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[EdDSA-EdDSA-EllipticCurveOID.Ed25519] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_subkey[EdDSA-ECDH-EllipticCurveOID.Curve25519] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_key[1] - ... 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_key[17] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_key[19] 245s FAILED tests/test_05_actions.py::TestPGPKey_Management::test_revoke_key[22] 245s FAILED tests/test_05_actions.py::TestPGPKey_Actions::test_gpg_import_abe - gp... 245s = 118 failed, 906 passed, 62 skipped, 20 xfailed, 1454 warnings in 80.03s (0:01:20) = 245s E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /tmp/autopkgtest.0LzrYH/autopkgtest_tmp/build; python3.12 -m pytest tests 245s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p "3.13 3.12" returned exit code 13 245s make: *** [/tmp/IahDk2P1Z2/run:4: pybuild-autopkgtest] Error 25 245s pybuild-autopkgtest: error: /tmp/IahDk2P1Z2/run pybuild-autopkgtest returned exit code 2 246s autopkgtest [15:26:36]: test pybuild-autopkgtest: -----------------------] 246s pybuild-autopkgtest FAIL non-zero exit status 25 246s autopkgtest [15:26:36]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 246s autopkgtest [15:26:36]: @@@@@@@@@@@@@@@@@@@@ summary 246s pybuild-autopkgtest FAIL non-zero exit status 25 259s nova [W] Using flock in prodstack6-s390x 259s flock: timeout while waiting to get lock 259s Creating nova instance adt-plucky-s390x-python-pgpy-20241113-152230-juju-7f2275-prod-proposed-migration-environment-20-03118cfc-a19c-4e36-8509-debe07b7b729 from image adt/ubuntu-plucky-s390x-server-20241113.img (UUID e740277e-1f72-40ae-bfbe-46030537c71c)...