-
Bug
-
Resolution: Duplicate
-
P1: Critical
-
None
-
Qt Creator 4.7.0
-
None
Qt Creator 4.7 does not compile with Botan 2.7, the latest version of Botan.
The current bundled version is 1.10.2, which was released on 2012-06-17 (six years and one month ago). Botan is a crypto library, so bundling an old version is bad practice. Not compiling with the latest is UNACCEPTABLE.
Please treat this bug as a P0.
In file included from sshbotanconversions_p.h:31,
from sshkeygenerator.cpp:28:
/usr/include/botan-2/botan/botan.h:20:4: warning: #warning "botan/botan.h is deprecated" [-Wcpp]
#warning "botan/botan.h is deprecated"
^~~~~~~
In file included from sshkeygenerator.cpp:28:
sshbotanconversions_p.h: In function ‘QByteArray QSsh::Internal::convertByteArray(Botan::SecureVector<unsigned char>&)’:
sshbotanconversions_p.h:48:63: error: invalid cast from type ‘std::vector<unsigned char, Botan::secure_allocator<unsigned char> >::const_iterator’ {aka ‘__gnu_cxx::__normal_iterator<const unsigned char*, std::vector<unsigned char, Botan::secure_allocator<unsigned char> > >’} to type ‘const char*’
return QByteArray(reinterpret_cast<const char *>(v.begin()), static_cast<int>(v.size()));
^
sshkeygenerator.cpp: In member function ‘bool QSsh::SshKeyGenerator::generateKeys(QSsh::SshKeyGenerator::KeyType, QSsh::SshKeyGenerator::PrivateKeyFormat, int, QSsh::SshKeyGenerator::EncryptionMode)’:
sshkeygenerator.cpp:62:25: error: expected primary-expression before ‘(’ token
key = KeyPtr(new RSA_PrivateKey(rng, keySize));
^
sshkeygenerator.cpp:62:30: error: expected type-specifier before ‘RSA_PrivateKey’
key = KeyPtr(new RSA_PrivateKey(rng, keySize));
^~~~~~~~~~~~~~
sshkeygenerator.cpp:65:25: error: expected primary-expression before ‘(’ token
key = KeyPtr(new DSA_PrivateKey(rng, DL_Group(rng, DL_Group::DSA_Kosherizer, keySize)));
^
sshkeygenerator.cpp:65:30: error: expected type-specifier before ‘DSA_PrivateKey’
key = KeyPtr(new DSA_PrivateKey(rng, DL_Group(rng, DL_Group::DSA_Kosherizer, keySize)));
^~~~~~~~~~~~~~
sshkeygenerator.cpp:69:25: error: expected primary-expression before ‘(’ token
key = KeyPtr(new ECDSA_PrivateKey(rng, EC_Group(SshCapabilities::oid(algo))));
^
sshkeygenerator.cpp:69:30: error: expected type-specifier before ‘ECDSA_PrivateKey’
key = KeyPtr(new ECDSA_PrivateKey(rng, EC_Group(SshCapabilities::oid(algo))));
^~~~~~~~~~~~~~~~
sshkeygenerator.cpp: In member function ‘void QSsh::SshKeyGenerator::generateOpenSslPublicKeyString(const KeyPtr&)’:
sshkeygenerator.cpp:136:30: error: ‘RSA_PrivateKey’ was not declared in this scope
const QSharedPointer<RSA_PrivateKey> rsaKey = key.dynamicCast<RSA_PrivateKey>();
^~~~~~~~~~~~~~
sshkeygenerator.cpp:136:30: note: suggested alternative: ‘m_privateKey’
const QSharedPointer<RSA_PrivateKey> rsaKey = key.dynamicCast<RSA_PrivateKey>();
^~~~~~~~~~~~~~
m_privateKey
sshkeygenerator.cpp:136:44: error: template argument 1 is invalid
const QSharedPointer<RSA_PrivateKey> rsaKey = key.dynamicCast<RSA_PrivateKey>();
^
sshkeygenerator.cpp:136:87: error: no matching function for call to ‘QSharedPointer<Botan::Private_Key>::dynamicCast<RSA_PrivateKey>() const’
const QSharedPointer<RSA_PrivateKey> rsaKey = key.dynamicCast<RSA_PrivateKey>();
^
In file included from ../../../../installed/include/QtCore/qsharedpointer.h:48,
from ../../../../installed/include/QtCore/QSharedPointer:1,
from sshkeygenerator.h:31,
from sshkeygenerator.cpp:26:
../../../../installed/include/QtCore/qsharedpointer_impl.h:407:23: note: candidate: ‘template<class X> QSharedPointer<X> QSharedPointer<T>::dynamicCast() const [with X = X; T = Botan::Private_Key]’
QSharedPointer<X> dynamicCast() const
^~~~~~~~~~~
../../../../installed/include/QtCore/qsharedpointer_impl.h:407:23: note: template argument deduction/substitution failed:
sshkeygenerator.cpp:137:25: error: base operand of ‘->’ is not a pointer
params << rsaKey->get_e() << rsaKey->get_n();
^~
sshkeygenerator.cpp:137:44: error: base operand of ‘->’ is not a pointer
params << rsaKey->get_e() << rsaKey->get_n();
^~
sshkeygenerator.cpp:142:30: error: ‘DSA_PrivateKey’ was not declared in this scope
const QSharedPointer<DSA_PrivateKey> dsaKey = key.dynamicCast<DSA_PrivateKey>();
^~~~~~~~~~~~~~
sshkeygenerator.cpp:142:30: note: suggested alternative: ‘m_privateKey’
const QSharedPointer<DSA_PrivateKey> dsaKey = key.dynamicCast<DSA_PrivateKey>();
^~~~~~~~~~~~~~
m_privateKey
sshkeygenerator.cpp:142:44: error: template argument 1 is invalid
const QSharedPointer<DSA_PrivateKey> dsaKey = key.dynamicCast<DSA_PrivateKey>();
^
sshkeygenerator.cpp:142:87: error: no matching function for call to ‘QSharedPointer<Botan::Private_Key>::dynamicCast<DSA_PrivateKey>() const’
const QSharedPointer<DSA_PrivateKey> dsaKey = key.dynamicCast<DSA_PrivateKey>();
^
In file included from ../../../../installed/include/QtCore/qsharedpointer.h:48,
from ../../../../installed/include/QtCore/QSharedPointer:1,
from sshkeygenerator.h:31,
from sshkeygenerator.cpp:26:
../../../../installed/include/QtCore/qsharedpointer_impl.h:407:23: note: candidate: ‘template<class X> QSharedPointer<X> QSharedPointer<T>::dynamicCast() const [with X = X; T = Botan::Private_Key]’
QSharedPointer<X> dynamicCast() const
^~~~~~~~~~~
../../../../installed/include/QtCore/qsharedpointer_impl.h:407:23: note: template argument deduction/substitution failed:
sshkeygenerator.cpp:143:25: error: base operand of ‘->’ is not a pointer
params << dsaKey->group_p() << dsaKey->group_q() << dsaKey->group_g() << dsaKey->get_y();
^~
sshkeygenerator.cpp:143:46: error: base operand of ‘->’ is not a pointer
params << dsaKey->group_p() << dsaKey->group_q() << dsaKey->group_g() << dsaKey->get_y();
^~
sshkeygenerator.cpp:143:67: error: base operand of ‘->’ is not a pointer
params << dsaKey->group_p() << dsaKey->group_q() << dsaKey->group_g() << dsaKey->get_y();
^~
sshkeygenerator.cpp:143:88: error: base operand of ‘->’ is not a pointer
params << dsaKey->group_p() << dsaKey->group_q() << dsaKey->group_g() << dsaKey->get_y();
^~
sshkeygenerator.cpp:148:47: error: ‘ECDSA_PrivateKey’ was not declared in this scope
const auto ecdsaKey = key.dynamicCast<ECDSA_PrivateKey>();
^~~~~~~~~~~~~~~~
sshkeygenerator.cpp:148:47: note: suggested alternative: ‘m_privateKey’
const auto ecdsaKey = key.dynamicCast<ECDSA_PrivateKey>();
^~~~~~~~~~~~~~~~
m_privateKey
sshkeygenerator.cpp:148:65: error: no matching function for call to ‘QSharedPointer<Botan::Private_Key>::dynamicCast<<expression error> >() const’
const auto ecdsaKey = key.dynamicCast<ECDSA_PrivateKey>();
^
In file included from ../../../../installed/include/QtCore/qsharedpointer.h:48,
from ../../../../installed/include/QtCore/QSharedPointer:1,
from sshkeygenerator.h:31,
from sshkeygenerator.cpp:26:
../../../../installed/include/QtCore/qsharedpointer_impl.h:407:23: note: candidate: ‘template<class X> QSharedPointer<X> QSharedPointer<T>::dynamicCast() const [with X = X; T = Botan::Private_Key]’
QSharedPointer<X> dynamicCast() const
^~~~~~~~~~~
../../../../installed/include/QtCore/qsharedpointer_impl.h:407:23: note: template argument deduction/substitution failed:
sshkeygenerator.cpp:148:65: error: template argument 1 is invalid
const auto ecdsaKey = key.dynamicCast<ECDSA_PrivateKey>();
^
sshkeygenerator.cpp:149:63: error: ‘PointGFp’ has not been declared
q = convertByteArray(EC2OSP(ecdsaKey->public_point(), PointGFp::UNCOMPRESSED));
^~~~~~~~
sshkeygenerator.cpp:149:30: error: ‘EC2OSP’ was not declared in this scope
q = convertByteArray(EC2OSP(ecdsaKey->public_point(), PointGFp::UNCOMPRESSED));
^~~~~~
sshkeygenerator.cpp:149:30: note: suggested alternative: ‘ELOOP’
q = convertByteArray(EC2OSP(ecdsaKey->public_point(), PointGFp::UNCOMPRESSED));
^~~~~~
ELOOP
sshkeygenerator.cpp: In member function ‘void QSsh::SshKeyGenerator::generateOpenSslPrivateKeyString(const KeyPtr&)’:
sshkeygenerator.cpp:175:30: error: ‘RSA_PrivateKey’ was not declared in this scope
const QSharedPointer<RSA_PrivateKey> rsaKey
^~~~~~~~~~~~~~
sshkeygenerator.cpp:175:30: note: suggested alternative: ‘m_privateKey’
const QSharedPointer<RSA_PrivateKey> rsaKey
^~~~~~~~~~~~~~
m_privateKey
sshkeygenerator.cpp:175:44: error: template argument 1 is invalid
const QSharedPointer<RSA_PrivateKey> rsaKey
^
sshkeygenerator.cpp:176:47: error: no matching function for call to ‘QSharedPointer<Botan::Private_Key>::dynamicCast<RSA_PrivateKey>() const’
= key.dynamicCast<RSA_PrivateKey>();
^
In file included from ../../../../installed/include/QtCore/qsharedpointer.h:48,
from ../../../../installed/include/QtCore/QSharedPointer:1,
from sshkeygenerator.h:31,
from sshkeygenerator.cpp:26:
../../../../installed/include/QtCore/qsharedpointer_impl.h:407:23: note: candidate: ‘template<class X> QSharedPointer<X> QSharedPointer<T>::dynamicCast() const [with X = X; T = Botan::Private_Key]’
QSharedPointer<X> dynamicCast() const
^~~~~~~~~~~
../../../../installed/include/QtCore/qsharedpointer_impl.h:407:23: note: template argument deduction/substitution failed:
sshkeygenerator.cpp:177:25: error: base operand of ‘->’ is not a pointer
params << rsaKey->get_n() << rsaKey->get_e() << rsaKey->get_d() << rsaKey->get_p()
^~
sshkeygenerator.cpp:177:44: error: base operand of ‘->’ is not a pointer
params << rsaKey->get_n() << rsaKey->get_e() << rsaKey->get_d() << rsaKey->get_p()
^~
sshkeygenerator.cpp:177:63: error: base operand of ‘->’ is not a pointer
params << rsaKey->get_n() << rsaKey->get_e() << rsaKey->get_d() << rsaKey->get_p()
^~
sshkeygenerator.cpp:177:82: error: base operand of ‘->’ is not a pointer
params << rsaKey->get_n() << rsaKey->get_e() << rsaKey->get_d() << rsaKey->get_p()
^~
sshkeygenerator.cpp:178:22: error: base operand of ‘->’ is not a pointer
<< rsaKey->get_q();
^~
sshkeygenerator.cpp:179:22: error: variable ‘const Botan::BigInt dmp1’ has initializer but incomplete type
const BigInt dmp1 = rsaKey->get_d() % (rsaKey->get_p() - 1);
^~~~
sshkeygenerator.cpp:179:35: error: base operand of ‘->’ is not a pointer
const BigInt dmp1 = rsaKey->get_d() % (rsaKey->get_p() - 1);
^~
sshkeygenerator.cpp:179:54: error: base operand of ‘->’ is not a pointer
const BigInt dmp1 = rsaKey->get_d() % (rsaKey->get_p() - 1);
^~
sshkeygenerator.cpp:180:22: error: variable ‘const Botan::BigInt dmq1’ has initializer but incomplete type
const BigInt dmq1 = rsaKey->get_d() % (rsaKey->get_q() - 1);
^~~~
sshkeygenerator.cpp:180:35: error: base operand of ‘->’ is not a pointer
const BigInt dmq1 = rsaKey->get_d() % (rsaKey->get_q() - 1);
^~
sshkeygenerator.cpp:180:54: error: base operand of ‘->’ is not a pointer
const BigInt dmq1 = rsaKey->get_d() % (rsaKey->get_q() - 1);
^~
sshkeygenerator.cpp:181:22: error: variable ‘const Botan::BigInt iqmp’ has initializer but incomplete type
const BigInt iqmp = inverse_mod(rsaKey->get_q(), rsaKey->get_p());
^~~~
sshkeygenerator.cpp:181:47: error: base operand of ‘->’ is not a pointer
const BigInt iqmp = inverse_mod(rsaKey->get_q(), rsaKey->get_p());
^~
sshkeygenerator.cpp:181:64: error: base operand of ‘->’ is not a pointer
const BigInt iqmp = inverse_mod(rsaKey->get_q(), rsaKey->get_p());
^~
sshkeygenerator.cpp:181:29: error: ‘inverse_mod’ was not declared in this scope
const BigInt iqmp = inverse_mod(rsaKey->get_q(), rsaKey->get_p());
^~~~~~~~~~~
sshkeygenerator.cpp:187:30: error: ‘DSA_PrivateKey’ was not declared in this scope
const QSharedPointer<DSA_PrivateKey> dsaKey = key.dynamicCast<DSA_PrivateKey>();
^~~~~~~~~~~~~~
sshkeygenerator.cpp:187:30: note: suggested alternative: ‘m_privateKey’
const QSharedPointer<DSA_PrivateKey> dsaKey = key.dynamicCast<DSA_PrivateKey>();
^~~~~~~~~~~~~~
m_privateKey
sshkeygenerator.cpp:187:44: error: template argument 1 is invalid
const QSharedPointer<DSA_PrivateKey> dsaKey = key.dynamicCast<DSA_PrivateKey>();
^
sshkeygenerator.cpp:187:87: error: no matching function for call to ‘QSharedPointer<Botan::Private_Key>::dynamicCast<DSA_PrivateKey>() const’
const QSharedPointer<DSA_PrivateKey> dsaKey = key.dynamicCast<DSA_PrivateKey>();
^
In file included from ../../../../installed/include/QtCore/qsharedpointer.h:48,
from ../../../../installed/include/QtCore/QSharedPointer:1,
from sshkeygenerator.h:31,
from sshkeygenerator.cpp:26:
../../../../installed/include/QtCore/qsharedpointer_impl.h:407:23: note: candidate: ‘template<class X> QSharedPointer<X> QSharedPointer<T>::dynamicCast() const [with X = X; T = Botan::Private_Key]’
QSharedPointer<X> dynamicCast() const
^~~~~~~~~~~
../../../../installed/include/QtCore/qsharedpointer_impl.h:407:23: note: template argument deduction/substitution failed:
sshkeygenerator.cpp:188:25: error: base operand of ‘->’ is not a pointer
params << dsaKey->group_p() << dsaKey->group_q() << dsaKey->group_g() << dsaKey->get_y()
^~
sshkeygenerator.cpp:188:46: error: base operand of ‘->’ is not a pointer
params << dsaKey->group_p() << dsaKey->group_q() << dsaKey->group_g() << dsaKey->get_y()
^~
sshkeygenerator.cpp:188:67: error: base operand of ‘->’ is not a pointer
params << dsaKey->group_p() << dsaKey->group_q() << dsaKey->group_g() << dsaKey->get_y()
^~
sshkeygenerator.cpp:188:88: error: base operand of ‘->’ is not a pointer
params << dsaKey->group_p() << dsaKey->group_q() << dsaKey->group_g() << dsaKey->get_y()
^~
sshkeygenerator.cpp:189:22: error: base operand of ‘->’ is not a pointer
<< dsaKey->get_x();
^~
sshkeygenerator.cpp:194:35: error: ‘ECDSA_PrivateKey’ was not declared in this scope
params << key.dynamicCast<ECDSA_PrivateKey>()->private_value();
^~~~~~~~~~~~~~~~
sshkeygenerator.cpp:194:35: note: suggested alternative: ‘m_privateKey’
params << key.dynamicCast<ECDSA_PrivateKey>()->private_value();
^~~~~~~~~~~~~~~~
m_privateKey
sshkeygenerator.cpp:194:53: error: no matching function for call to ‘QSharedPointer<Botan::Private_Key>::dynamicCast<<expression error> >() const’
params << key.dynamicCast<ECDSA_PrivateKey>()->private_value();
^
In file included from ../../../../installed/include/QtCore/qsharedpointer.h:48,
from ../../../../installed/include/QtCore/QSharedPointer:1,
from sshkeygenerator.h:31,
from sshkeygenerator.cpp:26:
../../../../installed/include/QtCore/qsharedpointer_impl.h:407:23: note: candidate: ‘template<class X> QSharedPointer<X> QSharedPointer<T>::dynamicCast() const [with X = X; T = Botan::Private_Key]’
QSharedPointer<X> dynamicCast() const
^~~~~~~~~~~
../../../../installed/include/QtCore/qsharedpointer_impl.h:407:23: note: template argument deduction/substitution failed:
sshkeygenerator.cpp:194:53: error: template argument 1 is invalid
params << key.dynamicCast<ECDSA_PrivateKey>()->private_value();
^
sshkeygenerator.cpp:199:17: error: aggregate ‘Botan::DER_Encoder encoder’ has incomplete type and cannot be defined
DER_Encoder encoder;
^~~~~~~
sshkeygenerator.cpp:204:31: error: ‘PEM_Code’ was not declared in this scope
m_privateKey = QByteArray(PEM_Code::encode (encoder.get_contents(), label).c_str());
^~~~~~~~
In file included from ../../../../installed/include/QtCore/qglobal.h:45,
from ../../../../installed/include/QtCore/QtGlobal:1,
from ssh_global.h:28,
from sshkeygenerator.h:28,
from sshkeygenerator.cpp:26:
/usr/include/c++/8/type_traits: In instantiation of ‘struct std::is_trivial<Botan::BigInt>’:
../../../../installed/include/QtCore/qtypeinfo.h:60:10: required from ‘class QTypeInfo<Botan::BigInt>’
../../../../installed/include/QtCore/qlist.h:143:62: required from ‘T& QList<T>::Node::t() [with T = Botan::BigInt]’
../../../../installed/include/QtCore/qlist.h:299:57: required from ‘const T& QList<T>::const_iterator::operator*() const [with T = Botan::BigInt]’
sshkeygenerator.cpp:157:5: required from here
/usr/include/c++/8/type_traits:661:12: error: invalid use of incomplete type ‘class Botan::BigInt’
struct is_trivial
^~~~~~~~~~
In file included from sshkeygenerator.cpp:32:
sshpacket_p.h:34:25: note: forward declaration of ‘class Botan::BigInt’
namespace Botan { class BigInt; }
^~~~~~
In file included from ../../../../installed/include/QtCore/qglobal.h:1198,
from ../../../../installed/include/QtCore/QtGlobal:1,
from ssh_global.h:28,
from sshkeygenerator.h:28,
from sshkeygenerator.cpp:26:
../../../../installed/include/QtCore/qtypeinfo.h: In instantiation of ‘class QTypeInfo<Botan::BigInt>’:
../../../../installed/include/QtCore/qlist.h:143:62: required from ‘T& QList<T>::Node::t() [with T = Botan::BigInt]’
../../../../installed/include/QtCore/qlist.h:299:57: required from ‘const T& QList<T>::const_iterator::operator*() const [with T = Botan::BigInt]’
sshkeygenerator.cpp:157:5: required from here
../../../../installed/include/QtCore/qtypeinfo.h:60:10: error: ‘value’ is not a member of ‘std::is_trivial<Botan::BigInt>’
enum {
^
../../../../installed/include/QtCore/qtypeinfo.h:67:20: error: invalid application of ‘sizeof’ to incomplete type ‘Botan::BigInt’
isLarge = (sizeof(T)>sizeof(void*)),
^~~~~~~~~
../../../../installed/include/QtCore/qtypeinfo.h:69:18: error: invalid application of ‘sizeof’ to incomplete type ‘Botan::BigInt’
sizeOf = sizeof(T)
^~~~~~~~~
In file included from ../../../../installed/include/QtCore/qobject.h:49,
from ../../../../installed/include/QtCore/qcoreapplication.h:46,
from ../../../../installed/include/QtCore/QCoreApplication:1,
from sshkeygenerator.h:30,
from sshkeygenerator.cpp:26:
../../../../installed/include/QtCore/qlist.h: In instantiation of ‘T& QList<T>::Node::t() [with T = Botan::BigInt]’:
../../../../installed/include/QtCore/qlist.h:299:57: required from ‘const T& QList<T>::const_iterator::operator*() const [with T = Botan::BigInt]’
sshkeygenerator.cpp:157:5: required from here
../../../../installed/include/QtCore/qlist.h:143:62: warning: enum constant in boolean context [-Wint-in-bool-context]
{ return *reinterpret_cast<T*>(QTypeInfo<T>::isLarge || QTypeInfo<T>::isStatic
~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../../../../installed/include/QtCore/qlist.h: In instantiation of ‘void QList<T>::node_destruct(QList<T>::Node*, QList<T>::Node*) [with T = Botan::BigInt]’:
../../../../installed/include/QtCore/qlist.h:867:5: required from ‘void QList<T>::dealloc(QListData::Data*) [with T = Botan::BigInt]’
../../../../installed/include/QtCore/qlist.h:829:9: required from ‘QList<T>::~QList() [with T = Botan::BigInt]’
sshkeygenerator.cpp:131:19: required from here
../../../../installed/include/QtCore/qlist.h:495:31: warning: enum constant in boolean context [-Wint-in-bool-context]
if (QTypeInfo<T>::isLarge || QTypeInfo<T>::isStatic)
~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../../../../installed/include/QtCore/qlist.h:496:31: warning: possible problem detected in invocation of delete operator: [-Wdelete-incomplete]
while(from != to) --to, delete reinterpret_cast<T*>(to->v);
../../../../installed/include/QtCore/qlist.h:496:65: warning: invalid use of incomplete type ‘class Botan::BigInt’
while(from != to) --to, delete reinterpret_cast<T*>(to->v);
~~~~^
In file included from sshkeygenerator.cpp:32:
sshpacket_p.h:34:25: note: forward declaration of ‘class Botan::BigInt’
namespace Botan { class BigInt; }
^~~~~~
In file included from ../../../../installed/include/QtCore/qobject.h:49,
from ../../../../installed/include/QtCore/qcoreapplication.h:46,
from ../../../../installed/include/QtCore/QCoreApplication:1,
from sshkeygenerator.h:30,
from sshkeygenerator.cpp:26:
../../../../installed/include/QtCore/qlist.h:496:31: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined
while(from != to) --to, delete reinterpret_cast<T*>(to->v);
../../../../installed/include/QtCore/qlist.h:498:61: error: invalid use of incomplete type ‘class Botan::BigInt’
while (from != to) --to, reinterpret_cast<T*>(to)->~T();
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
In file included from sshkeygenerator.cpp:32:
sshpacket_p.h:34:25: note: forward declaration of ‘class Botan::BigInt’
namespace Botan { class BigInt; }
^~~~~~
In file included from ../../../../installed/include/QtCore/qobject.h:49,
from ../../../../installed/include/QtCore/qcoreapplication.h:46,
from ../../../../installed/include/QtCore/QCoreApplication:1,
from sshkeygenerator.h:30,
from sshkeygenerator.cpp:26:
../../../../installed/include/QtCore/qlist.h: In instantiation of ‘void QList<T>::node_copy(QList<T>::Node*, QList<T>::Node*, QList<T>::Node*) [with T = Botan::BigInt]’:
../../../../installed/include/QtCore/qlist.h:815:13: required from ‘QList<T>::QList(const QList<T>&) [with T = Botan::BigInt]’
../../../../installed/include/QtCore/qglobal.h:976:86: required from ‘QtPrivate::QForeachContainer<T>::QForeachContainer(const T&) [with T = QList<Botan::BigInt>]’
../../../../installed/include/QtCore/qglobal.h:1004:12: required from ‘QtPrivate::QForeachContainer<typename std::decay<_Tp>::type> QtPrivate::qMakeForeachContainer(T&&) [with T = QList<Botan::BigInt>&; typename std::decay<_Tp>::type = QList<Botan::BigInt>]’
sshkeygenerator.cpp:157:5: required from here
../../../../installed/include/QtCore/qlist.h:461:31: warning: enum constant in boolean context [-Wint-in-bool-context]
if (QTypeInfo<T>::isLarge || QTypeInfo<T>::isStatic) {
~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
../../../../installed/include/QtCore/qlist.h:464:30: error: invalid use of incomplete type ‘class Botan::BigInt’
current->v = new T(*reinterpret_cast<T*>(src->v));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from sshkeygenerator.cpp:32:
sshpacket_p.h:34:25: note: forward declaration of ‘class Botan::BigInt’
namespace Botan { class BigInt; }
^~~~~~
In file included from ../../../../installed/include/QtCore/qobject.h:49,
from ../../../../installed/include/QtCore/qcoreapplication.h:46,
from ../../../../installed/include/QtCore/QCoreApplication:1,
from sshkeygenerator.h:30,
from sshkeygenerator.cpp:26:
../../../../installed/include/QtCore/qlist.h:470:17: warning: possible problem detected in invocation of delete operator: [-Wdelete-incomplete]
delete reinterpret_cast<T*>(current->v);
^~~~~~
../../../../installed/include/QtCore/qlist.h:470:54: warning: invalid use of incomplete type ‘class Botan::BigInt’
delete reinterpret_cast<T*>(current->v);
~~~~~~~~~^
In file included from sshkeygenerator.cpp:32:
sshpacket_p.h:34:25: note: forward declaration of ‘class Botan::BigInt’
namespace Botan { class BigInt; }
^~~~~~
In file included from ../../../../installed/include/QtCore/qobject.h:49,
from ../../../../installed/include/QtCore/qcoreapplication.h:46,
from ../../../../installed/include/QtCore/QCoreApplication:1,
from sshkeygenerator.h:30,
from sshkeygenerator.cpp:26:
../../../../installed/include/QtCore/qlist.h:470:17: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined
delete reinterpret_cast<T*>(current->v);
^~~~~~
../../../../installed/include/QtCore/qlist.h:477:17: error: invalid use of incomplete type ‘class Botan::BigInt’
new (current) T(*reinterpret_cast<T*>(src));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from sshkeygenerator.cpp:32:
sshpacket_p.h:34:25: note: forward declaration of ‘class Botan::BigInt’
namespace Botan { class BigInt; }
^~~~~~
In file included from ../../../../installed/include/QtCore/qobject.h:49,
from ../../../../installed/include/QtCore/qcoreapplication.h:46,
from ../../../../installed/include/QtCore/QCoreApplication:1,
from sshkeygenerator.h:30,
from sshkeygenerator.cpp:26:
../../../../installed/include/QtCore/qlist.h:483:51: error: invalid use of incomplete type ‘class Botan::BigInt’
(reinterpret_cast<T*>(current))->~T();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
In file included from sshkeygenerator.cpp:32:
sshpacket_p.h:34:25: note: forward declaration of ‘class Botan::BigInt’
namespace Botan { class BigInt; }
^~~~~~
sshkeygenerator.cpp: In member function ‘void QSsh::SshKeyGenerator::generatePkcs8KeyString(const KeyPtr&, bool, Botan::RandomNumberGenerator&)’:
sshkeygenerator.cpp:119:14: warning: ignoring return value of ‘std::size_t Botan::Pipe::read(uint8_t*, std::size_t, Botan::Pipe::message_id)’, declared with attribute warn_unused_result [-Wunused-result]
pipe.read(convertByteArray(*keyData), keyData->size(),
~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pipe.message_count() - 1);
~~~~~~~~~~~~~~~~~~~~~~~~~
- duplicates
-
QTCREATORBUG-18802 Port Qt Creator to Botan2 to avoid Linux Distribution issues
-
- Closed
-