REUSE compliance of nextcloud/end_to_end_encryption

Congratulations, github.com/nextcloud/end_to_end_encryption is REUSE compliant! This project adopts the recommendations to make software licensing easy for humans and machines alike.

Badge

To add the badge to your project's README.md file, use the following snippet:

[![REUSE status](https://api.reuse.software/badge/github.com/nextcloud/end_to_end_encryption)](https://api.reuse.software/info/github.com/nextcloud/end_to_end_encryption)

Machine-readable information

The API provides machine-readable artifacts for automatic analysis.

  • All information about the latest compliance check can also be accessed via a machine-parsable JSON file.
  • You can gather the automatically generated SPDX SBOM in Tag:Value format, based on the reuse spdx command.

Last lint output

Commit 1bc81f8f89fc23564d92f4425e673f331b2e2840 was checked on 09 Mar 2025 09:07:46 UTC with the following result:

reuse._util - ERROR - Could not parse 'AGPL-3.0-or-later\n  -->\n\n<template>\n\t<NcSettingsSection :name=\"t('end_to_end_encryption', 'End-to-end encryption')\"\n\t\t:description=\"encryptionState\">\n\t\t<NcButton v-if=\"!shouldDisplayE2EEInBrowserWarning && userConfig['e2eeInBrowserEnabled'] === false\"\n\t\t\tclass=\"margin-bottom\"\n\t\t\t:disabled=\"!hasKey\"\n\t\t\ttype=\"secondary\"\n\t\t\t@click=\"shouldDisplayE2EEInBrowserWarning = true\">\n\t\t\t{{ t('end_to_end_encryption', 'Enable E2EE navigation in browser') }}\n\t\t</NcButton>\n\t\t<NcNoteCard v-else\n\t\t\tclass=\"notecard\"\n\t\t\ttype=\"warning\"\n\t\t\t:show-alert=\"true\"\n\t\t\t:heading=\"t('end_to_end_encryption', 'Enabling E2EE in the browser can weaken security')\">\n\t\t\t<NcButton v-if=\"userConfig['e2eeInBrowserEnabled'] === false\"\n\t\t\t\tclass=\"close-button\"\n\t\t\t\t:aria-label=\"t('end_to_end_encryption', 'Close')\"\n\t\t\t\ttype=\"tertiary-no-background\"\n\t\t\t\t@click=\"shouldDisplayE2EEInBrowserWarning = false\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconClose :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\n\t\t\t{{ t('end_to_end_encryption', 'The server could serve malicious source code to extract the secret that protects your files.') }}\n\n\t\t\t<NcCheckboxRadioSwitch :disabled=\"!hasKey\"\n\t\t\t\tdata-cy-e2ee-settings-setting=\"e2ee_in_browser_enabled\"\n\t\t\t\t:checked=\"userConfig.e2eeInBrowserEnabled\"\n\t\t\t\tclass=\"margin-bottom\"\n\t\t\t\ttype=\"switch\"\n\t\t\t\t@update:checked=\"value => setConfig('e2eeInBrowserEnabled', value)\">\n\t\t\t\t{{ t('end_to_end_encryption', 'Enable E2EE navigation in browser') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcNoteCard>\n\n\t\t<NcButton v-if=\"!shouldDisplayWarning\"\n\t\t\t:disabled=\"!hasKey\"\n\t\t\t:type=\"(hasKey && !shouldDisplayWarning) ? 'error' : 'secondary'\"\n\t\t\t@click=\"startResetProcess()\">\n\t\t\t{{ t('end_to_end_encryption', 'Reset end-to-end encryption') }}\n\t\t</NcButton>\n\t\t<NcNoteCard v-else\n\t\t\tclass=\"notecard\"\n\t\t\ttype=\"warning\"\n\t\t\t:show-alert=\"true\"\n\t\t\t:heading=\"t('end_to_end_encryption', 'Please read carefully before resetting your end-to-end encryption keys')\">\n\t\t\t<NcButton class=\"close-button\"\n\t\t\t\t:aria-label=\"t('end_to_end_encryption', 'Close')\"\n\t\t\t\ttype=\"tertiary-no-background\"\n\t\t\t\t@click=\"shouldDisplayWarning = false\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconClose :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\n\t\t\t<ul>\n\t\t\t\t<li>{{ t('end_to_end_encryption', 'Once your end-to-end encryption keys are reset, all files stored in your encrypted folder will be inaccessible.') }}</li>\n\t\t\t\t<li>{{ t('end_to_end_encryption', 'You should only reset your end-to-end encryption keys if you lost your secure key words (mnemonic).') }}</li>\n\t\t\t\t<li>{{ t('end_to_end_encryption', 'Check on all connected devices'
reuse._util - ERROR - 'js/end_to_end_encryption-settings.mjs.map' holds an SPDX expression that cannot be parsed, skipping the file
reuse._util - ERROR - Could not parse 'AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst getLogger = user => {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('end_to_end_encryption')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('end_to_end_encryption')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n"],"names":["getLogger","user","getLoggerBuilder","logger","getCurrentUser"],"mappings":"wEAQA,MAAMA,EAAYC,GACbA,IAAS,KACLC,EAAgB,EACrB,OAAO,uBAAuB,EAC9B,MAAK,EAEDA,EAAgB,EACrB,OAAO,uBAAuB,EAC9B,OAAOD,EAAK,GAAG,EACf,MAAK,EAGOE,EAAAH,EAAUI,EAAgB,CAAA"'
reuse._util - ERROR - 'js/logger-Cz85KJw3.chunk.mjs.map' holds an SPDX expression that cannot be parsed, skipping the file
reuse._util - ERROR - Could not parse 'AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { encryptStringAsymmetric, encryptWithAES, getRandomEncryptionParams } from './crypto.js'\nimport logger from './logger.js'\n\n/**\n * @typedef {object} FileMetadata\n * @property {string} filename - Original file name (ex: \"/foo/test.txt\")\n * @property {string} mimetype - Mimetype, if unknown use \"application/octet-s'
reuse._util - ERROR - 'js/end_to_end_encryption-filedrop.mjs.map' holds an SPDX expression that cannot be parsed, skipping the file
reuse._util - ERROR - Could not parse 'AGPL-3.0-or-later\n  -->\n\n<template>\n\t<NcSettingsSection :name=\"t('end_to_end_encryption', 'End-to-end encryption')\"\n\t\t:description=\"encryptionState\">\n\t\t<NcButton v-if=\"!shouldDisplayE2EEInBrowserWarning && userConfig['e2eeInBrowserEnabled'] === false\"\n\t\t\tclass=\"margin-bottom\"\n\t\t\t:disabled=\"!hasKey\"\n\t\t\ttype=\"secondary\"\n\t\t\t@click=\"shouldDisplayE2EEInBrowserWarning = true\">\n\t\t\t{{ t('end_to_end_encryption', 'Enable E2EE navigation in browser') }}\n\t\t</NcButton>\n\t\t<NcNoteCard v-else\n\t\t\tclass=\"notecard\"\n\t\t\ttype=\"warning\"\n\t\t\t:show-alert=\"true\"\n\t\t\t:heading=\"t('end_to_end_encryption', 'Enabling E2EE in the browser can weaken security')\">\n\t\t\t<NcButton v-if=\"userConfig['e2eeInBrowserEnabled'] === false\"\n\t\t\t\tclass=\"close-button\"\n\t\t\t\t:aria-label=\"t('end_to_end_encryption', 'Close')\"\n\t\t\t\ttype=\"tertiary-no-background\"\n\t\t\t\t@click=\"shouldDisplayE2EEInBrowserWarning = false\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconClose :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\n\t\t\t{{ t('end_to_end_encryption', 'The server could serve malicious source code to extract the secret that protects your files.') }}\n\n\t\t\t<NcCheckboxRadioSwitch :disabled=\"!hasKey\"\n\t\t\t\tdata-cy-e2ee-settings-setting=\"e2ee_in_browser_enabled\"\n\t\t\t\t:checked=\"userConfig.e2eeInBrowserEnabled\"\n\t\t\t\tclass=\"margin-bottom\"\n\t\t\t\ttype=\"switch\"\n\t\t\t\t@update:checked=\"value => setConfig('e2eeInBrowserEnabled', value)\">\n\t\t\t\t{{ t('end_to_end_encryption', 'Enable E2EE navigation in browser') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcNoteCard>\n\n\t\t<NcButton v-if=\"!shouldDisplayWarning\"\n\t\t\t:disabled=\"!hasKey\"\n\t\t\t:type=\"(hasKey && !shouldDisplayWarning) ? 'error' : 'secondary'\"\n\t\t\t@click=\"startResetProcess()\">\n\t\t\t{{ t('end_to_end_encryption', 'Reset end-to-end encryption') }}\n\t\t</NcButton>\n\t\t<NcNoteCard v-else\n\t\t\tclass=\"notecard\"\n\t\t\ttype=\"warning\"\n\t\t\t:show-alert=\"true\"\n\t\t\t:heading=\"t('end_to_end_encryption', 'Please read carefully before resetting your end-to-end encryption keys')\">\n\t\t\t<NcButton class=\"close-button\"\n\t\t\t\t:aria-label=\"t('end_to_end_encryption', 'Close')\"\n\t\t\t\ttype=\"tertiary-no-background\"\n\t\t\t\t@click=\"shouldDisplayWarning = false\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconClose :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\n\t\t\t<ul>\n\t\t\t\t<li>{{ t('end_to_end_encryption', 'Once your end-to-end encryption keys are reset, all files stored in your encrypted folder will be inaccessible.') }}</li>\n\t\t\t\t<li>{{ t('end_to_end_encryption', 'You should only reset your end-to-end encryption keys if you lost your secure key words (mnemonic).') }}</li>\n\t\t\t\t<li>{{ t('end_to_end_encryption', 'Check on all connected devices'
reuse._util - ERROR - 'js/end_to_end_encryption-settings.mjs.map' holds an SPDX expression that cannot be parsed, skipping the file
reuse._util - ERROR - Could not parse 'AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst getLogger = user => {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('end_to_end_encryption')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('end_to_end_encryption')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n"],"names":["getLogger","user","getLoggerBuilder","logger","getCurrentUser"],"mappings":"wEAQA,MAAMA,EAAYC,GACbA,IAAS,KACLC,EAAgB,EACrB,OAAO,uBAAuB,EAC9B,MAAK,EAEDA,EAAgB,EACrB,OAAO,uBAAuB,EAC9B,OAAOD,EAAK,GAAG,EACf,MAAK,EAGOE,EAAAH,EAAUI,EAAgB,CAAA"'
reuse._util - ERROR - 'js/logger-Cz85KJw3.chunk.mjs.map' holds an SPDX expression that cannot be parsed, skipping the file
reuse._util - ERROR - Could not parse 'AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { encryptStringAsymmetric, encryptWithAES, getRandomEncryptionParams } from './crypto.js'\nimport logger from './logger.js'\n\n/**\n * @typedef {object} FileMetadata\n * @property {string} filename - Original file name (ex: \"/foo/test.txt\")\n * @property {string} mimetype - Mimetype, if unknown use \"application/octet-s'
reuse._util - ERROR - 'js/end_to_end_encryption-filedrop.mjs.map' holds an SPDX expression that cannot be parsed, skipping the file

# SUMMARY

* Bad licenses: 0
* Deprecated licenses: 0
* Licenses without file extension: 0
* Missing licenses: 0
* Unused licenses: 0
* Used licenses: BSD-3-Clause, AGPL-3.0-or-later, Apache-2.0, CC0-1.0, MIT, MPL-2.0, GPL-3.0-or-later, ISC, 0BSD
* Read errors: 0
* Files with copyright information: 348 / 348
* Files with license information: 348 / 348

Congratulations! Your project is compliant with version 3.2 of the REUSE Specification :-)