Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

openssl_csr_sign(): Signature did not match the certificate request #424

Closed
prghix opened this issue Apr 25, 2023 · 6 comments
Closed

openssl_csr_sign(): Signature did not match the certificate request #424

prghix opened this issue Apr 25, 2023 · 6 comments
Labels
0. Needs triage Pending approval or rejection. This issue is pending approval. bug Something isn't working

Comments

@prghix
Copy link

prghix commented Apr 25, 2023

How to use GitHub

  • Please use the 👍 reaction to show that you are affected by the same issue.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.

Steps to reproduce

  1. tried to enable E2EE encryption on NC win client 3.8.1 (for multiple users)
  2. nothing happened

Expected behaviour

The E2EE should become enabled for the user in general/particular folder.

Actual behaviour

Nothing happens from the user point of view, but found in the logs:

{
  "reqId": "8haiIDmuLINDpJr98jVD",
  "level": 3,
  "time": "2023-04-25T11:19:09+00:00",
  "remoteAddr": "xxxx",
  "user": "test",
  "app": "PHP",
  "method": "POST",
  "url": "/ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key?format=json",
  "message": "openssl_csr_sign(): Signature did not match the certificate request at /var/www/nextcloud/apps/end_to_end_encryption/lib/SignatureHandler.php#53",
  "userAgent": "Mozilla/5.0 (Windows) mirall/3.8.1stable-Win64 (build 20230419) (Nextcloud, windows-10.0.19043 ClientArchitecture: x86_64 OsArchitecture: x86_64)",
  "version": "26.0.1.1",
  "data": {
    "app": "PHP"
  }
}
{
  "reqId": "8haiIDmuLINDpJr98jVD",
  "level": 3,
  "time": "2023-04-25T11:19:09+00:00",
  "remoteAddr": "xxx",
  "user": "test",
  "app": "end_to_end_encryption",
  "method": "POST",
  "url": "/ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key?format=json",
  "message": "could not sign the CSR, please make sure to submit a valid CSR",
  "userAgent": "Mozilla/5.0 (Windows) mirall/3.8.1stable-Win64 (build 20230419) (Nextcloud, windows-10.0.19043 ClientArchitecture: x86_64 OsArchitecture: x86_64)",
  "version": "26.0.1.1",
  "exception": {
    "Exception": "BadMethodCallException",
    "Message": "could not sign the CSR, please make sure to submit a valid CSR",
    "Code": 0,
    "Trace": [
      {
        "file": "/var/www/nextcloud/apps/end_to_end_encryption/lib/Controller/KeyController.php",
        "line": 189,
        "function": "sign",
        "class": "OCA\\EndToEndEncryption\\SignatureHandler",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 230,
        "function": "createPublicKey",
        "class": "OCA\\EndToEndEncryption\\Controller\\KeyController",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
     },
      {
        "file": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 137,
        "function": "executeController",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          [
            "OCA\\EndToEndEncryption\\Controller\\KeyController"
          ],
          "createPublicKey"
        ]
      },
      {
        "file": "/var/www/nextcloud/lib/private/AppFramework/App.php",
        "line": 183,
        "function": "dispatch",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          [
            "OCA\\EndToEndEncryption\\Controller\\KeyController"
          ],
          "createPublicKey"
        ]
      },
      {
        "file": "/var/www/nextcloud/lib/private/Route/Router.php",
        "line": 315,
        "function": "main",
        "class": "OC\\AppFramework\\App",
        "type": "::",
        "args": [
          "OCA\\EndToEndEncryption\\Controller\\KeyController",
          "createPublicKey",
          [
            "OC\\AppFramework\\DependencyInjection\\DIContainer"
          ],
          [
            "ocs.end_to_end_encryption.Key.createPublicKey"
          ]
        ]
      },
      {
        "file": "/var/www/nextcloud/ocs/v1.php",
        "line": 64,
        "function": "match",
        "class": "OC\\Route\\Router",
        "type": "->",
        "args": [
          "/ocsapp/apps/end_to_end_encryption/api/v1/public-key"
        ]
      },
      {
        "file": "/var/www/nextcloud/ocs/v2.php",
        "line": 23,
        "args": [
          "/var/www/nextcloud/ocs/v1.php"
        ],
        "function": "require_once"
      }
    ],
    "File": "/var/www/nextcloud/apps/end_to_end_encryption/lib/SignatureHandler.php",
    "Line": 55,
    "message": "could not sign the CSR, please make sure to submit a valid CSR",
    "exception": {},
    "CustomMessage": "could not sign the CSR, please make sure to submit a valid CSR"
  }
}

Server configuration

Operating system: Rocky 9.1

Web server: NGINX 1.20

Database: maria 10.5

PHP version: PHP 8.2.4

Nextcloud version: 26 + 26.0.1

SELINUX: disabled
WAF: disabled

Updated from an older Nextcloud/ownCloud or fresh install:

fresh

Where did you install Nextcloud from:

Signing status:

Signing status
Login as admin user into your Nextcloud and access 
http://example.com/index.php/settings/integrity/failed 
paste the results here.

List of activated apps:

App list
If you have access to your command line run e.g.:
sudo -u www-data php occ app:list
from within your Nextcloud installation folder

If not, provide at least the version number of the End-to-End-Encryption app.

Nextcloud configuration:

Config report
If you have access to your command line run e.g.:
sudo -u www-data php occ config:list system
from within your Nextcloud installation folder

or 

Insert your config.php content here. 
Make sure to remove all sensitive content such as passwords. (e.g. database password, passwordsalt, secret, smtp password, …)

Are you using external storage, if yes which one: local/smb/sftp/...

Are you using encryption: yes/no

Are you using an external user-backend, if yes which one: LDAP/ActiveDirectory/Webdav/...

Client configuration

Browser: Chrome + client

Operating system:

Logs

Web server error log

Web server error log
Insert your webserver log here

Nextcloud log (data/nextcloud.log)

Nextcloud log
Insert your Nextcloud log here

Browser log

Browser log
Insert your browser log here, this could for example include:

a) The javascript console log
b) The network log
c) ...
@prghix prghix added 0. Needs triage Pending approval or rejection. This issue is pending approval. bug Something isn't working labels Apr 25, 2023
@stobbsm
Copy link

stobbsm commented Jun 25, 2023

I'm having the same issue. Logs are identical expect for my personal settings of course. Anything I can submit to help?

@deajan
Copy link

deajan commented Jul 7, 2023

Same here, made a fresh nextcloud setup, except I'm using Nextcloud 27.0.0.8, Apache and PHP 8.2.8.
My Nextcloud server is reverse proxied by HaProxy, but that's not the issue.

The relevant nextcloud logs

{
    "reqId": "ZKgUt88faq7AiJB5It7fsQAAAM8",
    "level": 3,
    "time": "2023-07-07T13:35:51+00:00",
    "remoteAddr": "::ffff:XX.XX.XX.XX",
    "user": "me@example.tld",
    "app": "PHP",
    "method": "POST",
    "url": "/ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key?format=json",
    "message": "openssl_csr_sign(): Signature did not match the certificate request at /var/www/cloud.example.tld/ftp/www/apps/end_to_end_encryption/lib/SignatureHandler.php#53",
    "userAgent": "Mozilla/5.0 (Windows) mirall/3.9.0stable-Win64 (build 20230613) (Nextcloud, windows-10.0.19045 ClientArchitecture: x86_64 OsArchitecture: x86_64)",
    "version": "27.0.0.8",
    "data": {
        "app": "PHP"
    }
}{
    "reqId": "ZKgUt88faq7AiJB5It7fsQAAAM8",
    "level": 3,
    "time": "2023-07-07T13:35:51+00:00",
    "remoteAddr": "::ffff:XX.XX.XX.XX",
    "user": "me@example.tld",
    "app": "end_to_end_encryption",
    "method": "POST",
    "url": "/ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key?format=json",
    "message": "could not sign the CSR, please make sure to submit a valid CSR",
    "userAgent": "Mozilla/5.0 (Windows) mirall/3.9.0stable-Win64 (build 20230613) (Nextcloud, windows-10.0.19045 ClientArchitecture: x86_64 OsArchitecture: x86_64)",
    "version": "27.0.0.8",
    "exception": {
        "Exception": "BadMethodCallException",
        "Message": "could not sign the CSR, please make sure to submit a valid CSR",
        "Code": 0,
        "Trace": [{
                "file": "/var/www/cloud.example.tld/ftp/www/apps/end_to_end_encryption/lib/Controller/KeyController.php",
                "line": 189,
                "function": "sign",
                "class": "OCA\\EndToEndEncryption\\SignatureHandler",
                "type": "->"
            }, {
                "file": "/var/www/cloud.example.tld/ftp/www/lib/private/AppFramework/Http/Dispatcher.php",
                "line": 230,
                "function": "createPublicKey",
                "class": "OCA\\EndToEndEncryption\\Controller\\KeyController",
                "type": "->",
                "args": ["*** sensitive parameters replaced ***"]
            }, {
                "file": "/var/www/cloud.example.tld/ftp/www/lib/private/AppFramework/Http/Dispatcher.php",
                "line": 137,
                "function": "executeController",
                "class": "OC\\AppFramework\\Http\\Dispatcher",
                "type": "->"
            }, {
                "file": "/var/www/cloud.example.tld/ftp/www/lib/private/AppFramework/App.php",
                "line": 183,
                "function": "dispatch",
                "class": "OC\\AppFramework\\Http\\Dispatcher",
                "type": "->"
            }, {
                "file": "/var/www/cloud.example.tld/ftp/www/lib/private/Route/Router.php",
                "line": 315,
                "function": "main",
                "class": "OC\\AppFramework\\App",
                "type": "::"
            }, {
                "file": "/var/www/cloud.example.tld/ftp/www/ocs/v1.php",
                "line": 64,
                "function": "match",
                "class": "OC\\Route\\Router",
                "type": "->"
            }, {
                "file": "/var/www/cloud.example.tld/ftp/www/ocs/v2.php",
                "line": 23,
                "args": ["/var/www/cloud.example.tld/ftp/www/ocs/v1.php"],
                "function": "require_once"
            }
        ],
        "File": "/var/www/cloud.example.tld/ftp/www/apps/end_to_end_encryption/lib/SignatureHandler.php",
        "Line": 55,
        "message": "could not sign the CSR, please make sure to submit a valid CSR",
        "exception": {},
        "CustomMessage": "could not sign the CSR, please make sure to submit a valid CSR"
    }

The relevant Nextcloud client logs:

2023-07-07 15:48:25:130 [ info nextcloud.sync.clientsideencryption C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\clientsideencryption.cpp:877 ]:	Initializing
2023-07-07 15:48:25:134 [ info nextcloud.sync.clientsideencryption C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\clientsideencryption.cpp:1450 ]:	Retrieving public key from server
2023-07-07 15:48:25:134 [ info nextcloud.sync.accessmanager C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\accessmanager.cpp:78 ]:	2 "" "https://cloud.example.tld/ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key?format=json" has X-Request-ID "072f54f3-c065-4195-ba23-f0960139a8be"
2023-07-07 15:48:25:134 [ info nextcloud.sync.networkjob C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\abstractnetworkjob.cpp:358 ]:	OCC::JsonApiJob created for "https://cloud.example.tld" + "ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key" "OCC::ClientSideEncryption"
2023-07-07 15:48:25:550 [ info nextcloud.sync.credentials.webflow C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\gui\creds\webflowcredentials.cpp:426 ]:	request finished
2023-07-07 15:48:25:550 [ warning nextcloud.sync.networkjob C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\abstractnetworkjob.cpp:221 ]:	QNetworkReply::ContentNotFoundError "Le serveur a répondu \"404 Not Found\"  à \"GET https://cloud.example.tld/ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key?format=json\"" QVariant(int, 404)
2023-07-07 15:48:25:550 [ warning nextcloud.sync.credentials.webflow C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\gui\creds\webflowcredentials.cpp:228 ]:	QNetworkReply::ContentNotFoundError
2023-07-07 15:48:25:550 [ warning nextcloud.sync.credentials.webflow C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\gui\creds\webflowcredentials.cpp:229 ]:	"Error transferring https://cloud.example.tld/ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key?format=json - server replied: Not Found"
2023-07-07 15:48:25:550 [ info nextcloud.sync.networkjob.jsonapi C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\networkjobs.cpp:924 ]:	JsonApiJob of QUrl("https://cloud.example.tld/ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key?format=json") FINISHED WITH STATUS "ContentNotFoundError Le serveur a répondu \"404 Not Found\"  à \"GET https://cloud.example.tld/ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key?format=json\""
2023-07-07 15:48:25:550 [ warning nextcloud.sync.networkjob.jsonapi C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\networkjobs.cpp:930 ]:	Network error:  "ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key" "Le serveur a répondu \"404 Not Found\"  à \"GET https://cloud.example.tld/ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key?format=json\"" QVariant(int, 404)
2023-07-07 15:48:25:550 [ info nextcloud.sync.clientsideencryption C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\clientsideencryption.cpp:1460 ]:	No public key on the server
2023-07-07 15:48:25:550 [ info nextcloud.sync.clientsideencryption C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\clientsideencryption.cpp:1201 ]:	No public key, generating a pair.
2023-07-07 15:48:25:662 [ info nextcloud.sync.clientsideencryption C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\clientsideencryption.cpp:1224 ]:	Key correctly generated
2023-07-07 15:48:25:662 [ info nextcloud.sync.clientsideencryption C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\clientsideencryption.cpp:1225 ]:	Storing keys locally
2023-07-07 15:48:25:662 [ info nextcloud.sync.clientsideencryption C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\clientsideencryption.cpp:1236 ]:	Keys generated correctly, sending to server.
2023-07-07 15:48:25:662 [ info nextcloud.sync.clientsideencryption C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\clientsideencryption.cpp:1244 ]:	Getting the following array for the account Id "me@example.tld"
2023-07-07 15:48:25:666 [ info nextcloud.sync.clientsideencryption C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\clientsideencryption.cpp:1292 ]:	Returning the certificate
2023-07-07 15:48:25:666 [ info nextcloud.sync.clientsideencryption C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\clientsideencryption.cpp:1293 ]:	"-----BEGIN CERTIFICATE REQUEST-----\nMIICvjC[...]rfm8HLw==\n-----END CERTIFICATE REQUEST-----\n"
2023-07-07 15:48:25:666 [ info nextcloud.sync.networkjob.sendcsr C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\clientsideencryptionjobs.cpp:399 ]:	Sending the CSR "csr=-----BEGIN%20CERTIFICATE%20REQUEST-----%0AMIICvjCC[...]Yerfm8HLw%3D%3D%0A-----END%20CERTIFICATE%20REQUEST-----%0A"
2023-07-07 15:48:25:666 [ info nextcloud.sync.accessmanager C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\accessmanager.cpp:78 ]:	4 "" "https://cloud.example.tld/ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key?format=json" has X-Request-ID "5a5f0271-f5f4-4ad9-b32a-c4035f809828"
2023-07-07 15:48:25:666 [ info nextcloud.sync.networkjob C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\abstractnetworkjob.cpp:358 ]:	OCC::SignPublicKeyApiJob created for "https://cloud.example.tld" + "ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key" "OCC::ClientSideEncryption"
2023-07-07 15:48:26:163 [ info nextcloud.sync.credentials.webflow C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\gui\creds\webflowcredentials.cpp:426 ]:	request finished
2023-07-07 15:48:26:163 [ warning nextcloud.sync.networkjob C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\abstractnetworkjob.cpp:221 ]:	QNetworkReply::ProtocolInvalidOperationError "Le serveur a répondu \"400 Bad request\"  à \"POST https://cloud.example.tld/ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key?format=json\"" QVariant(int, 400)
2023-07-07 15:48:26:163 [ warning nextcloud.sync.credentials.webflow C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\gui\creds\webflowcredentials.cpp:228 ]:	QNetworkReply::ProtocolInvalidOperationError
2023-07-07 15:48:26:163 [ warning nextcloud.sync.credentials.webflow C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\gui\creds\webflowcredentials.cpp:229 ]:	"Error transferring https://cloud.example.tld/ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key?format=json - server replied: Bad request"
2023-07-07 15:48:26:163 [ info nextcloud.sync.networkjob.storeprivatekey C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\clientsideencryptionjobs.cpp:406 ]:	Sending CSR ended with "ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key" "Le serveur a répondu \"400 Bad request\"  à \"POST https://cloud.example.tld/ocs/v2.php/apps/end_to_end_encryption/api/v1/public-key?format=json\"" QVariant(int, 400)
2023-07-07 15:48:26:163 [ info nextcloud.sync.clientsideencryption C:\Users\sysadmin\AppData\Local\Temp\2\windows-16015\client-building\desktop\src\libsync\clientsideencryption.cpp:1324 ]:	400

My server seems well configured, no other problems detected, admin panel shows everything well configured, sync works...
Willing to give more diag info if needed.

@deajan
Copy link

deajan commented Jul 20, 2023

Issue still uptodate with NC 27.0.1.2.
Also checked that E2E table was empty via SELECT * FROM oc_e2e_encryption_lock; which returned 0 rows.
Created a new user account on server, still the same issue.

I've intercepted the CSR sent by nextcloud desktop 3.9.0 which decodes to:

openssl req -text -in /tmp/intercepted_nc_client.csr
Certificate Request:
    Data:
        Version: Unknown (1)
        Subject: C = DE, ST = Baden-Wuerttemberg, L = Stuttgart, O = Nextcloud, CN = myuser.name@mydomain.tld
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                [...]

So far CSR seems valid.
Private key given to openssl seems valid too:

openssl rsa -in /root/priv.key -check -noout
RSA key ok

Validity given to openssl_sign_csr() is 7300.

When trying to manually sign the CSR, here's what I get:

openssl x509 -signkey /tmp/nc_privkey.key -in /tmp/intercepted_nc_client.csr -req -days 7300
Certificate request self-signature did not match the contents
406CA8A6B57F0000:error:03000098:digital envelope routines:do_sigver_init:invalid digest:crypto/evp/m_sigver.c:343:
406CA8A6B57F0000:error:06880006:asn1 encoding routines:ASN1_item_verify_ctx:EVP lib:crypto/asn1/a_verify.c:201:

I'm pretty sure the subject is somehow malformed in the CSR. Guess this has to be reported to the NC desktop people.

@deajan
Copy link

deajan commented Aug 22, 2023

I've updated my Nextcloud server to 27.0.2.1 and desktop app to 3.9.3 (Mozilla/5.0 (Windows) mirall/3.9.3stable-Win64 (build 20230818) (Nextcloud, windows-10.0.19044 ClientArchitecture: x86_64 OsArchitecture: x86_64)).
The problem remains the same.

If I happen to use a local generated CSR file with the private key via openssl, I actually get to sign my certificate.
So I compared both the Nextcloud desktop generated CSR and mine:

Nextcloud desktop generated CSR (doesn't work):

 Version: Unknown (1)
 Subject: C = DE, ST = Baden-Wuerttemberg, L = Stuttgart, O = Nextcloud, CN = my@email.tld
 [...]
 Signature Algorithm: sha1WithRSAEncryption

My generated CSR (works):

 Version: 1 (0x0)
 Subject: C = FR, ST = PO, L = SomeTown, O = TestOrg, CN = orga.local, emailAddress = my@email.tld
 Signature Algorithm: sha256WithRSAEncryption

From what I see, the CSR generated from nextcloud desktop is still using SHA-1 in 2023 !
Since I'm running RHEL9 which doesn't allow SHA-1, I've tried to check whether the problem comes from there.
I've allowed legacy crypto via update-crypto-policies --set LEGACY.
After rebooting, I could successfully use EE2E.

image

Of course, I don't want to, since I'm really not trusting encryption with obsolete algorithms.
So I switched back to uptodate crypto policies with update-crypto-policies --set DEFAULT.

Anyway, I think this bug report can be closed, since it's obviously an NC desktop issue.

@deajan
Copy link

deajan commented Aug 22, 2023

@prghix Mind to update the issue title by including "SOLVED" ?

@joshtrichards
Copy link
Member

joshtrichards commented Nov 8, 2023

Closing in favor of nextcloud/desktop#5989 since this isn't a server E2EE app matter.

Follow progress there / upvote that issue if impacted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0. Needs triage Pending approval or rejection. This issue is pending approval. bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants