[Gnuk-users] State of EdDSA in Gnuk / GnuPG

Bertrand Jacquin bertrand at jacquin.bzh
Thu Jan 22 00:34:26 UTC 2015


> Once gnupg, libgcrypt, npth and libassuan compiled with -g -ggdb, I do
> not get any SEGV.

It now appends again, here is a full backtrace:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fbf03f25700 (LWP 7232)]
__memcpy_sse2_unaligned () at 
/usr/src/debug/sys-libs/glibc-2.19-r1/glibc-2.19/sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:36
36              movdqu  -16(%rsi,%rdx), %xmm8
(gdb) backtrace full
#0  __memcpy_sse2_unaligned () at 
/usr/src/debug/sys-libs/glibc-2.19-r1/glibc-2.19/sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:36
No locals.

#1  0x0000000000419eec in memcpy (__len=140458315481098, __src=0x44937a, 
__dest=<optimized out>) at /usr/include/bits/string3.h:51
No locals.

#2  store_fpr (app=app at entry=0x7fbefc002d40, 
keynumber=keynumber at entry=2, timestamp=timestamp at entry=1421886581, 
fpr=fpr at entry=0x7fbf03f24d70 "\244", card_version=512, 
key_type=key_type at entry=KEY_TYPE_EDDSA) at 
/usr/src/debug/app-crypt/gnupg-2.1.1-r1/gnupg-2.1.1/scd/app-openpgp.c:816
         n = <optimized out>
         nbits = <optimized out>
         buffer = 0x7fbefc002f80 "\231"
         p = <optimized out>
         tag = <optimized out>
         tag2 = <optimized out>
         rc = <optimized out>
         m = {0x44937a "\t+\006\001\004\001\332G\017\001", 0x7fbefc011a5e 
"@\177!\r\303s\351y\240Q\353\036\263A\307|d\226\356\026N\324th\205\375\070Y\373\373\250lH)(1:d32:\246TWL", 
0x7fbefc0008c0 "\006"}
         mlen = {140458315481098, 33, 11}
         ap = {{
             gp_offset = 48,
             fp_offset = 32702,
             overflow_arg_area = 0x7fbf03f24b90,
             reg_save_area = 0x7fbf03f24b20
           }}
         argc = 2
         i = 0

#3  0x000000000041f0f7 in ecc_writekey (depth=0, buflen=0, 
buf=0x7fbefc011ac6 "", keyno=2, pincb_arg=0x7fbefc0008c0, pincb=0x4083c0 
<pin_cb>, app=0x7fbefc002d40) at 
/usr/src/debug/app-crypt/gnupg-2.1.1-r1/gnupg-2.1.1/scd/app-openpgp.c:3386
         err = <optimized out>
         ecc_q_len = 33
         template_len = 44
         toklen = 1
         ecc_d = 0x7fbefc011a87 "\246TWL"
         last_depth1 = <optimized out>
         ecc_q = 0x7fbefc011a5e 
"@\177!\r\303s\351y\240Q\353\036\263A\307|d\226\356\026N\324th\205\375\070Y\373\373\250lH)(1:d32:\246TWL"
         template = 0x7fbf05a69008 "M*\244"
         created_at = 1421886581
         curve = 4
         tok = 0x0
         last_depth2 = <optimized out>
         ecc_d_len = 32
         fprbuf = 
"\244\000\177H\002\000\000\000\313\332@\000\000\000\000\000\350\225e"

#4  do_writekey (app=0x7fbefc002d40, ctrl=<optimized out>, 
keyid=<optimized out>, flags=<optimized out>, pincb=0x4083c0 <pin_cb>, 
pincb_arg=0x7fbefc0008c0,
     keydata=0x7fbefc011a20 
"(11:private-key(3:ecc(5:curve7:Ed25519)(5:flags5:eddsa)(1:q33:@\177!\r\303s\351y\240Q\353\036\263A\307|d\226\356\026N\324th\205\375\070Y\373\373\250lH)(1:d32:\246TWL", 
keydatalen=166) at 
/usr/src/debug/app-crypt/gnupg-2.1.1-r1/gnupg-2.1.1/scd/app-openpgp.c:3473
         err = <optimized out>
         force = <optimized out>
         keyno = 2
         buf = 0x7fbefc011a35 
"(5:curve7:Ed25519)(5:flags5:eddsa)(1:q33:@\177!\r\303s\351y\240Q\353\036\263A\307|d\226\356\026N\324th\205\375\070Y\373\373\250lH)(1:d32:\246TWL"
         tok = 0x7fbefc011a32 
"ecc(5:curve7:Ed25519)(5:flags5:eddsa)(1:q33:@\177!\r\303s\351y\240Q\353\036\263A\307|d\226\356\026N\324th\205\375\070Y\373\373\250lH)(1:d32:\246TWL"
         buflen = 145
         toklen = 3
         depth = 2

#5  0x0000000000419179 in app_writekey (app=0x7fbefc002d40, 
ctrl=ctrl at entry=0x1165780, keyidstr=keyidstr at entry=0x7fbefc002ad0 
"OPENPGP.3", flags=1, pincb=pincb at entry=0x4083c0 <pin_cb>, 
pincb_arg=pincb_arg at entry=0x7fbefc0008c0,
     keydata=0x7fbefc011a20 
"(11:private-key(3:ecc(5:curve7:Ed25519)(5:flags5:eddsa)(1:q33:@\177!\r\303s\351y\240Q\353\036\263A\307|d\226\356\026N\324th\205\375\070Y\373\373\250lH)(1:d32:\246TWL", 
keydatalen=166) at 
/usr/src/debug/app-crypt/gnupg-2.1.1-r1/gnupg-2.1.1/scd/app.c:882
         err = 0

#6  0x0000000000409716 in cmd_writekey (ctx=0x7fbefc0008c0, 
line=<optimized out>) at 
/usr/src/debug/app-crypt/gnupg-2.1.1-r1/gnupg-2.1.1/scd/command.c:1343
         ctrl = 0x1165780
         rc = 0
         keyid = 0x7fbefc002ad0 "OPENPGP.3"
         force = 1
         keydata = 0x7fbefc011a20 
"(11:private-key(3:ecc(5:curve7:Ed25519)(5:flags5:eddsa)(1:q33:@\177!\r\303s\351y\240Q\353\036\263A\307|d\226\356\026N\324th\205\375\070Y\373\373\250lH)(1:d32:\246TWL"
         keydatalen = 166

#7  0x00007fbf04f1c86a in dispatch_command (ctx=0x7fbefc0008c0, 
line=<optimized out>, linelen=<optimized out>) at 
/usr/src/debug/dev-libs/libassuan-2.1.1/libassuan-2.1.1/src/assuan-handler.c:675
         err = <optimized out>
         p = <optimized out>
         s = <optimized out>
         shift = <optimized out>
         i = <optimized out>

#8  0x00007fbf04f1cc59 in process_request (ctx=0x7fbefc0008c0) at 
/usr/src/debug/dev-libs/libassuan-2.1.1/libassuan-2.1.1/src/assuan-handler.c:871
         rc = 0

#9  assuan_process (ctx=0x7fbefc0008c0) at 
/usr/src/debug/dev-libs/libassuan-2.1.1/libassuan-2.1.1/src/assuan-handler.c:894
No locals.

#10 0x000000000040a9c1 in scd_command_handler 
(ctrl=ctrl at entry=0x1165780, fd=<optimized out>) at 
/usr/src/debug/app-crypt/gnupg-2.1.1-r1/gnupg-2.1.1/scd/command.c:2092
         rc = <optimized out>
         ctx = 0x7fbefc0008c0
         stopme = <optimized out>
         __FUNCTION__ = "scd_command_handler"

#11 0x0000000000407291 in start_connection_thread 
(arg=arg at entry=0x1165780) at 
/usr/src/debug/app-crypt/gnupg-2.1.1-r1/gnupg-2.1.1/scd/scdaemon.c:1164
         ctrl = 0x1165780

#12 0x00007fbf04d11e1c in thread_start (startup_arg=<optimized out>) at 
/usr/src/debug/dev-libs/npth-1.1/npth-1.1/src/npth.c:263
         startup = <optimized out>
         start_routine = 0x407260 <start_connection_thread>
         arg = 0x1165780
         result = <optimized out>

#13 0x00007fbf04afb083 in start_thread (arg=0x7fbf03f25700) at 
/usr/src/debug/sys-libs/glibc-2.19-r1/glibc-2.19/nptl/pthread_create.c:309
         __res = <optimized out>
         pd = 0x7fbf03f25700
         now = <optimized out>
         unwind_buf = {
           cancel_jmp_buf = {{
               jmp_buf = {140458381694720, 317160447736282606, 0, 0, 
8388608, 140458381694720, -353321070740111890, -353305107929498130},
               mask_was_saved = 0
             }},
           priv = {
             pad = {0x0, 0x0, 0x0, 0x0},
             data = {
               prev = 0x0,
               cleanup = 0x0,
               canceltype = 0
             }
           }
         }
         not_first_call = <optimized out>
         robust = <optimized out>
         pagesize_m1 = <optimized out>
         sp = <optimized out>
         freesize = <optimized out>
         __PRETTY_FUNCTION__ = "start_thread"

#14 0x00007fbf0442e26d in clone () at 
/usr/src/debug/sys-libs/glibc-2.19-r1/glibc-2.19/sysdeps/unix/sysv/linux/x86_64/clone.S:111
No locals.

I hope that can help

-- 
Bertrand



More information about the gnuk-users mailing list