diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 4ca9f26a..37fb5925 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -12,19 +12,8 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- php-version: ['8.1', '8.2']
- nextcloud-version: ['master', 'stable29', 'stable28', 'stable27']
- include:
- - php-version: '8.0'
- nextcloud-version: stable27
- - php-version: '8.0'
- nextcloud-version: stable28
- - php-version: '8.0'
- nextcloud-version: stable29
- - php-version: '8.3'
- nextcloud-version: stable29
- - php-version: '8.3'
- nextcloud-version: master
+ php-version: ['8.1', '8.2', '8.3']
+ nextcloud-version: ['master']
name: Nextcloud ${{ matrix.nextcloud-version }} php${{ matrix.php-version }} unit tests
steps:
- name: Set up Nextcloud env
@@ -57,14 +46,11 @@ jobs:
- php-version: '8.1'
nextcloud-version: master
db: 'oci'
- - php-version: '8.0'
- nextcloud-version: stable27
- db: 'pgsql'
- - php-version: '8.0'
- nextcloud-version: stable28
+ - php-version: '8.1'
+ nextcloud-version: master
db: 'pgsql'
- php-version: '8.2'
- nextcloud-version: stable29
+ nextcloud-version: master
db: 'mysql'
name: Nextcloud ${{ matrix.nextcloud-version }} php${{ matrix.php-version }}-${{ matrix.db }} integration tests
services:
@@ -153,8 +139,8 @@ jobs:
name: Front-end E2E tests
strategy:
matrix:
- php-version: [ '8.1' ]
- nextcloud-version: [ 'master', 'stable29', 'stable28', 'stable27' ]
+ php-version: [ '8.1', '8.2', '8.3' ]
+ nextcloud-version: [ 'master']
node-version: [ '20' ]
steps:
- name: Set up Nextcloud env
@@ -211,5 +197,8 @@ jobs:
name: playwright-report
path: nextcloud/apps/twofactor_webauthn/playwright-report/
retention-days: 30
+ - name: Print server logs
+ if: always()
+ run: cat nextcloud/data/nextcloud.log*
env:
CI: true
diff --git a/appinfo/info.xml b/appinfo/info.xml
index f073a649..734af5c7 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -4,10 +4,11 @@
Two-Factor WebAuthn
WebAuthn two-factor provider
A two-factor provider for WebAuthn devices
- 1.5.0-alpha.1
+ 2.0.0-alpha.1
agpl
Christoph Wurst
Michael Blumenstein
+ Richard Steinmetz
TwoFactorWebauthn
security
@@ -18,9 +19,9 @@
https://raw.githubusercontent.com/nextcloud/twofactor_webauthn/main/screenshots/challenge.png
-
+
gmp
-
+
diff --git a/composer.json b/composer.json
index d1e10e99..08ff02c2 100644
--- a/composer.json
+++ b/composer.json
@@ -12,10 +12,10 @@
}
],
"require": {
- "php": ">=8.0.0",
+ "php": ">=8.1.0",
"ext-json": "*",
"bamarni/composer-bin-plugin": "^1.8.2",
- "web-auth/webauthn-lib": "^3.3.12"
+ "web-auth/webauthn-lib": "^4.8.5"
},
"require-dev": {
"christophwurst/nextcloud_testing": "^1.0.0",
@@ -45,7 +45,7 @@
"optimize-autoloader": true,
"classmap-authoritative": true,
"platform": {
- "php": "8.0.0"
+ "php": "8.1.0"
},
"sort-packages": true,
"allow-plugins": {
diff --git a/composer.lock b/composer.lock
index 2af66fe0..d4f2fad0 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "4207a40653b2cb2bde94bf45c8f6c5d3",
+ "content-hash": "41ffdba6a3d3af0a5a5b5dbe67b98144",
"packages": [
{
"name": "bamarni/composer-bin-plugin",
@@ -64,168 +64,154 @@
"time": "2022-10-31T08:38:03+00:00"
},
{
- "name": "beberlei/assert",
- "version": "v3.3.2",
+ "name": "brick/math",
+ "version": "0.12.1",
"source": {
"type": "git",
- "url": "https://github.com/beberlei/assert.git",
- "reference": "cb70015c04be1baee6f5f5c953703347c0ac1655"
+ "url": "https://github.com/brick/math.git",
+ "reference": "f510c0a40911935b77b86859eb5223d58d660df1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/beberlei/assert/zipball/cb70015c04be1baee6f5f5c953703347c0ac1655",
- "reference": "cb70015c04be1baee6f5f5c953703347c0ac1655",
+ "url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1",
+ "reference": "f510c0a40911935b77b86859eb5223d58d660df1",
"shasum": ""
},
"require": {
- "ext-ctype": "*",
- "ext-json": "*",
- "ext-mbstring": "*",
- "ext-simplexml": "*",
- "php": "^7.0 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "*",
- "phpstan/phpstan": "*",
- "phpunit/phpunit": ">=6.0.0",
- "yoast/phpunit-polyfills": "^0.1.0"
- },
- "suggest": {
- "ext-intl": "Needed to allow Assertion::count(), Assertion::isCountable(), Assertion::minCount(), and Assertion::maxCount() to operate on ResourceBundles"
+ "php-coveralls/php-coveralls": "^2.2",
+ "phpunit/phpunit": "^10.1",
+ "vimeo/psalm": "5.16.0"
},
"type": "library",
"autoload": {
- "files": [
- "lib/Assert/functions.php"
- ],
"psr-4": {
- "Assert\\": "lib/Assert"
+ "Brick\\Math\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-2-Clause"
- ],
- "authors": [
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de",
- "role": "Lead Developer"
- },
- {
- "name": "Richard Quadling",
- "email": "rquadling@gmail.com",
- "role": "Collaborator"
- }
+ "MIT"
],
- "description": "Thin assertion library for input validation in business models.",
+ "description": "Arbitrary-precision arithmetic library",
"keywords": [
- "assert",
- "assertion",
- "validation"
+ "Arbitrary-precision",
+ "BigInteger",
+ "BigRational",
+ "arithmetic",
+ "bigdecimal",
+ "bignum",
+ "bignumber",
+ "brick",
+ "decimal",
+ "integer",
+ "math",
+ "mathematics",
+ "rational"
],
"support": {
- "issues": "https://github.com/beberlei/assert/issues",
- "source": "https://github.com/beberlei/assert/tree/v3.3.2"
+ "issues": "https://github.com/brick/math/issues",
+ "source": "https://github.com/brick/math/tree/0.12.1"
},
- "time": "2021-12-16T21:41:27+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/BenMorel",
+ "type": "github"
+ }
+ ],
+ "time": "2023-11-29T23:19:16+00:00"
},
{
- "name": "brick/math",
- "version": "0.9.3",
+ "name": "lcobucci/clock",
+ "version": "3.0.0",
"source": {
"type": "git",
- "url": "https://github.com/brick/math.git",
- "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae"
+ "url": "https://github.com/lcobucci/clock.git",
+ "reference": "039ef98c6b57b101d10bd11d8fdfda12cbd996dc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae",
- "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae",
+ "url": "https://api.github.com/repos/lcobucci/clock/zipball/039ef98c6b57b101d10bd11d8fdfda12cbd996dc",
+ "reference": "039ef98c6b57b101d10bd11d8fdfda12cbd996dc",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "php": "^7.1 || ^8.0"
+ "php": "~8.1.0 || ~8.2.0",
+ "psr/clock": "^1.0"
+ },
+ "provide": {
+ "psr/clock-implementation": "1.0"
},
"require-dev": {
- "php-coveralls/php-coveralls": "^2.2",
- "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0",
- "vimeo/psalm": "4.9.2"
+ "infection/infection": "^0.26",
+ "lcobucci/coding-standard": "^9.0",
+ "phpstan/extension-installer": "^1.2",
+ "phpstan/phpstan": "^1.9.4",
+ "phpstan/phpstan-deprecation-rules": "^1.1.1",
+ "phpstan/phpstan-phpunit": "^1.3.2",
+ "phpstan/phpstan-strict-rules": "^1.4.4",
+ "phpunit/phpunit": "^9.5.27"
},
"type": "library",
"autoload": {
"psr-4": {
- "Brick\\Math\\": "src/"
+ "Lcobucci\\Clock\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "description": "Arbitrary-precision arithmetic library",
- "keywords": [
- "Arbitrary-precision",
- "BigInteger",
- "BigRational",
- "arithmetic",
- "bigdecimal",
- "bignum",
- "brick",
- "math"
+ "authors": [
+ {
+ "name": "Luís Cobucci",
+ "email": "lcobucci@gmail.com"
+ }
],
+ "description": "Yet another clock abstraction",
"support": {
- "issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.9.3"
+ "issues": "https://github.com/lcobucci/clock/issues",
+ "source": "https://github.com/lcobucci/clock/tree/3.0.0"
},
"funding": [
{
- "url": "https://github.com/BenMorel",
+ "url": "https://github.com/lcobucci",
"type": "github"
},
{
- "url": "https://tidelift.com/funding/github/packagist/brick/math",
- "type": "tidelift"
+ "url": "https://www.patreon.com/lcobucci",
+ "type": "patreon"
}
],
- "time": "2021-08-15T20:50:18+00:00"
+ "time": "2022-12-19T15:00:24+00:00"
},
{
- "name": "fgrosse/phpasn1",
- "version": "v2.5.0",
+ "name": "paragonie/constant_time_encoding",
+ "version": "v2.6.3",
"source": {
"type": "git",
- "url": "https://github.com/fgrosse/PHPASN1.git",
- "reference": "42060ed45344789fb9f21f9f1864fc47b9e3507b"
+ "url": "https://github.com/paragonie/constant_time_encoding.git",
+ "reference": "58c3f47f650c94ec05a151692652a868995d2938"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/fgrosse/PHPASN1/zipball/42060ed45344789fb9f21f9f1864fc47b9e3507b",
- "reference": "42060ed45344789fb9f21f9f1864fc47b9e3507b",
+ "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/58c3f47f650c94ec05a151692652a868995d2938",
+ "reference": "58c3f47f650c94ec05a151692652a868995d2938",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "php": "^7|^8"
},
"require-dev": {
- "php-coveralls/php-coveralls": "~2.0",
- "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
- },
- "suggest": {
- "ext-bcmath": "BCmath is the fallback extension for big integer calculations",
- "ext-curl": "For loading OID information from the web if they have not bee defined statically",
- "ext-gmp": "GMP is the preferred extension for big integer calculations",
- "phpseclib/bcmath_compat": "BCmath polyfill for servers where neither GMP nor BCmath is available"
+ "phpunit/phpunit": "^6|^7|^8|^9",
+ "vimeo/psalm": "^1|^2|^3|^4"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
"autoload": {
"psr-4": {
- "FG\\": "lib/"
+ "ParagonIE\\ConstantTime\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -234,87 +220,61 @@
],
"authors": [
{
- "name": "Friedrich Große",
- "email": "friedrich.grosse@gmail.com",
- "homepage": "https://github.com/FGrosse",
- "role": "Author"
+ "name": "Paragon Initiative Enterprises",
+ "email": "security@paragonie.com",
+ "homepage": "https://paragonie.com",
+ "role": "Maintainer"
},
{
- "name": "All contributors",
- "homepage": "https://github.com/FGrosse/PHPASN1/contributors"
+ "name": "Steve 'Sc00bz' Thomas",
+ "email": "steve@tobtu.com",
+ "homepage": "https://www.tobtu.com",
+ "role": "Original Developer"
}
],
- "description": "A PHP Framework that allows you to encode and decode arbitrary ASN.1 structures using the ITU-T X.690 Encoding Rules.",
- "homepage": "https://github.com/FGrosse/PHPASN1",
+ "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)",
"keywords": [
- "DER",
- "asn.1",
- "asn1",
- "ber",
- "binary",
- "decoding",
+ "base16",
+ "base32",
+ "base32_decode",
+ "base32_encode",
+ "base64",
+ "base64_decode",
+ "base64_encode",
+ "bin2hex",
"encoding",
- "x.509",
- "x.690",
- "x509",
- "x690"
+ "hex",
+ "hex2bin",
+ "rfc4648"
],
"support": {
- "issues": "https://github.com/fgrosse/PHPASN1/issues",
- "source": "https://github.com/fgrosse/PHPASN1/tree/v2.5.0"
+ "email": "info@paragonie.com",
+ "issues": "https://github.com/paragonie/constant_time_encoding/issues",
+ "source": "https://github.com/paragonie/constant_time_encoding"
},
- "abandoned": true,
- "time": "2022-12-19T11:08:26+00:00"
+ "time": "2022-06-14T06:56:20+00:00"
},
{
- "name": "league/uri",
- "version": "6.7.2",
+ "name": "psr/clock",
+ "version": "1.0.0",
"source": {
"type": "git",
- "url": "https://github.com/thephpleague/uri.git",
- "reference": "d3b50812dd51f3fbf176344cc2981db03d10fe06"
+ "url": "https://github.com/php-fig/clock.git",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/uri/zipball/d3b50812dd51f3fbf176344cc2981db03d10fe06",
- "reference": "d3b50812dd51f3fbf176344cc2981db03d10fe06",
+ "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "league/uri-interfaces": "^2.3",
- "php": "^7.4 || ^8.0",
- "psr/http-message": "^1.0"
- },
- "conflict": {
- "league/uri-schemes": "^1.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^v3.3.2",
- "nyholm/psr7": "^1.5",
- "php-http/psr7-integration-tests": "^1.1",
- "phpstan/phpstan": "^1.2.0",
- "phpstan/phpstan-deprecation-rules": "^1.0",
- "phpstan/phpstan-phpunit": "^1.0.0",
- "phpstan/phpstan-strict-rules": "^1.1.0",
- "phpunit/phpunit": "^9.5.10",
- "psr/http-factory": "^1.0"
- },
- "suggest": {
- "ext-fileinfo": "Needed to create Data URI from a filepath",
- "ext-intl": "Needed to improve host validation",
- "league/uri-components": "Needed to easily manipulate URI objects",
- "psr/http-factory": "Needed to use the URI factory"
+ "php": "^7.0 || ^8.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "6.x-dev"
- }
- },
"autoload": {
"psr-4": {
- "League\\Uri\\": "src"
+ "Psr\\Clock\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -323,86 +283,51 @@
],
"authors": [
{
- "name": "Ignace Nyamagana Butera",
- "email": "nyamsprod@gmail.com",
- "homepage": "https://nyamsprod.com"
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
}
],
- "description": "URI manipulation library",
- "homepage": "https://uri.thephpleague.com",
+ "description": "Common interface for reading the clock.",
+ "homepage": "https://github.com/php-fig/clock",
"keywords": [
- "data-uri",
- "file-uri",
- "ftp",
- "hostname",
- "http",
- "https",
- "middleware",
- "parse_str",
- "parse_url",
- "psr-7",
- "query-string",
- "querystring",
- "rfc3986",
- "rfc3987",
- "rfc6570",
- "uri",
- "uri-template",
- "url",
- "ws"
+ "clock",
+ "now",
+ "psr",
+ "psr-20",
+ "time"
],
"support": {
- "docs": "https://uri.thephpleague.com",
- "forum": "https://thephpleague.slack.com",
- "issues": "https://github.com/thephpleague/uri/issues",
- "source": "https://github.com/thephpleague/uri/tree/6.7.2"
+ "issues": "https://github.com/php-fig/clock/issues",
+ "source": "https://github.com/php-fig/clock/tree/1.0.0"
},
- "funding": [
- {
- "url": "https://github.com/sponsors/nyamsprod",
- "type": "github"
- }
- ],
- "time": "2022-09-13T19:50:42+00:00"
+ "time": "2022-11-25T14:36:26+00:00"
},
{
- "name": "league/uri-interfaces",
- "version": "2.3.0",
+ "name": "psr/event-dispatcher",
+ "version": "1.0.0",
"source": {
"type": "git",
- "url": "https://github.com/thephpleague/uri-interfaces.git",
- "reference": "00e7e2943f76d8cb50c7dfdc2f6dee356e15e383"
+ "url": "https://github.com/php-fig/event-dispatcher.git",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/00e7e2943f76d8cb50c7dfdc2f6dee356e15e383",
- "reference": "00e7e2943f76d8cb50c7dfdc2f6dee356e15e383",
+ "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "php": "^7.2 || ^8.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^2.19",
- "phpstan/phpstan": "^0.12.90",
- "phpstan/phpstan-phpunit": "^0.12.19",
- "phpstan/phpstan-strict-rules": "^0.12.9",
- "phpunit/phpunit": "^8.5.15 || ^9.5"
- },
- "suggest": {
- "ext-intl": "to use the IDNA feature",
- "symfony/intl": "to use the IDNA feature via Symfony Polyfill"
+ "php": ">=7.2.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.x-dev"
+ "dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
- "League\\Uri\\": "src/"
+ "Psr\\EventDispatcher\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -411,30 +336,21 @@
],
"authors": [
{
- "name": "Ignace Nyamagana Butera",
- "email": "nyamsprod@gmail.com",
- "homepage": "https://nyamsprod.com"
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
}
],
- "description": "Common interface for URI representation",
- "homepage": "http://github.com/thephpleague/uri-interfaces",
+ "description": "Standard interfaces for event handling.",
"keywords": [
- "rfc3986",
- "rfc3987",
- "uri",
- "url"
+ "events",
+ "psr",
+ "psr-14"
],
"support": {
- "issues": "https://github.com/thephpleague/uri-interfaces/issues",
- "source": "https://github.com/thephpleague/uri-interfaces/tree/2.3.0"
+ "issues": "https://github.com/php-fig/event-dispatcher/issues",
+ "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
},
- "funding": [
- {
- "url": "https://github.com/sponsors/nyamsprod",
- "type": "github"
- }
- ],
- "time": "2021-06-28T04:27:21+00:00"
+ "time": "2019-01-08T18:20:26+00:00"
},
{
"name": "psr/http-client",
@@ -545,16 +461,16 @@
},
{
"name": "psr/http-message",
- "version": "1.1",
+ "version": "2.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-message.git",
- "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba"
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
- "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
"shasum": ""
},
"require": {
@@ -563,7 +479,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1.x-dev"
+ "dev-master": "2.0.x-dev"
}
},
"autoload": {
@@ -578,7 +494,7 @@
"authors": [
{
"name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for HTTP messages",
@@ -592,36 +508,36 @@
"response"
],
"support": {
- "source": "https://github.com/php-fig/http-message/tree/1.1"
+ "source": "https://github.com/php-fig/http-message/tree/2.0"
},
- "time": "2023-04-04T09:50:52+00:00"
+ "time": "2023-04-04T09:54:51+00:00"
},
{
"name": "psr/log",
- "version": "1.1.4",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
+ "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
+ "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=8.0.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1.x-dev"
+ "dev-master": "3.x-dev"
}
},
"autoload": {
"psr-4": {
- "Psr\\Log\\": "Psr/Log/"
+ "Psr\\Log\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -642,296 +558,46 @@
"psr-3"
],
"support": {
- "source": "https://github.com/php-fig/log/tree/1.1.4"
- },
- "time": "2021-05-03T11:20:27+00:00"
- },
- {
- "name": "ramsey/collection",
- "version": "1.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/ramsey/collection.git",
- "reference": "ad7475d1c9e70b190ecffc58f2d989416af339b4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/ramsey/collection/zipball/ad7475d1c9e70b190ecffc58f2d989416af339b4",
- "reference": "ad7475d1c9e70b190ecffc58f2d989416af339b4",
- "shasum": ""
- },
- "require": {
- "php": "^7.4 || ^8.0",
- "symfony/polyfill-php81": "^1.23"
- },
- "require-dev": {
- "captainhook/plugin-composer": "^5.3",
- "ergebnis/composer-normalize": "^2.28.3",
- "fakerphp/faker": "^1.21",
- "hamcrest/hamcrest-php": "^2.0",
- "jangregor/phpstan-prophecy": "^1.0",
- "mockery/mockery": "^1.5",
- "php-parallel-lint/php-console-highlighter": "^1.0",
- "php-parallel-lint/php-parallel-lint": "^1.3",
- "phpcsstandards/phpcsutils": "^1.0.0-rc1",
- "phpspec/prophecy-phpunit": "^2.0",
- "phpstan/extension-installer": "^1.2",
- "phpstan/phpstan": "^1.9",
- "phpstan/phpstan-mockery": "^1.1",
- "phpstan/phpstan-phpunit": "^1.3",
- "phpunit/phpunit": "^9.5",
- "psalm/plugin-mockery": "^1.1",
- "psalm/plugin-phpunit": "^0.18.4",
- "ramsey/coding-standard": "^2.0.3",
- "ramsey/conventional-commits": "^1.3",
- "vimeo/psalm": "^5.4"
- },
- "type": "library",
- "extra": {
- "captainhook": {
- "force-install": true
- },
- "ramsey/conventional-commits": {
- "configFile": "conventional-commits.json"
- }
- },
- "autoload": {
- "psr-4": {
- "Ramsey\\Collection\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ben Ramsey",
- "email": "ben@benramsey.com",
- "homepage": "https://benramsey.com"
- }
- ],
- "description": "A PHP library for representing and manipulating collections.",
- "keywords": [
- "array",
- "collection",
- "hash",
- "map",
- "queue",
- "set"
- ],
- "support": {
- "issues": "https://github.com/ramsey/collection/issues",
- "source": "https://github.com/ramsey/collection/tree/1.3.0"
- },
- "funding": [
- {
- "url": "https://github.com/ramsey",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/ramsey/collection",
- "type": "tidelift"
- }
- ],
- "time": "2022-12-27T19:12:24+00:00"
- },
- {
- "name": "ramsey/uuid",
- "version": "4.2.3",
- "source": {
- "type": "git",
- "url": "https://github.com/ramsey/uuid.git",
- "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df",
- "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df",
- "shasum": ""
- },
- "require": {
- "brick/math": "^0.8 || ^0.9",
- "ext-json": "*",
- "php": "^7.2 || ^8.0",
- "ramsey/collection": "^1.0",
- "symfony/polyfill-ctype": "^1.8",
- "symfony/polyfill-php80": "^1.14"
- },
- "replace": {
- "rhumsaa/uuid": "self.version"
- },
- "require-dev": {
- "captainhook/captainhook": "^5.10",
- "captainhook/plugin-composer": "^5.3",
- "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
- "doctrine/annotations": "^1.8",
- "ergebnis/composer-normalize": "^2.15",
- "mockery/mockery": "^1.3",
- "moontoast/math": "^1.1",
- "paragonie/random-lib": "^2",
- "php-mock/php-mock": "^2.2",
- "php-mock/php-mock-mockery": "^1.3",
- "php-parallel-lint/php-parallel-lint": "^1.1",
- "phpbench/phpbench": "^1.0",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-mockery": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
- "phpunit/phpunit": "^8.5 || ^9",
- "slevomat/coding-standard": "^7.0",
- "squizlabs/php_codesniffer": "^3.5",
- "vimeo/psalm": "^4.9"
- },
- "suggest": {
- "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
- "ext-ctype": "Enables faster processing of character classification using ctype functions.",
- "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
- "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
- "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
- "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "4.x-dev"
- },
- "captainhook": {
- "force-install": true
- }
- },
- "autoload": {
- "files": [
- "src/functions.php"
- ],
- "psr-4": {
- "Ramsey\\Uuid\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).",
- "keywords": [
- "guid",
- "identifier",
- "uuid"
- ],
- "support": {
- "issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.2.3"
- },
- "funding": [
- {
- "url": "https://github.com/ramsey",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid",
- "type": "tidelift"
- }
- ],
- "time": "2021-09-25T23:10:38+00:00"
- },
- {
- "name": "spomky-labs/base64url",
- "version": "v2.0.4",
- "source": {
- "type": "git",
- "url": "https://github.com/Spomky-Labs/base64url.git",
- "reference": "7752ce931ec285da4ed1f4c5aa27e45e097be61d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Spomky-Labs/base64url/zipball/7752ce931ec285da4ed1f4c5aa27e45e097be61d",
- "reference": "7752ce931ec285da4ed1f4c5aa27e45e097be61d",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "require-dev": {
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^0.11|^0.12",
- "phpstan/phpstan-beberlei-assert": "^0.11|^0.12",
- "phpstan/phpstan-deprecation-rules": "^0.11|^0.12",
- "phpstan/phpstan-phpunit": "^0.11|^0.12",
- "phpstan/phpstan-strict-rules": "^0.11|^0.12"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Base64Url\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Florent Morselli",
- "homepage": "https://github.com/Spomky-Labs/base64url/contributors"
- }
- ],
- "description": "Base 64 URL Safe Encoding/Decoding PHP Library",
- "homepage": "https://github.com/Spomky-Labs/base64url",
- "keywords": [
- "base64",
- "rfc4648",
- "safe",
- "url"
- ],
- "support": {
- "issues": "https://github.com/Spomky-Labs/base64url/issues",
- "source": "https://github.com/Spomky-Labs/base64url/tree/v2.0.4"
+ "source": "https://github.com/php-fig/log/tree/3.0.0"
},
- "funding": [
- {
- "url": "https://github.com/Spomky",
- "type": "github"
- },
- {
- "url": "https://www.patreon.com/FlorentMorselli",
- "type": "patreon"
- }
- ],
- "time": "2020-11-03T09:10:25+00:00"
+ "time": "2021-07-14T16:46:02+00:00"
},
{
"name": "spomky-labs/cbor-php",
- "version": "v2.1.0",
+ "version": "3.0.4",
"source": {
"type": "git",
"url": "https://github.com/Spomky-Labs/cbor-php.git",
- "reference": "28e2712cfc0b48fae661a48ffc6896d7abe83684"
+ "reference": "658ed12a85a6b31fa312b89cd92f3a4ce6df4c6b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Spomky-Labs/cbor-php/zipball/28e2712cfc0b48fae661a48ffc6896d7abe83684",
- "reference": "28e2712cfc0b48fae661a48ffc6896d7abe83684",
+ "url": "https://api.github.com/repos/Spomky-Labs/cbor-php/zipball/658ed12a85a6b31fa312b89cd92f3a4ce6df4c6b",
+ "reference": "658ed12a85a6b31fa312b89cd92f3a4ce6df4c6b",
"shasum": ""
},
"require": {
- "brick/math": "^0.8.15|^0.9.0",
+ "brick/math": "^0.9|^0.10|^0.11|^0.12",
"ext-mbstring": "*",
- "php": ">=7.3"
+ "php": ">=8.0"
},
"require-dev": {
"ekino/phpstan-banned-code": "^1.0",
"ext-json": "*",
- "infection/infection": "^0.18|^0.25",
+ "infection/infection": "^0.27",
+ "php-parallel-lint/php-parallel-lint": "^1.3",
"phpstan/extension-installer": "^1.1",
"phpstan/phpstan": "^1.0",
"phpstan/phpstan-beberlei-assert": "^1.0",
"phpstan/phpstan-deprecation-rules": "^1.0",
"phpstan/phpstan-phpunit": "^1.0",
"phpstan/phpstan-strict-rules": "^1.0",
- "phpunit/phpunit": "^9.5",
- "rector/rector": "^0.12",
+ "phpunit/phpunit": "^10.1",
+ "qossmic/deptrac-shim": "^1.0",
+ "rector/rector": "^0.19",
"roave/security-advisories": "dev-latest",
- "symplify/easy-coding-standard": "^10.0"
+ "symfony/var-dumper": "^6.0|^7.0",
+ "symplify/easy-coding-standard": "^12.0"
},
"suggest": {
"ext-bcmath": "GMP or BCMath extensions will drastically improve the library performance. BCMath extension needed to handle the Big Float and Decimal Fraction Tags",
@@ -965,7 +631,7 @@
],
"support": {
"issues": "https://github.com/Spomky-Labs/cbor-php/issues",
- "source": "https://github.com/Spomky-Labs/cbor-php/tree/v2.1.0"
+ "source": "https://github.com/Spomky-Labs/cbor-php/tree/3.0.4"
},
"funding": [
{
@@ -977,47 +643,56 @@
"type": "patreon"
}
],
- "time": "2021-12-13T12:46:26+00:00"
+ "time": "2024-01-29T20:33:48+00:00"
},
{
- "name": "symfony/polyfill-ctype",
- "version": "v1.28.0",
+ "name": "spomky-labs/pki-framework",
+ "version": "1.2.1",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb"
+ "url": "https://github.com/Spomky-Labs/pki-framework.git",
+ "reference": "0b10c8b53366729417d6226ae89a665f9e2d61b6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
- "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
+ "url": "https://api.github.com/repos/Spomky-Labs/pki-framework/zipball/0b10c8b53366729417d6226ae89a665f9e2d61b6",
+ "reference": "0b10c8b53366729417d6226ae89a665f9e2d61b6",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "brick/math": "^0.10|^0.11|^0.12",
+ "ext-mbstring": "*",
+ "php": ">=8.1"
},
- "provide": {
- "ext-ctype": "*"
+ "require-dev": {
+ "ekino/phpstan-banned-code": "^1.0",
+ "ext-gmp": "*",
+ "ext-openssl": "*",
+ "infection/infection": "^0.28",
+ "php-parallel-lint/php-parallel-lint": "^1.3",
+ "phpstan/extension-installer": "^1.3",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-beberlei-assert": "^1.0",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/phpstan-strict-rules": "^1.3",
+ "phpunit/phpunit": "^10.1|^11.0",
+ "rector/rector": "^1.0",
+ "roave/security-advisories": "dev-latest",
+ "symfony/phpunit-bridge": "^6.4|^7.0",
+ "symfony/string": "^6.4|^7.0",
+ "symfony/var-dumper": "^6.4|^7.0",
+ "symplify/easy-coding-standard": "^12.0"
},
"suggest": {
- "ext-ctype": "For best performance"
+ "ext-bcmath": "For better performance (or GMP)",
+ "ext-gmp": "For better performance (or BCMath)",
+ "ext-openssl": "For OpenSSL based cyphering"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
"autoload": {
- "files": [
- "bootstrap.php"
- ],
"psr-4": {
- "Symfony\\Polyfill\\Ctype\\": ""
+ "SpomkyLabs\\Pki\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1026,77 +701,91 @@
],
"authors": [
{
- "name": "Gert de Pagter",
- "email": "BackEndTea@gmail.com"
+ "name": "Joni Eskelinen",
+ "email": "jonieske@gmail.com",
+ "role": "Original developer"
},
{
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Florent Morselli",
+ "email": "florent.morselli@spomky-labs.com",
+ "role": "Spomky-Labs PKI Framework developer"
}
],
- "description": "Symfony polyfill for ctype functions",
- "homepage": "https://symfony.com",
+ "description": "A PHP framework for managing Public Key Infrastructures. It comprises X.509 public key certificates, attribute certificates, certification requests and certification path validation.",
+ "homepage": "https://github.com/spomky-labs/pki-framework",
"keywords": [
- "compatibility",
- "ctype",
- "polyfill",
- "portable"
+ "DER",
+ "Private Key",
+ "ac",
+ "algorithm identifier",
+ "asn.1",
+ "asn1",
+ "attribute certificate",
+ "certificate",
+ "certification request",
+ "cryptography",
+ "csr",
+ "decrypt",
+ "ec",
+ "encrypt",
+ "pem",
+ "pkcs",
+ "public key",
+ "rsa",
+ "sign",
+ "signature",
+ "verify",
+ "x.509",
+ "x.690",
+ "x509",
+ "x690"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0"
+ "issues": "https://github.com/Spomky-Labs/pki-framework/issues",
+ "source": "https://github.com/Spomky-Labs/pki-framework/tree/1.2.1"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/Spomky",
"type": "github"
},
{
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
+ "url": "https://www.patreon.com/FlorentMorselli",
+ "type": "patreon"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2024-03-30T18:03:49+00:00"
},
{
- "name": "symfony/polyfill-php80",
- "version": "v1.28.0",
+ "name": "symfony/deprecation-contracts",
+ "version": "v3.4.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5"
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
- "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
+ "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.28-dev"
+ "dev-main": "3.4-dev"
},
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
}
},
"autoload": {
"files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php80\\": ""
- },
- "classmap": [
- "Resources/stubs"
+ "function.php"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -1104,10 +793,6 @@
"MIT"
],
"authors": [
- {
- "name": "Ion Bazan",
- "email": "ion.bazan@gmail.com"
- },
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
@@ -1117,16 +802,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0"
},
"funding": [
{
@@ -1142,30 +821,33 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2023-05-23T14:45:45+00:00"
},
{
- "name": "symfony/polyfill-php81",
- "version": "v1.28.0",
+ "name": "symfony/polyfill-uuid",
+ "version": "v1.29.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b"
+ "url": "https://github.com/symfony/polyfill-uuid.git",
+ "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b",
- "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b",
+ "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/3abdd21b0ceaa3000ee950097bc3cf9efc137853",
+ "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
+ "provide": {
+ "ext-uuid": "*"
+ },
+ "suggest": {
+ "ext-uuid": "For best performance"
+ },
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -1176,11 +858,8 @@
"bootstrap.php"
],
"psr-4": {
- "Symfony\\Polyfill\\Php81\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
+ "Symfony\\Polyfill\\Uuid\\": ""
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1188,24 +867,24 @@
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
+ "description": "Symfony polyfill for uuid functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
- "shim"
+ "uuid"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-uuid/tree/v1.29.0"
},
"funding": [
{
@@ -1221,30 +900,33 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
- "name": "symfony/process",
- "version": "v5.4.28",
+ "name": "symfony/uid",
+ "version": "v6.4.3",
"source": {
"type": "git",
- "url": "https://github.com/symfony/process.git",
- "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b"
+ "url": "https://github.com/symfony/uid.git",
+ "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b",
- "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/1d31267211cc3a2fff32bcfc7c1818dac41b6fc0",
+ "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/polyfill-uuid": "^1.15"
+ },
+ "require-dev": {
+ "symfony/console": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
"psr-4": {
- "Symfony\\Component\\Process\\": ""
+ "Symfony\\Component\\Uid\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -1256,18 +938,27 @@
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Executes commands in sub-processes",
+ "description": "Provides an object-oriented API to generate and represent UIDs",
"homepage": "https://symfony.com",
+ "keywords": [
+ "UID",
+ "ulid",
+ "uuid"
+ ],
"support": {
- "source": "https://github.com/symfony/process/tree/v5.4.28"
+ "source": "https://github.com/symfony/uid/tree/v6.4.3"
},
"funding": [
{
@@ -1283,168 +974,48 @@
"type": "tidelift"
}
],
- "time": "2023-08-07T10:36:04+00:00"
- },
- {
- "name": "thecodingmachine/safe",
- "version": "v1.3.3",
- "source": {
- "type": "git",
- "url": "https://github.com/thecodingmachine/safe.git",
- "reference": "a8ab0876305a4cdaef31b2350fcb9811b5608dbc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/a8ab0876305a4cdaef31b2350fcb9811b5608dbc",
- "reference": "a8ab0876305a4cdaef31b2350fcb9811b5608dbc",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "require-dev": {
- "phpstan/phpstan": "^0.12",
- "squizlabs/php_codesniffer": "^3.2",
- "thecodingmachine/phpstan-strict-rules": "^0.12"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "0.1-dev"
- }
- },
- "autoload": {
- "files": [
- "deprecated/apc.php",
- "deprecated/libevent.php",
- "deprecated/mssql.php",
- "deprecated/stats.php",
- "lib/special_cases.php",
- "generated/apache.php",
- "generated/apcu.php",
- "generated/array.php",
- "generated/bzip2.php",
- "generated/calendar.php",
- "generated/classobj.php",
- "generated/com.php",
- "generated/cubrid.php",
- "generated/curl.php",
- "generated/datetime.php",
- "generated/dir.php",
- "generated/eio.php",
- "generated/errorfunc.php",
- "generated/exec.php",
- "generated/fileinfo.php",
- "generated/filesystem.php",
- "generated/filter.php",
- "generated/fpm.php",
- "generated/ftp.php",
- "generated/funchand.php",
- "generated/gmp.php",
- "generated/gnupg.php",
- "generated/hash.php",
- "generated/ibase.php",
- "generated/ibmDb2.php",
- "generated/iconv.php",
- "generated/image.php",
- "generated/imap.php",
- "generated/info.php",
- "generated/ingres-ii.php",
- "generated/inotify.php",
- "generated/json.php",
- "generated/ldap.php",
- "generated/libxml.php",
- "generated/lzf.php",
- "generated/mailparse.php",
- "generated/mbstring.php",
- "generated/misc.php",
- "generated/msql.php",
- "generated/mysql.php",
- "generated/mysqli.php",
- "generated/mysqlndMs.php",
- "generated/mysqlndQc.php",
- "generated/network.php",
- "generated/oci8.php",
- "generated/opcache.php",
- "generated/openssl.php",
- "generated/outcontrol.php",
- "generated/password.php",
- "generated/pcntl.php",
- "generated/pcre.php",
- "generated/pdf.php",
- "generated/pgsql.php",
- "generated/posix.php",
- "generated/ps.php",
- "generated/pspell.php",
- "generated/readline.php",
- "generated/rpminfo.php",
- "generated/rrd.php",
- "generated/sem.php",
- "generated/session.php",
- "generated/shmop.php",
- "generated/simplexml.php",
- "generated/sockets.php",
- "generated/sodium.php",
- "generated/solr.php",
- "generated/spl.php",
- "generated/sqlsrv.php",
- "generated/ssdeep.php",
- "generated/ssh2.php",
- "generated/stream.php",
- "generated/strings.php",
- "generated/swoole.php",
- "generated/uodbc.php",
- "generated/uopz.php",
- "generated/url.php",
- "generated/var.php",
- "generated/xdiff.php",
- "generated/xml.php",
- "generated/xmlrpc.php",
- "generated/yaml.php",
- "generated/yaz.php",
- "generated/zip.php",
- "generated/zlib.php"
- ],
- "psr-4": {
- "Safe\\": [
- "lib/",
- "deprecated/",
- "generated/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "PHP core functions that throw exceptions instead of returning FALSE on error",
- "support": {
- "issues": "https://github.com/thecodingmachine/safe/issues",
- "source": "https://github.com/thecodingmachine/safe/tree/v1.3.3"
- },
- "time": "2020-10-28T17:51:34+00:00"
+ "time": "2024-01-23T14:51:35+00:00"
},
{
"name": "web-auth/cose-lib",
- "version": "v3.3.12",
+ "version": "4.3.0",
"source": {
"type": "git",
"url": "https://github.com/web-auth/cose-lib.git",
- "reference": "efa6ec2ba4e840bc1316a493973c9916028afeeb"
+ "reference": "e5c417b3b90e06c84638a18d350e438d760cb955"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/web-auth/cose-lib/zipball/efa6ec2ba4e840bc1316a493973c9916028afeeb",
- "reference": "efa6ec2ba4e840bc1316a493973c9916028afeeb",
+ "url": "https://api.github.com/repos/web-auth/cose-lib/zipball/e5c417b3b90e06c84638a18d350e438d760cb955",
+ "reference": "e5c417b3b90e06c84638a18d350e438d760cb955",
"shasum": ""
},
"require": {
- "beberlei/assert": "^3.2",
+ "brick/math": "^0.9|^0.10|^0.11|^0.12",
"ext-json": "*",
"ext-mbstring": "*",
"ext-openssl": "*",
- "fgrosse/phpasn1": "^2.1",
- "php": ">=7.2"
+ "php": ">=8.1",
+ "spomky-labs/pki-framework": "^1.0"
+ },
+ "require-dev": {
+ "ekino/phpstan-banned-code": "^1.0",
+ "infection/infection": "^0.27",
+ "php-parallel-lint/php-parallel-lint": "^1.3",
+ "phpstan/extension-installer": "^1.3",
+ "phpstan/phpstan": "^1.7",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/phpstan-strict-rules": "^1.2",
+ "phpunit/phpunit": "^10.1",
+ "qossmic/deptrac-shim": "^1.0",
+ "rector/rector": "^0.19",
+ "symfony/phpunit-bridge": "^6.4|^7.0",
+ "symplify/easy-coding-standard": "^12.0"
+ },
+ "suggest": {
+ "ext-bcmath": "For better performance, please install either GMP (recommended) or BCMath extension",
+ "ext-gmp": "For better performance, please install either GMP (recommended) or BCMath extension"
},
"type": "library",
"autoload": {
@@ -1473,7 +1044,8 @@
"RFC8152"
],
"support": {
- "source": "https://github.com/web-auth/cose-lib/tree/v3.3.12"
+ "issues": "https://github.com/web-auth/cose-lib/issues",
+ "source": "https://github.com/web-auth/cose-lib/tree/4.3.0"
},
"funding": [
{
@@ -1485,36 +1057,51 @@
"type": "patreon"
}
],
- "time": "2021-12-04T12:13:35+00:00"
+ "time": "2024-02-05T21:00:39+00:00"
},
{
"name": "web-auth/metadata-service",
- "version": "v3.3.12",
+ "version": "4.8.6",
"source": {
"type": "git",
"url": "https://github.com/web-auth/webauthn-metadata-service.git",
- "reference": "ef40d2b7b68c4964247d13fab52e2fa8dbd65246"
+ "reference": "fb7c1f107639285fab90f870aab38360252c82f5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/web-auth/webauthn-metadata-service/zipball/ef40d2b7b68c4964247d13fab52e2fa8dbd65246",
- "reference": "ef40d2b7b68c4964247d13fab52e2fa8dbd65246",
+ "url": "https://api.github.com/repos/web-auth/webauthn-metadata-service/zipball/fb7c1f107639285fab90f870aab38360252c82f5",
+ "reference": "fb7c1f107639285fab90f870aab38360252c82f5",
"shasum": ""
},
"require": {
- "beberlei/assert": "^3.2",
"ext-json": "*",
- "league/uri": "^6.0",
- "php": ">=7.2",
+ "lcobucci/clock": "^2.2|^3.0",
+ "paragonie/constant_time_encoding": "^2.6",
+ "php": ">=8.1",
+ "psr/clock": "^1.0",
+ "psr/event-dispatcher": "^1.0",
"psr/http-client": "^1.0",
"psr/http-factory": "^1.0",
- "psr/log": "^1.1"
+ "psr/log": "^1.0|^2.0|^3.0",
+ "spomky-labs/pki-framework": "^1.0",
+ "symfony/deprecation-contracts": "^3.2"
},
"suggest": {
- "web-token/jwt-key-mgmt": "Mandatory for fetching Metadata Statement from distant sources",
- "web-token/jwt-signature-algorithm-ecdsa": "Mandatory for fetching Metadata Statement from distant sources"
+ "phpdocumentor/reflection-docblock": "As of 4.5.x, the phpdocumentor/reflection-docblock component will become mandatory for converting objects such as the Metadata Statement",
+ "psr/clock-implementation": "As of 4.5.x, the PSR Clock implementation will replace lcobucci/clock",
+ "psr/log-implementation": "Recommended to receive logs from the library",
+ "symfony/property-access": "As of 4.5.x, the symfony/serializer component will become mandatory for converting objects such as the Metadata Statement",
+ "symfony/property-info": "As of 4.5.x, the symfony/serializer component will become mandatory for converting objects such as the Metadata Statement",
+ "symfony/serializer": "As of 4.5.x, the symfony/serializer component will become mandatory for converting objects such as the Metadata Statement",
+ "web-token/jwt-library": "Mandatory for fetching Metadata Statement from distant sources"
},
"type": "library",
+ "extra": {
+ "thanks": {
+ "name": "web-auth/webauthn-framework",
+ "url": "https://github.com/web-auth/webauthn-framework"
+ }
+ },
"autoload": {
"psr-4": {
"Webauthn\\MetadataService\\": "src/"
@@ -1542,7 +1129,7 @@
"webauthn"
],
"support": {
- "source": "https://github.com/web-auth/webauthn-metadata-service/tree/v3.3.12"
+ "source": "https://github.com/web-auth/webauthn-metadata-service/tree/4.8.6"
},
"funding": [
{
@@ -1554,49 +1141,53 @@
"type": "patreon"
}
],
- "time": "2021-11-21T11:14:31+00:00"
+ "time": "2024-03-13T07:16:02+00:00"
},
{
"name": "web-auth/webauthn-lib",
- "version": "v3.3.12",
+ "version": "4.8.6",
"source": {
"type": "git",
"url": "https://github.com/web-auth/webauthn-lib.git",
- "reference": "5ef9b21c8e9f8a817e524ac93290d08a9f065b33"
+ "reference": "925873eb504a1db8a77dc2b4d2b578334736fa16"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/web-auth/webauthn-lib/zipball/5ef9b21c8e9f8a817e524ac93290d08a9f065b33",
- "reference": "5ef9b21c8e9f8a817e524ac93290d08a9f065b33",
+ "url": "https://api.github.com/repos/web-auth/webauthn-lib/zipball/925873eb504a1db8a77dc2b4d2b578334736fa16",
+ "reference": "925873eb504a1db8a77dc2b4d2b578334736fa16",
"shasum": ""
},
"require": {
- "beberlei/assert": "^3.2",
"ext-json": "*",
"ext-mbstring": "*",
"ext-openssl": "*",
- "fgrosse/phpasn1": "^2.1",
- "php": ">=7.2",
+ "paragonie/constant_time_encoding": "^2.6",
+ "php": ">=8.1",
+ "psr/event-dispatcher": "^1.0",
"psr/http-client": "^1.0",
"psr/http-factory": "^1.0",
- "psr/http-message": "^1.0",
- "psr/log": "^1.1",
- "ramsey/uuid": "^3.8|^4.0",
- "spomky-labs/base64url": "^2.0",
- "spomky-labs/cbor-php": "^1.0|^2.0",
- "symfony/process": "^3.0|^4.0|^5.0",
- "thecodingmachine/safe": "^1.1",
- "web-auth/cose-lib": "self.version",
+ "psr/log": "^1.0|^2.0|^3.0",
+ "spomky-labs/cbor-php": "^3.0",
+ "symfony/uid": "^6.1|^7.0",
+ "web-auth/cose-lib": "^4.2.3",
"web-auth/metadata-service": "self.version"
},
"suggest": {
+ "phpdocumentor/reflection-docblock": "As of 4.5.x, the phpdocumentor/reflection-docblock component will become mandatory for converting objects such as the Metadata Statement",
"psr/log-implementation": "Recommended to receive logs from the library",
- "web-token/jwt-key-mgmt": "Mandatory for the AndroidSafetyNet Attestation Statement support",
- "web-token/jwt-signature-algorithm-ecdsa": "Recommended for the AndroidSafetyNet Attestation Statement support",
- "web-token/jwt-signature-algorithm-eddsa": "Recommended for the AndroidSafetyNet Attestation Statement support",
- "web-token/jwt-signature-algorithm-rsa": "Mandatory for the AndroidSafetyNet Attestation Statement support"
+ "symfony/event-dispatcher": "Recommended to use dispatched events",
+ "symfony/property-access": "As of 4.5.x, the symfony/serializer component will become mandatory for converting objects such as the Metadata Statement",
+ "symfony/property-info": "As of 4.5.x, the symfony/serializer component will become mandatory for converting objects such as the Metadata Statement",
+ "symfony/serializer": "As of 4.5.x, the symfony/serializer component will become mandatory for converting objects such as the Metadata Statement",
+ "web-token/jwt-library": "Mandatory for the AndroidSafetyNet Attestation Statement support"
},
"type": "library",
+ "extra": {
+ "thanks": {
+ "name": "web-auth/webauthn-framework",
+ "url": "https://github.com/web-auth/webauthn-framework"
+ }
+ },
"autoload": {
"psr-4": {
"Webauthn\\": "src/"
@@ -1624,7 +1215,7 @@
"webauthn"
],
"support": {
- "source": "https://github.com/web-auth/webauthn-lib/tree/v3.3.12"
+ "source": "https://github.com/web-auth/webauthn-lib/tree/4.8.6"
},
"funding": [
{
@@ -1636,7 +1227,7 @@
"type": "patreon"
}
],
- "time": "2022-02-18T07:13:44+00:00"
+ "time": "2024-04-08T10:04:23+00:00"
}
],
"packages-dev": [
@@ -4006,6 +3597,151 @@
],
"time": "2023-07-28T09:04:16+00:00"
},
+ {
+ "name": "symfony/polyfill-php80",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
+ "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.28-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php80\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-26T09:26:14+00:00"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v5.4.28",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b",
+ "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Process\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Executes commands in sub-processes",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/process/tree/v5.4.28"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-08-07T10:36:04+00:00"
+ },
{
"name": "theseer/tokenizer",
"version": "1.2.3",
@@ -4065,12 +3801,12 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
- "php": ">=8.0.0",
+ "php": ">=8.1.0",
"ext-json": "*"
},
"platform-dev": [],
"platform-overrides": {
- "php": "8.0.0"
+ "php": "8.1.0"
},
"plugin-api-version": "2.6.0"
}
diff --git a/lib/Db/PublicKeyCredentialEntity.php b/lib/Db/PublicKeyCredentialEntity.php
index 3be944af..9398a07d 100644
--- a/lib/Db/PublicKeyCredentialEntity.php
+++ b/lib/Db/PublicKeyCredentialEntity.php
@@ -28,7 +28,7 @@
namespace OCA\TwoFactorWebauthn\Db;
use OCP\AppFramework\Db\Entity;
-use Ramsey\Uuid\Uuid;
+use Symfony\Component\Uid\Uuid;
use Webauthn\PublicKeyCredentialSource;
use Webauthn\TrustPath\TrustPathLoader;
@@ -134,7 +134,7 @@ public static function fromPublicKeyCrendentialSource(string $name,
$publicKeyCredentialEntity->setTransports(json_encode($publicKeyCredentialSource->getTransports()));
$publicKeyCredentialEntity->setAttestationType($publicKeyCredentialSource->getAttestationType());
$publicKeyCredentialEntity->setTrustPath(json_encode($publicKeyCredentialSource->getTrustPath()->jsonSerialize()));
- $publicKeyCredentialEntity->setAaguid($publicKeyCredentialSource->getAaguid()->toString());
+ $publicKeyCredentialEntity->setAaguid($publicKeyCredentialSource->getAaguid()->toRfc4122());
$publicKeyCredentialEntity->setCredentialPublicKey(base64_encode($publicKeyCredentialSource->getCredentialPublicKey()));
$publicKeyCredentialEntity->setUserHandle($publicKeyCredentialSource->getUserHandle());
$publicKeyCredentialEntity->setCounter($publicKeyCredentialSource->getCounter());
diff --git a/lib/Migration/Version000202Date20200320192700.php b/lib/Migration/Version000202Date20200320192700.php
index 013229b6..8a5fe511 100644
--- a/lib/Migration/Version000202Date20200320192700.php
+++ b/lib/Migration/Version000202Date20200320192700.php
@@ -33,7 +33,7 @@
use OCP\IDBConnection;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
-use Ramsey\Uuid;
+use Symfony\Component\Uid\Uuid;
use Throwable;
class Version000202Date20200320192700 extends SimpleMigrationStep {
@@ -88,7 +88,7 @@ public function preSchemaChange(IOutput $output, Closure $schemaClosure, array $
private function getBytes(IOutput $output, array $row) {
try {
- return Uuid\Uuid::fromString($row['aaguid'])->getBytes();
+ return Uuid::fromString($row['aaguid'])->toBinary();
} catch (Exception $e) {
$name = $row['name'];
$user_handle = $row['user_handle'];
diff --git a/lib/Migration/Version000203Date20200322200200.php b/lib/Migration/Version000203Date20200322200200.php
index 73c2ba39..5dea3b6c 100644
--- a/lib/Migration/Version000203Date20200322200200.php
+++ b/lib/Migration/Version000203Date20200322200200.php
@@ -33,7 +33,7 @@
use OCP\IDBConnection;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
-use Ramsey\Uuid;
+use Symfony\Component\Uid\Uuid;
use Throwable;
class Version000203Date20200322200200 extends SimpleMigrationStep {
@@ -108,9 +108,9 @@ public function postSchemaChange(IOutput $output, Closure $schemaClosure, array
private function getUuidString(IOutput $output, array $row) {
try {
- return Uuid\Uuid::fromBytes($row['aaguid'])->toString();
+ return Uuid::fromBinary($row['aaguid'])->toRfc4122();
} catch (Exception $e) {
- return Uuid\Uuid::fromBytes("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")->toString();
+ return Uuid::fromBinary("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")->toRfc4122();
}
}
}
diff --git a/lib/Migration/Version000203Date20200322201700.php b/lib/Migration/Version000203Date20200322201700.php
index 21f5745f..395e1790 100644
--- a/lib/Migration/Version000203Date20200322201700.php
+++ b/lib/Migration/Version000203Date20200322201700.php
@@ -32,7 +32,7 @@
use OCP\IDBConnection;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;
-use Ramsey\Uuid\Uuid;
+use Symfony\Component\Uid\Uuid;
use Throwable;
class Version000203Date20200322201700 extends SimpleMigrationStep {
@@ -92,7 +92,7 @@ public function postSchemaChange(IOutput $output, Closure $schemaClosure, array
try {
$result = $select->execute();
while ($row = $result->fetch()) {
- $update->setParameter('aaguid', Uuid::fromString($row['aaguid_transform'])->toString());
+ $update->setParameter('aaguid', Uuid::fromString($row['aaguid_transform'])->toRfc4122());
$update->setParameter('id', $row['id']);
$update->execute();
}
diff --git a/lib/Service/U2FMigrator.php b/lib/Service/U2FMigrator.php
index 17099063..ac77177f 100644
--- a/lib/Service/U2FMigrator.php
+++ b/lib/Service/U2FMigrator.php
@@ -26,8 +26,7 @@
namespace OCA\TwoFactorWebauthn\Service;
use OCA\TwoFactorWebauthn\Db\Registration;
-use Ramsey\Uuid\Uuid;
-use Ramsey\Uuid\UuidInterface;
+use Symfony\Component\Uid\Uuid;
use Webauthn\AttestationStatement\AttestationStatement;
use Webauthn\PublicKeyCredentialDescriptor;
use Webauthn\PublicKeyCredentialSource;
@@ -43,7 +42,7 @@ private function base64_urlsafe_decode(string $data) {
return base64_decode(str_replace(['-', '_'], ['+', '/'], $data));
}
- private function zeroUuid(): UuidInterface {
+ private function zeroUuid(): Uuid {
return Uuid::fromString('00000000-0000-0000-0000-000000000000');
}
diff --git a/lib/Service/WebAuthnManager.php b/lib/Service/WebAuthnManager.php
index 47446027..8756b6f1 100644
--- a/lib/Service/WebAuthnManager.php
+++ b/lib/Service/WebAuthnManager.php
@@ -26,7 +26,6 @@
namespace OCA\TwoFactorWebauthn\Service;
-use Assert\Assertion;
use Cose\Algorithm\Manager;
use Cose\Algorithm\Signature\ECDSA;
use Cose\Algorithm\Signature\EdDSA;
@@ -132,8 +131,9 @@ public function startRegistration(IUser $user, string $serverHost): PublicKeyCre
$authenticatorSelectionCriteria = new AuthenticatorSelectionCriteria(
AuthenticatorSelectionCriteria::AUTHENTICATOR_ATTACHMENT_NO_PREFERENCE,
+ AuthenticatorSelectionCriteria::USER_VERIFICATION_REQUIREMENT_DISCOURAGED,
+ AuthenticatorSelectionCriteria::RESIDENT_KEY_REQUIREMENT_NO_PREFERENCE,
false,
- AuthenticatorSelectionCriteria::USER_VERIFICATION_REQUIREMENT_DISCOURAGED
);
$publicKeyCredentialCreationOptions = new PublicKeyCredentialCreationOptions(
@@ -141,11 +141,10 @@ public function startRegistration(IUser $user, string $serverHost): PublicKeyCre
$userEntity,
$challenge,
$publicKeyCredentialParametersList,
- $timeout,
- $excludedPublicKeyDescriptors,
$authenticatorSelectionCriteria,
PublicKeyCredentialCreationOptions::ATTESTATION_CONVEYANCE_PREFERENCE_NONE,
- null
+ $excludedPublicKeyDescriptors,
+ $timeout,
);
$this->session->set(self::TWOFACTORAUTH_WEBAUTHN_REGISTRATION, $publicKeyCredentialCreationOptions->jsonSerialize());
@@ -280,15 +279,15 @@ function ($device) {
$publicKeyCredentialRequestOptions = new PublicKeyCredentialRequestOptions(
random_bytes(32), // Challenge
- 60000, // Timeout
null, // Relying Party ID
[], // Registered PublicKeyCredentialDescriptor classes
null, // User verification requirement
+ 60000, // Timeout
$extensions
);
$publicKeyCredentialRequestOptions
->setRpId($this->stripPort($serverHost))
- ->allowCredentials($registeredPublicKeyCredentialDescriptors)
+ ->allowCredentials(...$registeredPublicKeyCredentialDescriptors)
->setUserVerification(PublicKeyCredentialRequestOptions::USER_VERIFICATION_REQUIREMENT_DISCOURAGED);
$this->session->set(self::TWOFACTORAUTH_WEBAUTHN_REQUEST, $publicKeyCredentialRequestOptions->jsonSerialize());
@@ -364,7 +363,6 @@ public function finishAuthenticate(IUser $user, string $data) {
public function removeDevice(IUser $user, int $id) {
$credential = $this->mapper->findById($id);
- Assertion::eq($credential->getUserHandle(), $user->getUID());
$this->mapper->delete($credential);
@@ -382,7 +380,6 @@ public function deactivateAllDevices(IUser $user) {
public function changeActivationState(IUser $user, int $id, bool $active) {
$credential = $this->mapper->findById($id);
- Assertion::eq($credential->getUserHandle(), $user->getUID());
$credential->setActive($active);
diff --git a/package-lock.json b/package-lock.json
index 6d8c49f8..1add0bc1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "twofactor_webauthn",
- "version": "1.5.0-alpha.1",
+ "version": "2.0.0-alpha.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "twofactor_webauthn",
- "version": "1.5.0-alpha.1",
+ "version": "2.0.0-alpha.1",
"license": "AGPL-3.0",
"dependencies": {
"@nextcloud/auth": "^2.2.1",
@@ -17,6 +17,7 @@
"@nextcloud/password-confirmation": "^5.1.0",
"@nextcloud/router": "^3.0.0",
"@nextcloud/vue": "^8.11.2",
+ "@simplewebauthn/browser": "^10.0.0",
"vue": "^2.7.16",
"vue-click-outside": "^1.1.0",
"vue-material-design-icons": "^5.3.0",
@@ -2711,6 +2712,19 @@
"node": ">=16"
}
},
+ "node_modules/@simplewebauthn/browser": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/@simplewebauthn/browser/-/browser-10.0.0.tgz",
+ "integrity": "sha512-hG0JMZD+LiLUbpQcAjS4d+t4gbprE/dLYop/CkE01ugU/9sKXflxV5s0DRjdz3uNMFecatRfb4ZLG3XvF8m5zg==",
+ "dependencies": {
+ "@simplewebauthn/types": "^10.0.0"
+ }
+ },
+ "node_modules/@simplewebauthn/types": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/@simplewebauthn/types/-/types-10.0.0.tgz",
+ "integrity": "sha512-SFXke7xkgPRowY2E+8djKbdEznTVnD5R6GO7GPTthpHrokLvNKw8C3lFZypTxLI7KkCfGPfhtqB3d7OVGGa9jQ=="
+ },
"node_modules/@tootallnate/once": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
@@ -17002,6 +17016,19 @@
"playwright": "1.41.2"
}
},
+ "@simplewebauthn/browser": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/@simplewebauthn/browser/-/browser-10.0.0.tgz",
+ "integrity": "sha512-hG0JMZD+LiLUbpQcAjS4d+t4gbprE/dLYop/CkE01ugU/9sKXflxV5s0DRjdz3uNMFecatRfb4ZLG3XvF8m5zg==",
+ "requires": {
+ "@simplewebauthn/types": "^10.0.0"
+ }
+ },
+ "@simplewebauthn/types": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/@simplewebauthn/types/-/types-10.0.0.tgz",
+ "integrity": "sha512-SFXke7xkgPRowY2E+8djKbdEznTVnD5R6GO7GPTthpHrokLvNKw8C3lFZypTxLI7KkCfGPfhtqB3d7OVGGa9jQ=="
+ },
"@tootallnate/once": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
diff --git a/package.json b/package.json
index 6a637414..6e08b0b1 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "twofactor_webauthn",
- "version": "1.5.0-alpha.1",
+ "version": "2.0.0-alpha.1",
"description": "WebAuthn second factor provider for Nextcloud",
"private": true,
"dependencies": {
@@ -12,6 +12,7 @@
"@nextcloud/password-confirmation": "^5.1.0",
"@nextcloud/router": "^3.0.0",
"@nextcloud/vue": "^8.11.2",
+ "@simplewebauthn/browser": "^10.0.0",
"vue": "^2.7.16",
"vue-click-outside": "^1.1.0",
"vue-material-design-icons": "^5.3.0",
diff --git a/src/components/AddDeviceDialog.vue b/src/components/AddDeviceDialog.vue
index c7bb140c..2f8b5167 100644
--- a/src/components/AddDeviceDialog.vue
+++ b/src/components/AddDeviceDialog.vue
@@ -69,12 +69,8 @@