WP::err QCACryptoInterface::generateKeyPair(QString &certificate, QString &publicKey, QString &privateKey, const SecureArray &keyPassword) { if(!QCA::isSupported("pkey") || !QCA::PKey::supportedIOTypes().contains(QCA::PKey::RSA)) { qDebug() << "RSA not supported!\n"; return WP::kError; } QCA::PrivateKey secretKey = QCA::KeyGenerator().createRSA(2048); if(secretKey.isNull()) { qDebug() << "Failed to make private RSA key\n"; return WP::kError; } privateKey = secretKey.toPEM(keyPassword); // public QCA::CertificateOptions opts; QCA::Certificate cert(opts, secretKey); certificate = cert.toPEM(); QCA::PublicKey pubkey = secretKey.toPublicKey(); publicKey = pubkey.toPEM(); return WP::kOk; }
void QCACryptoInterface::generateKeyPair(const char* certificateFile, const char *publicKeyFile, const char *privateKeyFile, const char *keyPassword) { if(!QCA::isSupported("pkey") || !QCA::PKey::supportedIOTypes().contains(QCA::PKey::RSA)) { qDebug() << "RSA not supported!\n"; return; } QCA::PrivateKey secretKey = QCA::KeyGenerator().createRSA(2048); if(secretKey.isNull()) { qDebug() << "Failed to make private RSA key\n"; return; } secretKey.toPEMFile(privateKeyFile, keyPassword); // public QCA::CertificateOptions opts; QCA::Certificate cert(opts, secretKey); cert.toPEMFile(certificateFile); QCA::PublicKey pubkey = secretKey.toPublicKey(); pubkey.toPEMFile(publicKeyFile); }