Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#111 cannot read my pubring and segfault.

open
nobody
None
5
2013-01-26
2013-01-25
Mathieu Jobin
No

RetroShare cannot read my pubring and segfault.

mathieu@Miyauchi-QC-PC:~/x$ RetroShare
RetroShare:: Successfully Installedthe SIGPIPE Block
Cannot hash executable! Plugins will not be loaded correctly.
retroShare::basedir() -> $HOME = /home/mathieu
Creating Root Retroshare Config Directories
Can't free 516 (0x204)
../../../src/openpgpsdk/openpgpsdk/packet-parse.c:341: OPS_E_P_NOT_ENOUGH_DATA, Not enough data
../../../src/openpgpsdk/openpgpsdk/packet-parse.c:1633: OPS_E_PROTO_UNKNOWN_SS, Unknown signature subpacket type (4)
terminate called after throwing an instance of 'std::runtime_error'
what(): PGPHandler::readKeyRing(): cannot read pubring. File corrupted.
Aborted (core dumped)
mathieu@Miyauchi-QC-PC:~/x$ ls -ltr
total 3528
-rw-r----- 1 mathieu mathieu 1806336 Jan 24 21:28 core-1
-rw-r----- 1 mathieu mathieu 1806336 Jan 24 21:32 core
mathieu@Miyauchi-QC-PC:~/x$

1 Attachments

Discussion

  • CsoL
    CsoL
    2013-01-25

    Hi.

    Thanks for reporting this. It appears your keyring is corrupted. That should not happen. and apparently we're not handling it in a very clean way. It would help to tell us:
    - is your keyring totally new (created by RetroShare), or did you use an existing gnupg keyring?
    - did you experience a crash prior to this bug? Normaly we ensure the keyring cannot be corrupted by RS itself. Maybe we're not.

    but for sure, 0x04 is not a signature type. So something's wrong in your keyring.

    Thanks again. At least we're gonna add proper exception handling in this code.

     
  • CsoL
    CsoL
    2013-01-25

    Oups. Actually no. 0x04 is an exportable certification packet. Not a standard signature, and OpenPGP-SDK doesn't handle it yet.

    I suggest one of these two solutions:
    - clean your keys from this exportable certification, or
    - start from a clean keyring.

    I have the felling you originally copied a gnupg keyring into RetroShare. Unfortunately, it happens from time to time that we figure out some unnusual packet types we don't handle yet.

     
  • Mathieu Jobin
    Mathieu Jobin
    2013-01-26

    thanks for replying. it gives me more insight on how to understand to this message.

    I had strong doubt my pubring could be corrupt as I can read it fine with kgpg and gnupg itself.

    seems like there are strong downside to OpenPGP-SDK.
    - DSA keys are not supported (my original 2004 key is DSA)
    - Subkeys are not supported (got these as well)
    - and now this exportable certification packet

    maybe an idea would be to consider another lib ?

    in the mean time, if you improve the output of this error message.
    it would be interesting to display which of my key in my key ring has this certificate of type 4.

    are you only scanning my own keys I have a private counterpart, or this certificate could be in one of my contacts keys?

    I really would like to see RetroShare gain audience. and I believe support for all type of keys is mandatory. not only very few people have PGP keys but now we must have an RSA only, no subkeys, no certificate type 4, and what else?

    this reduce your potential audience.

    also, people who will be interested in using RetroShare might, like me, as their old PGP key that they want to keep using. it has been signed by people and all.

    people will, like me, get stuck at login as they dont want to create a new key.

    regards,