NK3A NFC OpenSuSE Problem Installation

Guten Tag!

Ich besitze einen NK3A NFC aus der allerersten Charge - der mit der sehr langen Lieferzeit …
Und ich nutze auf zwei Rechnern OpenSuSE Tumbleweed mit tagesaktuellem Zustand und ohne jegliche bekannten Probleme.

Nachdem recht lange die Informationen zur Installation unter Linux - sagen wir mal - recht dürftig waren, habe ich mich die letzten Tage damit befasst, gemäß der Anleitung auf der Webseite die Installation auf der Konsole durchzuführen. (JA, ich kenne und liebe die Konsole seit ~25 Jahren!)

  • python (3.10), pip, pipx sind installiert und aktuell
  • nitropy (0.4.27) wurde installiert
  • die aktuellen udev-Regeln wurden nach /etc/udev/rules.d/ kopiert und aktiviert
    Alle Installationen selbstverständlich ohne jede Fehlermeldung.

Ein “nitropy nk3 list” bringt bereits:

Command line tool to interact with Nitrokey devices 0.4.31
:: ‘Nitrokey 3’ keys
Auto configuration failed
140024276493440:error:0EFFF065:configuration file routines:CRYPTO_internal:missing equal sign:conf/conf_def.c:346:line 24

Die gleiche Aussage mit der falschen Konfiguration bringen sämtliche anderen getesteten Starts von nitropy und den diversen Optionen.

Der in der Fehlersuche auf diesem Rechner (Desktop, hostname “erde”) beschriebene Test mit dmsg bringt:

[15563.772254] hid-generic 0003:20A0:42B2.000D: hiddev97,hidraw3: USB HID v1.11 Device [Nitrokey Nitrokey 3] on usb-0000:03:00.0-1/input1

Nun habe ich auf meinem Tuxedo-Laptop nach der gleichen Anleitung und auch unter dem “gleichen” Betriebssystem die Installation durchgeführt.
Ergebnis: alles funktioniert, so wie es soll!
Sämtliche Funktionen von nitropy ausgeführt, list, test, update => alles erfolgreich.

Ja, und jetzt bin ich mit meinem Latein am Ende und muss um Hilfe bitten.
Mir würde es schon sehr viel bringen, wenn mir einer von euch sagen könnte, auf welche Konfigurationsdatei die Fehlermeldung hindeuten könnte.
Ein Verdacht deutet auf die /etc/ssl/openssl.cnf, aber da ist auf Zeile 24 nichts ungewöhnliches zu finden. Auch läuft openssl auf diesem Rechner in verschiedenen Anwendungen problemlos.

Über zielführende Antworten würde ich mich sehr freuen!

vy 73 de Peter

1 Like

Hallo Freunde!

Nachdem 15 Tage keine Antwort von den Wissensträgern aus der Community und auch von evtl. mitlesenden Entwicklern gekommen war, möchte ich das noch einmal hoch schubsen.

Ich habe in diesen 15 Tagen sehr intensiv, auch mit compare und anderen Tools, nach Unterschieden auf den beiden (mittlerweile schon auf drei) Rechnern gesucht - und wirklich nichts gefunden. Klar könnte ich jetzt die SSD “platt machen” und das System neu aufsetzen. Aber das würde mich an die übliche Verfahrensweise bei einem “alternativen” Betriebssystem erinnern, und ich bin so froh, dass mein täglich upgedatetes OpenSuSe Tumbleweed schon so lange und so stabil läuft.

Deswegen, liebe Wissensträger und Entwickler, einer von euch muss doch wissen, welche Konfigurationsdatei diese zitierte Fehlermeldung in nitropy verursacht oder zumindest verursachen könnte. Ein kleiner Denkanstoß würde mir schon weiter helfen.

Danke!
vy 73 de Peter

Und für Englisch sprechende Experten noch einmal mit der Hilfe von DeepL übersetzt:

Hello friends!
After 15 days no answer had come from the knowledge carriers from the community and also from possibly reading developers, I would like to push this up again.

During these 15 days I searched very intensively, also with compare and other tools, for differences on the two (meanwhile already on three) computers - and really found nothing. Of course, I could now “flatten” the SSD and rebuild the system. But that would remind me of the usual procedure for an “alternative” operating system, and I’m so glad that my daily updated OpenSuSe tumbleweed has been running so long and so stable.

Therefore, dear knowledge carriers and developers, one of you must know which configuration file causes or at least could cause this quoted error message in nitropy.

Thank you!
vy 73 de Peter

1 Like

Same at my side.

If I do anything with nitrocopy:

> nitropy nk3 test
Command line tool to interact with Nitrokey devices 0.4.35
Auto configuration failed
140377094214784:error:25FFF06C:DSO support routines:CRYPTO_internal:functionality not supported:dso/dso_lib.c:226:
140377094214784:error:0EFFF06E:configuration file routines:CRYPTO_internal:error loading dso:conf/conf_mod.c:273:module=providers, path=providers
140377094214784:error:0EFFF071:configuration file routines:CRYPTO_internal:unknown module name:conf/conf_mod.c:214:module=providers

If I compile the new Nitrokey App 2 → make runs without any error but same issue like with nitrocopy

python3 nitrokeyapp/__main__.py
Auto configuration failed
139880650228864:error:25FFF06C:DSO support routines:CRYPTO_internal:functionality not supported:dso/dso_lib.c:226:
139880650228864:error:0EFFF06E:configuration file routines:CRYPTO_internal:error loading dso:conf/conf_mod.c:273:module=providers, path=providers
139880650228864:error:0EFFF071:configuration file routines:CRYPTO_internal:unknown module name:conf/conf_mod.c:214:module=providers

PS: Proconditions according Source of Nitrokey-App2 fulfilled

> sudo zypper in python310-qt5-devel
[,,, successfull]
> make
[,,,]
Found 142 files tracked in git                                                                                                                                 I-flit.sdist
Built sdist: dist/nitrokeyapp-2.0.1.tar.gz                                                                                                                I-flit_core.sdist
Copying package file(s) from /tmp/tmpxujodf7m/nitrokeyapp-2.0.1/nitrokeyapp                                                                               I-flit_core.wheel
Writing metadata files                                                                                                                                    I-flit_core.wheel
Writing the record of files                                                                                                                               I-flit_core.wheel
Built wheel: dist/nitrokeyapp-2.0.1-py3-none-any.whl                                                                                                      I-flit_core.wheel
> source venv/bin/activate
(venv) > nitropy list
Command line tool to interact with Nitrokey devices 0.4.35
:: 'Nitrokey FIDO2' keys
:: 'Nitrokey Start' keys:
:: 'Nitrokey 3' keys
Auto configuration failed
140465137640576:error:25FFF06C:DSO support routines:CRYPTO_internal:functionality not supported:dso/dso_lib.c:226:
140465137640576:error:0EFFF06E:configuration file routines:CRYPTO_internal:error loading dso:conf/conf_mod.c:273:module=providers, path=providers
140465137640576:error:0EFFF071:configuration file routines:CRYPTO_internal:unknown module name:conf/conf_mod.c:214:module=providers

Now added the log
Remark Python 3.10 will be used.

$ cat /tmp/nitropy.log.pyjwf053
390        INFO pynitrokey.cli Timestamp: 2023-05-19 16:19:53.830067
391        INFO pynitrokey.cli OS: uname_result(system='Linux', node='peterle', release='6.3.2-1-default', version='#1 SMP PREEMPT_DYNAMIC Mon May 15 15:59:38 UTC 2023 (70ea6f6)', machine='x86_64')
391        INFO pynitrokey.cli Python version: 3.10.10
395        INFO pynitrokey.cli pynitrokey version: 0.4.37
396        INFO pynitrokey.cli cryptography version: 36.0.2
397        INFO pynitrokey.cli ecdsa version: 0.18.0
398        INFO pynitrokey.cli fido2 version: 1.1.1
398        INFO pynitrokey.cli pyusb version: 1.2.1
399        INFO pynitrokey.cli spsdk version: 1.7.1
400       DEBUG       root print: :: 'Nitrokey 3' keys

The same setup with a second PC with Tumbleweed runs out of the box. Same Python V3.10.10 was used.
Also uninstallation and new installation of pynitrokey don’t work.

Same Error also after compiling the new NitroKey-App-2

Hallo @ulfi!

Ehrliche Antwort:
Ich bin richtig froh (!), dass ich hier nicht der einzige Unfähige bin, bei dem sowohl nitropy als auch die neue NitroKey-App-2 auf mittlerweile drei grundsätzlich identisch konfigurierten Rechnern bereits beim ersten Versuch funktionierten, und auf einem (leider meinem Hauptrechner) funktioniert es eben bis heute nicht. Ja, auch die NitroKey-App-2.

Viel weniger froh bin ich, dass die Herstellerfirma mein Problem standhaft ignoriert! Eigentlich ist das eine Schande! Ich kann mir nicht vorstellen, dass ein Entwickler nicht mit einem einzigen Blick auf meine Problembeschreibung zumindest eine Idee hat, wo er diesen Fehler vermutet und wo ich nachsehen kann.
Ich habe bewusst bis jetzt stille gehalten, weil ich hoffte, dass das Problem mit Veröffentlichung der NitroKey-App-2 nicht mehr vorhanden ist. War wohl nix.

vy 73 de Peter

Hi Eifelsachse,
ich hatte noch nicht viel Zeit, aber es scheint eher an python zu liegen. Muss mal die Pakete raus lassen und die default settings. Vermutlich biegt ein Programm eine Defaulteinstellung um.
Bei mir besteht das Problem seit einigen Wochen, wann genau weiß ich nicht.

Hier funktioniert der NK3C unter OpenSuSE ohne Probleme (für GPG musste ich eine kleine Konfigurationsänderung machen).

Ich habe allerdings das nitropy-Paket nicht direkt ins System reininstalliert. Ich benutze dafür virtualenv und erstelle eine eigene Umgebung für jede Python-Anwendung. pipx macht etwas ähnliches, aber die ganzen package-manager und build tools für Python sind eigentlich recht schlecht.

Hast Du pipx zur Installation verwendet?

Die Fehlermeldung die Du hast scheint von OpenSSL zu kommen. Die Konfigurationsdatei scheint fehlerhaft zu sein - das kann alles sein - u.A. auch falsches Encoding.
Kannst Du mal folgendes ausführen?

openssl version -d

Dann wird dir das Konfigurationsverzeichnis von OpenSSL angezeigt. Dort sollte eine Datei openssl.cnf sein. Ka welche die Standard-Datei für OpenSuSE ist. Evt. kannst Du es mit dieser probieren: openssl/openssl.cnf at master · openssl/openssl · GitHub

Hallo ihr beiden, und vielen Dank für eure Antworten!

Wie schon geschrieben, vier fast identische konfigurierte Rechner, alle mit tagesaktuellem (!) openSUSE Tumbleweed (ich habe als IT-Rentner Zeit fürs Hobby und leiste mir den Luxus eines täglichen Updates, selbstverständlich mit zypper auf der Konsole). Und nur auf einem der viel gibt es die bewusste Fehlermeldung.
Die Installation erfolgte (auf allen …) exakt so, wie hier beschrieben. Also mit pipx.

OpenSSL 3.0.8 7 Feb 2023 (Library: OpenSSL 3.0.8 7 Feb 2023)
Und unter /etc/ssl gibt es selbstverständlich die openssl.cnf. Und diese ist auch in allen relevanten Einstellungen identisch mit den gleichnamigen Dateien auf den anderen Rechnern. Habe mir sogar mal den Spaß geleistet, eine aus einem der anderen Systeme auf diesen Rechner zu kopieren - und natürlich auch den Dienst neu gestartet.

Trotzdem fasse ich auch gern nach dem “Strohhalm” und teste mal die von dir, jorn, verlinkte “Monsterkonfiguration”.

@ulfi:
Ich muss ehrlich sagen, dass ich mich nie intensiv mit python befasst habe. Bin eben eine ganz andere Generation, und wir haben uns “damals” mit anderen Programmiersprachen befasst. Ich habe zumindest python schon einmal komplett (einschließlich der Konfiguration, sofern gefunden) de- und wieder neu installiert. => nix.

Die Tests gehen weiter - und ich werde berichten!

vy 73 de Peter

Das ist ein Satz mit X …

Die empfohlene openssl.cnf nach /etc/ssl kopiert
python3 und pipx noch einmal vollständig deinstalliert - und evtl. Reste händisch weggeputzt.
python3 noch einmal per zypper sowie pipx installiert. Und dann:

peter@erde:~> pipx install pynitrokey
  installed package pynitrokey 0.4.37, installed using Python 3.10.10
  These apps are now globally available
    - nitropy
done! ✨ 🌟 ✨
peter@erde:~> nitropy nk3 test
Command line tool to interact with Nitrokey devices 0.4.37
Auto configuration failed
140425641243776:error:25FFF06C:DSO support routines:CRYPTO_internal:functionality not supported:dso/dso_lib.c:226:
140425641243776:error:0EFFF06E:configuration file routines:CRYPTO_internal:error loading dso:conf/conf_mod.c:273:module=providers, path=providers
140425641243776:error:0EFFF071:configuration file routines:CRYPTO_internal:unknown module name:conf/conf_mod.c:214:module=providers
peter@erde:~> 

Ich befürchte, mein alter Yubi-Key wird wohl ewig genutzt werden und der schöne neue Nitrokey irgendwann Grünspan ansetzen. Schade.
Ich gebe nicht so schnelle auf, aber aktuell ist es wohl so weit.

vy 73 de Peter

Danke @jorn

$ openssl version -d
OPENSSLDIR: "/etc/ssl"
$ l /etc/ssl/openssl.cnf 
.rw-r--r-- 12k root 22 Mär 13:48 /etc/ssl/openssl.cnf

Vergleiche ich meine openssl.cnf mit der Verlinkten (openssl/openssl.cnf at master · openssl/openssl · GitHub - ergibt sich folgender Relvanter unterschied

55,56d54
< # Load default TLS policy configuration
< ssl_conf = ssl_module
76,82d73
< [ ssl_module ]
< 
< system_default = crypto_policy
< 
< [ crypto_policy ]
< 
< .include = /etc/crypto-policies/back-ends/opensslcnf.config
104c95
< private_key   = $dir/private/cakey.pem# The private key
---
> private_key   = $dir/private/cakey.pem # The private key
368c359
< out_trusted = insta.ca.crt
---
> out_trusted = apps/insta.ca.crt # does not include keyUsage digitalSignature
378c369
< trusted = insta.ca.crt # does not include keyUsage digitalSignature
---
> trusted = $insta::out_trusted # apps/insta.ca.crt
399a391,397
> 
> [pkcs12]
> certBagAttr = cb_attr
> 
> # Uncomment this if you need Java compatible PKCS12 files
> [cb_attr]
> #jdkTrustedKeyUsage = anyExtendedKeyUsage

Auffallend ist, dass die beiden Keys <cakey.pem> und <insta.ca.crt> nicht vorhanden sind.

Das # ist ziemlich nah an dem Pfad. Evt. liegt es daran?

Danke für den Hinweis, aber der “#” hat nen tab zwischen drin (der wurde beim Kopieren wohl nur nicht richtig übernommen).

Das Problem besteht weiterhin. Muss noch mal die wichtigen Einstellungen mit meinem zweiten Gerät, dass das Problem nicht zeigt vergleichen. Ein erster grober Vergleich hatte erstmal keine Unterschiede gezeigt.

A bit late, but removing the libcrypto50 package (a library from LibreSSL) via zypper rm --clean-deps libcrypto50 solved the issues for me.

Found it our via a strace of the nitropy nk3 version command. It first opens /lib64/libcrypto.so.50 before opening and trying to parse the /etc/ssl/openssl.cnf, which is for OpenSSL 3 not LibreSSL…

1 Like

Many thanks.
Remove some packages which seams to be not required.
Afterwards nitropy app runs fine.