https://bugs.kde.org/show_bug.cgi?id=423349

--- Comment #3 from einbert-xer...@outlook.com ---
(In reply to Jan Grulich from comment #2)
> Can you install debug symbols for qt-qca2? Any chance this or similar
> certificate can be downloaded somewhere so I can try?

Debug symbols for `qca` (arch linux package name) is actually installed by
recompiled it from source, enable "debug" and disable "strip" in
/etc/makepkg.conf

------------

After investigation, seems that the crash is actually caused by private key,
not CA certificate file.

Test code:

```
#include <QtCrypto>
#include <QDebug>

int main()
{
    QCA::Initializer init;
    qDebug() << "isSupported(\"pkcs12\"):" << QCA::isSupported("pkcs12"); //
got "true"
    QCA::ConvertResult convRes;
    QCA::KeyBundle keyBundle = QCA::KeyBundle::fromFile("/opt/****/cert.p12",
"************", &convRes);
    qDebug() << "convRes:" << convRes; // got "0"
    const QCA::PrivateKey pkey = keyBundle.privateKey();
    // QCA::PrivateKey::canDecrypt() calls QCA::PrivateKey::isRSA()
    // which calls QCA::PrivateKey::type()
    // which calls `static_cast<const PKeyContext *>(context())->key()->type()`
    const QCA::Provider::Context *context = pkey.context();
    auto pkey_context = static_cast<const QCA::PKeyContext *>(context);
    const QCA::PKeyBase *pkey_base = pkey_context->key(); // got nullptr
    const QCA::PKey::Type pkey_type = pkey_base->type(); // segmentation fault
    qDebug() << "pkey_type:" << pkey_type;
    return 0;
}
```

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to