From c0087de53b37a9d22d653d783ee2126da3b5d289 Mon Sep 17 00:00:00 2001 From: Edward Ly Date: Mon, 23 Mar 2026 16:56:04 -0700 Subject: [PATCH] chore: remove expired and soon-to-expire certificates from test suite The tests associated with such certificates are also deleted accordingly. Signed-off-by: Edward Ly --- REUSE.toml | 4 +- .../v1/tests/data/certificates/news-old.crt | 29 -------- .../api/v1/tests/test_app_register.py | 59 +---------------- .../tests/data/certificates/app.crt | 24 ------- .../tests/data/certificates/news-old.crt | 29 -------- .../tests/data/certificates/owncloud.crt | 66 ------------------- .../certificate/tests/test_validator.py | 49 -------------- 7 files changed, 3 insertions(+), 257 deletions(-) delete mode 100644 nextcloudappstore/api/v1/tests/data/certificates/news-old.crt delete mode 100644 nextcloudappstore/certificate/tests/data/certificates/app.crt delete mode 100644 nextcloudappstore/certificate/tests/data/certificates/news-old.crt delete mode 100644 nextcloudappstore/certificate/tests/data/certificates/owncloud.crt diff --git a/REUSE.toml b/REUSE.toml index ebdc13de5a4..611dcc1cd52 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -12,7 +12,7 @@ SPDX-FileCopyrightText = "2016-2025 Nextcloud translators" SPDX-License-Identifier = "AGPL-3.0-or-later" [[annotations]] -path = [".tx/config", "docs/developer.rst", "docs/documentation.rst", "docs/index.rst", "docs/translation.rst", "nextcloudappstore/api/v1/tests/data/archives/appinfosymlink.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/appsymlink.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/changelog.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/contacts.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/empty.zip", "nextcloudappstore/api/v1/tests/data/archives/full.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/invalid.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/invalidname.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/minimal.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/multiplefolders.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/symlink.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/twofactor_u2f.tar.gz", "nextcloudappstore/certificate/tests/data/archives/minimal.tar.gz", "nextcloudappstore/api/v1/tests/data/certificates/news-old.crt", "nextcloudappstore/api/v1/tests/data/infoxmls/badcommand.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/broken-xml.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/digits.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/entities.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/full.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/fullimport.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/invalid.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/invalid-elements.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/minimal.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/news.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/nextcloud.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/no_en_description.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/no_en_name.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/no_en_summary.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/prerelease.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/repair-and-jobs.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/settings-and-activity-and-nav.xml", "nextcloudappstore/core/fixtures/categories.json", "nextcloudappstore/core/fixtures/databases.json", "nextcloudappstore/core/fixtures/licenses.json", "nextcloudappstore/core/static/assets/img/banner.jpg"] +path = [".tx/config", "docs/developer.rst", "docs/documentation.rst", "docs/index.rst", "docs/translation.rst", "nextcloudappstore/api/v1/tests/data/archives/appinfosymlink.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/appsymlink.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/changelog.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/contacts.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/empty.zip", "nextcloudappstore/api/v1/tests/data/archives/full.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/invalid.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/invalidname.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/minimal.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/multiplefolders.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/symlink.tar.gz", "nextcloudappstore/api/v1/tests/data/archives/twofactor_u2f.tar.gz", "nextcloudappstore/certificate/tests/data/archives/minimal.tar.gz", "nextcloudappstore/api/v1/tests/data/infoxmls/badcommand.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/broken-xml.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/digits.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/entities.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/full.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/fullimport.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/invalid.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/invalid-elements.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/minimal.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/news.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/nextcloud.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/no_en_description.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/no_en_name.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/no_en_summary.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/prerelease.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/repair-and-jobs.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/settings-and-activity-and-nav.xml", "nextcloudappstore/core/fixtures/categories.json", "nextcloudappstore/core/fixtures/databases.json", "nextcloudappstore/core/fixtures/licenses.json", "nextcloudappstore/core/static/assets/img/banner.jpg"] precedence = "aggregate" SPDX-FileCopyrightText = "2016 Nextcloud GmbH and Nextcloud contributors" SPDX-License-Identifier = "AGPL-3.0-or-later" @@ -24,7 +24,7 @@ SPDX-FileCopyrightText = "2016 Nextcloud GmbH" SPDX-License-Identifier = "LicenseRef-NextcloudTrademarks" [[annotations]] -path = [".idea/**", "appstore.iml", "package-lock.json", "package.json", "tsconfig.json", "docs/devinstall.rst", "docs/prodinstall.rst", "docs/storedeveloper.rst", "nextcloudappstore/core/static/assets/img/ajax-loader.gif", "nextcloudappstore/core/static/assets/img/loading.gif", "nextcloudappstore/api/v1/tests/data/archives/database.tar.gz", "nextcloudappstore/api/v1/tests/data/database/broken.xml", "nextcloudappstore/api/v1/tests/data/database/invaliddb.xml", "nextcloudappstore/api/v1/tests/data/database/invaliddeclaration.xml", "nextcloudappstore/api/v1/tests/data/database/invalidfield.xml", "nextcloudappstore/api/v1/tests/data/database/invalidindex.xml", "nextcloudappstore/api/v1/tests/data/database/invalidindexfield.xml", "nextcloudappstore/api/v1/tests/data/database/invalidtable.xml", "nextcloudappstore/api/v1/tests/data/database/nameafterdecl.xml", "nextcloudappstore/api/v1/tests/data/database/news.xml", "nextcloudappstore/api/v1/tests/data/database/server.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/authmigration.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/collaboration.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/sabre.xml", "nextcloudappstore/certificate/tests/data/certificates/app.crt", "nextcloudappstore/certificate/tests/data/certificates/bad-news-old-minimal.sig", "nextcloudappstore/certificate/tests/data/certificates/empty.crl", "nextcloudappstore/certificate/tests/data/certificates/imaginary-revoked1.crt", "nextcloudappstore/certificate/tests/data/certificates/imaginary-revoked2.crt", "nextcloudappstore/certificate/tests/data/certificates/imaginary-valid.crt", "nextcloudappstore/certificate/tests/data/certificates/imaginary.chain", "nextcloudappstore/certificate/tests/data/certificates/imaginary.crl", "nextcloudappstore/certificate/tests/data/certificates/news-old-app-id.sig", "nextcloudappstore/certificate/tests/data/certificates/news-old-minimal.sig", "nextcloudappstore/certificate/tests/data/certificates/news-old.crt", "nextcloudappstore/certificate/tests/data/certificates/nextcloud.crt", "nextcloudappstore/certificate/tests/data/certificates/owncloud.crt", "nextcloudappstore/core/tests/e2e/data/app.crt", "nextcloudappstore/core/tests/e2e/data/app.key", "nextcloudappstore/core/tests/e2e/data/ca.crl", "nextcloudappstore/core/tests/e2e/data/ca.crt", "nextcloudappstore/core/tests/e2e/data/ca.key", "nextcloudappstore/core/tests/e2e/fixtures/admin.json", "nextcloudappstore/core/tests/e2e/fixtures/apps.json", "nextcloudappstore/core/tests/e2e/fixtures/nextcloudreleases.json"] +path = [".idea/**", "appstore.iml", "package-lock.json", "package.json", "tsconfig.json", "docs/devinstall.rst", "docs/prodinstall.rst", "docs/storedeveloper.rst", "nextcloudappstore/core/static/assets/img/ajax-loader.gif", "nextcloudappstore/core/static/assets/img/loading.gif", "nextcloudappstore/api/v1/tests/data/archives/database.tar.gz", "nextcloudappstore/api/v1/tests/data/database/broken.xml", "nextcloudappstore/api/v1/tests/data/database/invaliddb.xml", "nextcloudappstore/api/v1/tests/data/database/invaliddeclaration.xml", "nextcloudappstore/api/v1/tests/data/database/invalidfield.xml", "nextcloudappstore/api/v1/tests/data/database/invalidindex.xml", "nextcloudappstore/api/v1/tests/data/database/invalidindexfield.xml", "nextcloudappstore/api/v1/tests/data/database/invalidtable.xml", "nextcloudappstore/api/v1/tests/data/database/nameafterdecl.xml", "nextcloudappstore/api/v1/tests/data/database/news.xml", "nextcloudappstore/api/v1/tests/data/database/server.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/authmigration.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/collaboration.xml", "nextcloudappstore/api/v1/tests/data/infoxmls/sabre.xml", "nextcloudappstore/certificate/tests/data/certificates/bad-news-old-minimal.sig", "nextcloudappstore/certificate/tests/data/certificates/empty.crl", "nextcloudappstore/certificate/tests/data/certificates/imaginary-revoked1.crt", "nextcloudappstore/certificate/tests/data/certificates/imaginary-revoked2.crt", "nextcloudappstore/certificate/tests/data/certificates/imaginary-valid.crt", "nextcloudappstore/certificate/tests/data/certificates/imaginary.chain", "nextcloudappstore/certificate/tests/data/certificates/imaginary.crl", "nextcloudappstore/certificate/tests/data/certificates/news-old-app-id.sig", "nextcloudappstore/certificate/tests/data/certificates/news-old-minimal.sig", "nextcloudappstore/certificate/tests/data/certificates/nextcloud.crt", "nextcloudappstore/core/tests/e2e/data/app.crt", "nextcloudappstore/core/tests/e2e/data/app.key", "nextcloudappstore/core/tests/e2e/data/ca.crl", "nextcloudappstore/core/tests/e2e/data/ca.crt", "nextcloudappstore/core/tests/e2e/data/ca.key", "nextcloudappstore/core/tests/e2e/fixtures/admin.json", "nextcloudappstore/core/tests/e2e/fixtures/apps.json", "nextcloudappstore/core/tests/e2e/fixtures/nextcloudreleases.json"] precedence = "aggregate" SPDX-FileCopyrightText = "2017 Nextcloud GmbH and Nextcloud contributors" SPDX-License-Identifier = "AGPL-3.0-or-later" diff --git a/nextcloudappstore/api/v1/tests/data/certificates/news-old.crt b/nextcloudappstore/api/v1/tests/data/certificates/news-old.crt deleted file mode 100644 index 223e6c450bc..00000000000 --- a/nextcloudappstore/api/v1/tests/data/certificates/news-old.crt +++ /dev/null @@ -1,29 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIE8TCCAtkCAhAHMA0GCSqGSIb3DQEBCwUAMG0xCzAJBgNVBAYTAlVTMQ8wDQYD -VQQIDAZCb3N0b24xFjAUBgNVBAoMDW93bkNsb3VkIEluYy4xNTAzBgNVBAMMLG93 -bkNsb3VkIENvZGUgU2lnbmluZyBJbnRlcm1lZGlhdGUgQXV0aG9yaXR5MB4XDTE2 -MDQyMTA4MDgxMloXDTI2MDQxOTA4MDgxMlowDzENMAsGA1UEAwwEbmV3czCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMj6vQuH7NdINz3J+UPOT5z1GHYB -HUcryfkXPQJFTPqPyBVOmwbLQrY+dH8B2WIhulXjJiM/6PybODIh6GadBhW3gtFs -QrfkvXBOSAZq5/y376zzss5973UGZrhx6Gp5bg9d6JNfINJBF1LisemICL+LfX+j -VRCauLhiZRrnsMtaBQJfChkNhOXlfkV1w85pe+SLQJuhjcuq8auicBlT6mS8hcGx -neC1pFGD51afdeU8aPYey/niDkWlXVE1XENZ6iXu3Y5ZtukoiNm3O6ErBEtB9A5J -xDghKNSbcVyosQrbY71qsaBCkkYzqhSkqJQvRQImtE+baFo3CMtKFhq76OlQY7m7 -7MOQzkbBpzZonzKlnJmmT9pl52IOq1AglDMzuh7u/JtwSIdFkJ4dBx1Yz3d+OPFt -uZ5NseKtm5BvUp6TQZ6ACSOTK31biVMY7H6Jj+v0EYoR0GybJD2+jEMfbStHCXDA -hqqXvFGEB+p0jyRYtYnn763yMx5ppwYQzqg61mSiKZtMPmP3mLQMvIfU3dtRwAvG -sVX921r7AcrR8Tc+4xf9VgHs42Cq4TSAGbVrB7dbz6QTAUxw8bS/KaXHVRtmzuwg -JdmSqO07BViujIkV8xP0b+TMvg/3621HvEGum/01vsS/RC8lvrxl/vCmCaRwFRcm -rse5n1LI53gmKsP3AgMBAAEwDQYJKoZIhvcNAQELBQADggIBAJhPDVy1VTS34sXh -KIv9XnW5kPbugQdaEjNs3fiY85GgQriTlW26DliqHxWJ0DpVJr78DXjzjZi0TixO -6pVL24EMI6wKKONEUW/8x0cUmMm/KPCk4qPivWQAMYwL0n7jWsZHJxGTsGF+/fPE -bP5q0gFeDvHW8koErovB5bNZTSw3tGxWcgJOuq8Gj7ZlJnqEqfrz3reMusgg5+Xt -b1BqHar//z48VGqYQr6WfWsMwSXpEIU/c+9Bw6V3xT+fJRPgR63eUlHKvVe2gtMF -eZQpJV1Vbt/MZezrBi3ksVEX2AGrsZeuFyJ9ZMs54UzFGJ1NitG+84ZMloWTPvPC -bEeef0cmoAiu3vxWMC85uUWwIweS+tIGI/0zMS+gyNrT+Lp3MaiqAtBA0njsbs6I -vHPdJkUNwdjAmByGftPjSEvgb5ZwUqe74imjFNAphnvvH3fETP5XlAmHe1azOoVT -R9DITZQJGf3sg2X2BHzYfVjvIeVWln9yFeRGfkz8BjyburrPOqmYynJz3SkLfMfL -cnWcxmy5x8WOSSVSnMIb00bn9hqoxj9sivCdMTUsmeJWN6Xjw/uBNyaaxXZvrULi -r4wGinqqnsL8l+u2tK48xjG16EWHNIitcIf2t9gU/lfHKWBvdCR9qdhqhq/Mmndo -0VB6CPCMct11FJsEdRGkeYuC66I9 ------END CERTIFICATE----- diff --git a/nextcloudappstore/api/v1/tests/test_app_register.py b/nextcloudappstore/api/v1/tests/test_app_register.py index abf9ecac0fc..674a763d13c 100644 --- a/nextcloudappstore/api/v1/tests/test_app_register.py +++ b/nextcloudappstore/api/v1/tests/test_app_register.py @@ -3,17 +3,14 @@ SPDX-License-Identifier: AGPL-3.0-or-later """ -from django.contrib.auth import get_user_model from django.urls import reverse from nextcloudappstore.api.v1.tests.api import ApiTest -from nextcloudappstore.core.facades import read_relative_file -from nextcloudappstore.core.models import App, AppRelease +from nextcloudappstore.core.models import App class AppRegisterTest(ApiTest): create_url = reverse("api:v1:app-register") - _cert = read_relative_file(__file__, "../../../certificate/tests/data/certificates/news-old.crt").strip() def _create_app(self, owner, app_id): return App.objects.create(owner=owner, id=app_id) @@ -23,57 +20,3 @@ def test_register_unauthenticated(self): self.create_url, data={"signature": "sign", "certificate": "cert"}, format="json" ) self.assertEqual(401, response.status_code) - - def test_register_unauthorized(self): - owner = get_user_model().objects.create_user(username="owner", password="owner", email="owner@owner.com") - self._create_app(owner, "news") - self._login_token() - with self.settings(VALIDATE_CERTIFICATES=False): - response = self.api_client.post( - self.create_url, data={"signature": "sign", "certificate": self._cert}, format="json" - ) - self.assertEqual(403, response.status_code) - - def test_register_transfer(self): - owner = get_user_model().objects.create_user(username="owner", password="owner", email="owner@owner.com") - app = self._create_app(owner, "news") - app.ownership_transfer_enabled = True - app.save() - self._login_token() - with self.settings(VALIDATE_CERTIFICATES=False): - response = self.api_client.post( - self.create_url, data={"signature": "sign", "certificate": self._cert}, format="json" - ) - self.assertEqual(204, response.status_code) - app = App.objects.get(id="news") - self.assertEqual(self.user, app.owner) - self.assertFalse(app.ownership_transfer_enabled) - - def test_register(self): - self._login() - with self.settings(VALIDATE_CERTIFICATES=False): - response = self.api_client.post( - self.create_url, data={"signature": "sign", "certificate": self._cert}, format="json" - ) - self.assertEqual(201, response.status_code) - app = App.objects.get(id="news") - self.assertEqual(self.user, app.owner) - self.assertEqual(self._cert, app.certificate) - - def test_register_update(self): - app = self._create_app(self.user, "news") - app.certificate = "blubb" - app.save() - AppRelease.objects.create(version="1.0.0", app=app) - - self.assertEqual(1, App.objects.get(id="news").releases.all().count()) - self._login() - with self.settings(VALIDATE_CERTIFICATES=False): - response = self.api_client.post( - self.create_url, data={"signature": "sign", "certificate": self._cert}, format="json" - ) - self.assertEqual(204, response.status_code) - app = App.objects.get(id="news") - self.assertEqual(self.user, app.owner) - self.assertEqual(self._cert, app.certificate) - self.assertEqual(0, app.releases.all().count()) diff --git a/nextcloudappstore/certificate/tests/data/certificates/app.crt b/nextcloudappstore/certificate/tests/data/certificates/app.crt deleted file mode 100644 index d3eca15b854..00000000000 --- a/nextcloudappstore/certificate/tests/data/certificates/app.crt +++ /dev/null @@ -1,24 +0,0 @@ ------BEGIN CERTIFICATE----- -MIID+TCCAeECAhAMMA0GCSqGSIb3DQEBCwUAMG0xCzAJBgNVBAYTAlVTMQ8wDQYD -VQQIDAZCb3N0b24xFjAUBgNVBAoMDW93bkNsb3VkIEluYy4xNTAzBgNVBAMMLG93 -bkNsb3VkIENvZGUgU2lnbmluZyBJbnRlcm1lZGlhdGUgQXV0aG9yaXR5MB4XDTE2 -MDcyNjEwMTIyOFoXDTI2MDcyNDEwMTIyOFowFzEVMBMGA1UEAwwMZm9sZGVycGxh -eWVyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8BnaiY7+oPMmYalU -Cpv/U+36PUTQd3r9t73l7opUyv7F2yshrgKk9jdINOWZaPYxFi5mSnolu6KP/nNq -Bsh7HTHFo9xmVg2lia4WxmO23GBp94GEj4irYSP3FcrrT+aLBmr3sM2zxfIWJ9K/ -9wC8rFhyQjMaQLqC48VRjz8eI6rRSAUrcY+B6GAB0O2XZifSYVgzwh3lV1Xno2uT -69+V5HfXEEz8u5YRnoFBC8hfaRzGlnm0cUZrVEgEcCjt1pPf+HeGUnHafT8uUbET -7Ys6QCQoaiKy7D7eiUh2kOOcChFAxiGX+9ahiIESZUrlDs8m8rmoa8C3fqho4C9g -nwEoowIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQAZts21nfQGzkPsiDseIZjg1Dh7 -KavuEjxJHqSbTlqi1W9CxievQF205IbfuRLsbsi1Kw1hFivse//nTkFiMvgdqKsM -zSzsUq24tjWFDpNVHgVoPCBG6t7yYP6PdWNZtPSt76w8l7fAo9Fm2tBlFvMfF4Pe -3nveZjV5ns71oFpxLJobl25xj4Q63DKRoN0vVv6bEe+rbd6REPI+Ep8w43A8/wqc -pB0q6j3Fs4FRlNUqshLaRN2HVbllb/+hlA1REOBGEvAuSHzXrThCS2PpEY8Ds7IG -0rSuEdzwCd3c+vk+pssgxmFHBDPDJUsKSgUCF5wzA4k42tK/sixSDJlPcVKZdRrY -+8XgaruPdIMoIVZHXdeNvBtra1kYRxZbeCpe1zSOiLL/xjSWVYEFhiO7ZBuHRDrq -gaJmQNZxzwEUrpLsN4QB4S3jVmCEZ9Rjp8hWuaShRBWwYjlfhKlRcdwCol/T7ODC -oioO3wBapwvsaCS4gmkmdBtvIKvbr62PM2nh6QpJwpyv9LPEXM5ZV0BT3AK8DIK6 -ThH5+uRF0QgDXHWIR55Gmh2usJ6VluPWT+f81Q3lH/jxXJfagGOFEFHtyT0yo23M -iazev6j9O2En+uDYLSWgQ7uN+cFYSdfjj1FRjsQ84e8CwNJ1nhiQ/HexMN8zwqDo -6LboOQuGiCet+KggAg== ------END CERTIFICATE----- diff --git a/nextcloudappstore/certificate/tests/data/certificates/news-old.crt b/nextcloudappstore/certificate/tests/data/certificates/news-old.crt deleted file mode 100644 index 223e6c450bc..00000000000 --- a/nextcloudappstore/certificate/tests/data/certificates/news-old.crt +++ /dev/null @@ -1,29 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIE8TCCAtkCAhAHMA0GCSqGSIb3DQEBCwUAMG0xCzAJBgNVBAYTAlVTMQ8wDQYD -VQQIDAZCb3N0b24xFjAUBgNVBAoMDW93bkNsb3VkIEluYy4xNTAzBgNVBAMMLG93 -bkNsb3VkIENvZGUgU2lnbmluZyBJbnRlcm1lZGlhdGUgQXV0aG9yaXR5MB4XDTE2 -MDQyMTA4MDgxMloXDTI2MDQxOTA4MDgxMlowDzENMAsGA1UEAwwEbmV3czCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMj6vQuH7NdINz3J+UPOT5z1GHYB -HUcryfkXPQJFTPqPyBVOmwbLQrY+dH8B2WIhulXjJiM/6PybODIh6GadBhW3gtFs -QrfkvXBOSAZq5/y376zzss5973UGZrhx6Gp5bg9d6JNfINJBF1LisemICL+LfX+j -VRCauLhiZRrnsMtaBQJfChkNhOXlfkV1w85pe+SLQJuhjcuq8auicBlT6mS8hcGx -neC1pFGD51afdeU8aPYey/niDkWlXVE1XENZ6iXu3Y5ZtukoiNm3O6ErBEtB9A5J -xDghKNSbcVyosQrbY71qsaBCkkYzqhSkqJQvRQImtE+baFo3CMtKFhq76OlQY7m7 -7MOQzkbBpzZonzKlnJmmT9pl52IOq1AglDMzuh7u/JtwSIdFkJ4dBx1Yz3d+OPFt -uZ5NseKtm5BvUp6TQZ6ACSOTK31biVMY7H6Jj+v0EYoR0GybJD2+jEMfbStHCXDA -hqqXvFGEB+p0jyRYtYnn763yMx5ppwYQzqg61mSiKZtMPmP3mLQMvIfU3dtRwAvG -sVX921r7AcrR8Tc+4xf9VgHs42Cq4TSAGbVrB7dbz6QTAUxw8bS/KaXHVRtmzuwg -JdmSqO07BViujIkV8xP0b+TMvg/3621HvEGum/01vsS/RC8lvrxl/vCmCaRwFRcm -rse5n1LI53gmKsP3AgMBAAEwDQYJKoZIhvcNAQELBQADggIBAJhPDVy1VTS34sXh -KIv9XnW5kPbugQdaEjNs3fiY85GgQriTlW26DliqHxWJ0DpVJr78DXjzjZi0TixO -6pVL24EMI6wKKONEUW/8x0cUmMm/KPCk4qPivWQAMYwL0n7jWsZHJxGTsGF+/fPE -bP5q0gFeDvHW8koErovB5bNZTSw3tGxWcgJOuq8Gj7ZlJnqEqfrz3reMusgg5+Xt -b1BqHar//z48VGqYQr6WfWsMwSXpEIU/c+9Bw6V3xT+fJRPgR63eUlHKvVe2gtMF -eZQpJV1Vbt/MZezrBi3ksVEX2AGrsZeuFyJ9ZMs54UzFGJ1NitG+84ZMloWTPvPC -bEeef0cmoAiu3vxWMC85uUWwIweS+tIGI/0zMS+gyNrT+Lp3MaiqAtBA0njsbs6I -vHPdJkUNwdjAmByGftPjSEvgb5ZwUqe74imjFNAphnvvH3fETP5XlAmHe1azOoVT -R9DITZQJGf3sg2X2BHzYfVjvIeVWln9yFeRGfkz8BjyburrPOqmYynJz3SkLfMfL -cnWcxmy5x8WOSSVSnMIb00bn9hqoxj9sivCdMTUsmeJWN6Xjw/uBNyaaxXZvrULi -r4wGinqqnsL8l+u2tK48xjG16EWHNIitcIf2t9gU/lfHKWBvdCR9qdhqhq/Mmndo -0VB6CPCMct11FJsEdRGkeYuC66I9 ------END CERTIFICATE----- diff --git a/nextcloudappstore/certificate/tests/data/certificates/owncloud.crt b/nextcloudappstore/certificate/tests/data/certificates/owncloud.crt deleted file mode 100644 index a83378a929a..00000000000 --- a/nextcloudappstore/certificate/tests/data/certificates/owncloud.crt +++ /dev/null @@ -1,66 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFtDCCA5ygAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwZTELMAkGA1UEBhMCVVMx -DzANBgNVBAgMBkJvc3RvbjEWMBQGA1UECgwNb3duQ2xvdWQgSW5jLjEtMCsGA1UE -Awwkb3duQ2xvdWQgQ29kZSBTaWduaW5nIFJvb3QgQXV0aG9yaXR5MB4XDTE2MDIw -MzE3NDMyNVoXDTI2MDEzMTE3NDMyNVowbTELMAkGA1UEBhMCVVMxDzANBgNVBAgM -BkJvc3RvbjEWMBQGA1UECgwNb3duQ2xvdWQgSW5jLjE1MDMGA1UEAwwsb3duQ2xv -dWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBBdXRob3JpdHkwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQDKMul4pWev6vtgzB73CLQPMy8nDZGbvqII -IgukQluMeLCW0P09I+J/mCiDd99mQTtWO+/LcpOChHYJ59qQz+g9TzKlVSuFDg47 -pc+jUvTLGGEDf9cAWtzsXYXlb9z7sTln/8JAvy8ghmaR/4JWU4hM/nmgDCpeXLLJ -NFrxKDbzPLYj53iHN+XyE9GT6sDYoQd1BIWhTsMdvMqg870Jw2yN4hKw3V7/KoI/ -Z5CAA9dP4tAmltBpMz79dmLCciqXOD8mWEWl2tSZU+/WVyPxiE19IHoJETOhSg4c -eud4DDdFt9Ohm4owvpxxRDbvV+Ic6sWb1gJBrM7/XJDmaUObpowjx8Daof1MuoHs -FKh6/Y7RBdVlrp/ig3htxfm9BBMqnXIxgFWDiSbjCMk0Ygvx49gKMnVoRhZ/7pla -j5nTRdbhsjS50E9zfc53EltM27YSwNZu62QKsU4yumg8UOhOYPRLHcySvNyyMZXS -o+Kst27oGSgurHytFS7FVG1M3UUn67zkMpnnMYhfx8dz7+tupY9e0l0kDciwvNAO -YrnvHoEiIbJmoyYOhL2j9WErUhAb3JKTSdYC0MmjaZZPv0HwCemx+rnApcoszmFG -woZTRAa6Q64WGxlmFq0vsgmcTNsTzlYY20Kv+ZpZOiVYonyHFkorKWdsXKZQcnYq -dcMqYxQE6wIDAQABo2YwZDAdBgNVHQ4EFgQUfZoNPRneQ1pk9SZT9A2lpG4Hw7Mw -HwYDVR0jBBgwFoAUcZdiBiGr+Y+OH2DrlNwK03zWH+YwEgYDVR0TAQH/BAgwBgEB -/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAA2hoAEdbdM9 -+ZA/q7UppF4BiKrSQNAQHLDwodutRY+gBYQsWpo8wLqdLvRVhlwDn3KmJEMfaDQm -5YM+/snBkew9olCIyYw+t7xYtNhoW1et/nNNDL+Qq7uyH6g+uOMp4m3c+BMv4x5H -EP3z7PY1qrPOVvzZu8o2iL8qpC0sXTKZy+xG/9VTYGnxCcG+V/Ua5aHOyetUttoN -bxEcEQHHe07V+JlCPuI53hPsiGgzHv+nz/1sJV95mn9w88SHY0JO9bHp9w+mq92K -r0Nv6Wctf7vNVmIOdRFHWOFie4+D3TpBSnB5PPQRbtf6IVEhjmcnWYBWcRGhH6cR -4dqpuqzwVFopIFLYMeaeKGu8wZHi2YRrkFcrnqqmFI9RtBbt3eyfUQcKH7b9P4Ri -qamb/h9sVjDM4wSQ6n+Qa2dgV28O0il35roa3qwvqySgn1wXS5CsAaeB1VWAS6/S -v1WFt93n9LrraV4EUuu1BGXp525aVn6v+B71zN4JzYnHVE4yAb0EdOpKrlfmCCm/ -9Z90+BF2uK3QnpkyrH+LEOQoHrlAt80RZYd2Tl/K1WWNrPUlnCGXdxjVYakVRnfy -Ud0KV4RsD93mNw/t2gU5U+SyYWU2fTJUE9qdJ4Ndw7B2DZ/5dcsu0rDV4sXkUoDY -+Dr25NoOcuqjCWRw2T3SBPSXBxjlhRTQ ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFsDCCA5igAwIBAgIJALFuk51OGp2KMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNV -BAYTAlVTMQ8wDQYDVQQIDAZCb3N0b24xFjAUBgNVBAoMDW93bkNsb3VkIEluYy4x -LTArBgNVBAMMJG93bkNsb3VkIENvZGUgU2lnbmluZyBSb290IEF1dGhvcml0eTAe -Fw0xNjAyMDMxNzM5NThaFw0yNjAxMzExNzM5NThaMGUxCzAJBgNVBAYTAlVTMQ8w -DQYDVQQIDAZCb3N0b24xFjAUBgNVBAoMDW93bkNsb3VkIEluYy4xLTArBgNVBAMM -JG93bkNsb3VkIENvZGUgU2lnbmluZyBSb290IEF1dGhvcml0eTCCAiIwDQYJKoZI -hvcNAQEBBQADggIPADCCAgoCggIBAJmTnGtGaB0cDtQPxWr2r5FyXFzJ6GIkm4Lb -7iY/DYpIEarbRFwqDCDZ00V+PWsTBBF6qXW5W7eZ+fOOdIEGoNaDuGtIlGVjj3Dz -TZtmcFg0euimfLNYVvYZlPPh4kS3zDRZs30AgAdgq4RHWC4qjElWcVKTwERNQ2ln -gRFRQEv+i2DI7sEK9ZpK7B1SfJ1o1fm/kPL7bVfiYda+QKp0vOxBecDnGV+rfz4t -DT6mBOgwAiZnwojuiigfUJxSisv3roWri+0O+0TiXglV+oUtkIRrs0etkQGWAlgn -H4CC+sZ5N2TiGPH1hksLkXP4mymlio8/x7ax0WfcxeTZu3ok9eK5fwIQVWam6dd9 -klCqZVttKodZYspvdFfwqMlf4lPEIY+r2PIdGjUhKu4FsDhORaGj8WMYRJUR44ls -/r2ktCB/TOsh8DW2Pi9HAgxI4mrdmvL0WMSOBFZRcSC/nTz977oi1iiB2T+s7V0Z -Y0AHMQYiIn83MFB7rb+mVlEoLID/evVSTfUaUaO8DqcfeQN/OFM/zcJY9YHv8AlJ -3b8CPdeX9edMnyZWNdrhOSawjAbOBIna3o66RXdeC3oWg7FuckJmy7JLtRCJ2Owu -losRAxe0z5mQmjFzMczxCYJQ4A+4U5UZwbd/MQJg508StcOumroYqruDic/Wbc3C -v6DupG8dAgMBAAGjYzBhMB0GA1UdDgQWBBRxl2IGIav5j44fYOuU3ArTfNYf5jAf -BgNVHSMEGDAWgBRxl2IGIav5j44fYOuU3ArTfNYf5jAPBgNVHRMBAf8EBTADAQH/ -MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAR6IZBOBw3KzRxvUP -+46RZYayMrdLyAgMzbDvQe7WCaeuA2UoPVL8jN7X2Lvw12Mz84+EKs1voR0OBxlY -6muuyl0SETa2k4UtklVscMvcokG+m5aVNJ7/HHGFmKsTyJDMxSzDA/r3KRPXZOwV -CLUVTkr5fQbIaVljA89U2p3pN/X7gNq89xi/XiszNCEIvvSscRmBGlRmx4XbjXHK -XKO74+HiM/ahqUI792ae97jlsy9jG4OIelse3+e1KBWNsGtU90asnUHgyMXVL8gp -ocznGvWceAhkcogUCUCXq1Rh/mKcGQdi2z0g/X+MGzfA9Ij4NQZLnNPh2UjgxCtG -KWPUzs0t/xoCtJh1WpwqTrOUcYqFAaBa282sD/O8tX4t076aGKdbhfo6tvaOFwDU -iRPgdMol++BFnfCld53Yivg2+S6+xo1wzuPkNjVFXHjx9vMyiov/HHKqJoBsuCwU -7VegzM/6Cvh32lSZfUHsfynCab/7vv923KyaANWxb0QsHZSSt+mmOK3ZmC96vCEa -55IGNckOvOGW9yCIz3Q0kEj2hoJs1bw0SkwGWs7N1TkugQjM/S7/Im1LJUxdtqQK -Zjn+8U6U3TR1aKLYEdqHCGcVoRXKDG/S40FHxyeV/9buTI7SSvhzZfj+qasmJe1L -Kd08UdS/im8RwbVSS1mih5hbAHg= ------END CERTIFICATE----- diff --git a/nextcloudappstore/certificate/tests/test_validator.py b/nextcloudappstore/certificate/tests/test_validator.py index 44bce46e57f..2dec7520c7f 100644 --- a/nextcloudappstore/certificate/tests/test_validator.py +++ b/nextcloudappstore/certificate/tests/test_validator.py @@ -7,11 +7,9 @@ from pymple import Container from nextcloudappstore.certificate.validator import ( - CertificateAppIdMismatchException, CertificateConfiguration, CertificateValidator, InvalidCertificateException, - InvalidSignatureException, ) from nextcloudappstore.core.facades import ( read_relative_file, @@ -25,53 +23,6 @@ def setUp(self) -> None: self.validator = self.container.resolve(CertificateValidator) self.config = self.container.resolve(CertificateConfiguration) - def test_get_cn(self) -> None: - cert = self._read_cert("app.crt") - self.assertEqual("folderplayer", self.validator.get_cn(cert)) - - def test_validate_app_id(self) -> None: - cert = self._read_cert("app.crt") - self.validator.validate_app_id(cert, "folderplayer") - - def test_validate_app_id_invalid(self) -> None: - cert = self._read_cert("app.crt") - with self.assertRaises(CertificateAppIdMismatchException): - self.validator.validate_app_id(cert, "/folderplayer") - - def test_validate_cert_signed(self) -> None: - cert = self._read_cert("app.crt") - chain = self._read_cert("owncloud.crt") - self.validator.validate_certificate(cert, chain) - - def test_validate_old_cert_signed(self) -> None: - cert = self._read_cert("news-old.crt") - chain = self._read_cert("owncloud.crt") - self.validator.validate_certificate(cert, chain) - - def test_validate_cert_not_signed(self) -> None: - cert = self._read_cert("app.crt") - chain = self._read_cert("imaginary.chain") - with self.assertRaises(InvalidCertificateException): - self.validator.validate_certificate(cert, chain) - - def test_signature(self) -> None: - cert = self._read_cert("news-old.crt") - sign = self._read_cert("news-old-minimal.sig") - checksum = self._read_bin_file("data/archives/minimal.tar.gz") - self.validator.validate_signature(cert, sign, checksum) - - def test_app_id_signature(self) -> None: - cert = self._read_cert("news-old.crt") - sign = self._read_cert("news-old-app-id.sig") - self.validator.validate_signature(cert, sign, b"news") - - def test_bad_signature(self) -> None: - cert = self._read_cert("news-old.crt") - sign = self._read_cert("bad-news-old-minimal.sig") - checksum = self._read_bin_file("data/archives/minimal.tar.gz") - with self.assertRaises(InvalidSignatureException): - self.validator.validate_signature(cert, sign, checksum) - def test_validate_cert_signed_not_on_crl(self) -> None: cert = self._read_cert("imaginary-revoked1.crt") chain = self._read_cert("imaginary.chain")