I'm trying to get my Nitrokey Pro 2 and pam_p11 to work on NixOS 19.03. I got it to detect and query the hardware, however when authenticating, after I confirmed my User PIN, pam_p11 crashes with a segmentation fault.
(gdb) run
Starting program: /home/nixos/.config/nixpkgs/custom/pkgs/pam_p11/source/src/test-login /run/current-system/sw/lib/opensc-pkcs11.so
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/nix/store/681354n3k44r8z90m35hm8945vsp95h1-glibc-2.27/lib/libthread_db.so.1".
Using '/run/current-system/sw/lib/opensc-pkcs11.so' for 'nixos'
Login with User PIN (OpenPGP card):
Program received signal SIGSEGV, Segmentation fault.
RSA_size (r=0x1) at rsa_crpt.c:72
72 rsa_crpt.c: No such file or directory.
(gdb) bt
#0 RSA_size (r=0x1) at rsa_crpt.c:72
#1 0x00007ffff7d7d074 in pkcs11_get_key_size (key=key@entry=0x46cf50) at p11_rsa.c:330
#2 0x00007ffff7d7d0cf in pkcs11_private_encrypt (flen=flen@entry=35,
from=from@entry=0x46d080 "0!0\t\006\005+\016\003\002\032\005", to=to@entry=0x46cab0 "",
key=key@entry=0x46cf50, padding=padding@entry=1) at p11_rsa.c:89
#3 0x00007ffff7d80598 in PKCS11_private_encrypt (flen=flen@entry=35,
from=from@entry=0x46d080 "0!0\t\006\005+\016\003\002\032\005", to=to@entry=0x46cab0 "",
key=key@entry=0x46cf50, padding=padding@entry=1) at p11_front.c:327
#4 0x00007ffff7d7cf53 in pkcs11_rsa_priv_enc_method (flen=35,
from=0x46d080 "0!0\t\006\005+\016\003\002\032\005", to=0x46cab0 "", rsa=0x46ca00, padding=1)
at p11_rsa.c:374
#5 0x00007ffff7e8990f in RSA_private_encrypt (flen=flen@entry=35,
from=from@entry=0x46d080 "0!0\t\006\005+\016\003\002\032\005", to=to@entry=0x46cab0 "",
rsa=rsa@entry=0x46ca00, padding=padding@entry=1) at rsa_crpt.c:98
#6 0x00007ffff7e83586 in RSA_sign (type=64,
m=m@entry=0x7fffffffbc60 "&\200\376\272{\035\375\316{ɖ\364jV\352\320M\024\251\337\377\177",
m_len=m_len@entry=20, sigret=sigret@entry=0x46cab0 "", siglen=siglen@entry=0x7fffffffbba4,
rsa=rsa@entry=0x46ca00) at rsa_sign.c:135
#7 0x00007ffff7e895cf in pkey_rsa_sign (ctx=0x468c40, sig=0x46cab0 "", siglen=0x7fffffffbc28,
tbs=0x7fffffffbc60 "&\200\376\272{\035\375\316{ɖ\364jV\352\320M\024\251\337\377\177",
tbslen=20) at rsa_pmeth.c:269
#8 0x00007ffff7eb5258 in EVP_PKEY_sign (ctx=ctx@entry=0x468c40, sig=sig@entry=0x46cab0 "",
siglen=siglen@entry=0x7fffffffbc28,
tbs=tbs@entry=0x7fffffffbc60 "&\200\376\272{\035\375\316{ɖ\364jV\352\320M\024\251\337\377\177", tbslen=20) at pmeth_fn.c:116
#9 0x00007ffff7eaf630 in EVP_SignFinal (ctx=ctx@entry=0x469cb0, sigret=sigret@entry=0x46cab0 "",
siglen=siglen@entry=0x7fffffffbcfc, pkey=pkey@entry=0x46c290) at p_sign.c:104
#10 0x00000000004043ac in key_verify (pamh=pamh@entry=0x40a6a0, flags=flags@entry=0,
authkey=<optimized out>) at pam_p11.c:667
#11 0x0000000000404db1 in pam_sm_authenticate (pamh=pamh@entry=0x40a6a0, flags=flags@entry=0,
argc=argc@entry=1, argv=argv@entry=0x7fffffffbe28) at pam_p11.c:714
#12 0x000000000040391a in pam_sm_test (pamh=0x40a6a0, flags=flags@entry=0, argc=argc@entry=1,
argv=argv@entry=0x7fffffffbe28) at login.c:31
#13 0x00000000004038cf in main (argc=<optimized out>, argv=<optimized out>) at test.c:88
Any help with debugging this is appreciated.