mirror of
				https://github.com/QRouland/UTPass.git
				synced 2025-11-04 01:56:31 +00:00 
			
		
		
		
	Improve Lib Pass Error Messages
This commit is contained in:
		@@ -6,25 +6,66 @@ extern "C" {
 | 
			
		||||
#include "rnp/rnp_err.h"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
enum ErrorCodeShow {
 | 
			
		||||
    UnexceptedError= 1,
 | 
			
		||||
enum class ErrorCodeShow {
 | 
			
		||||
    Success= 0,
 | 
			
		||||
    UnexceptedError,
 | 
			
		||||
    BadPassphrase,
 | 
			
		||||
    NoKeyFound,
 | 
			
		||||
    DecryptFailed
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ErrorCodeShow rnpErrorToErrorCodeShow(int rnpErrorCode) {
 | 
			
		||||
int rnpErrorToErrorCodeShow(int rnpErrorCode) {
 | 
			
		||||
    switch (rnpErrorCode) {
 | 
			
		||||
    case RNP_SUCCESS:
 | 
			
		||||
        return static_cast<int>(ErrorCodeShow::Success);
 | 
			
		||||
    case RNP_ERROR_BAD_PASSWORD:
 | 
			
		||||
        return BadPassphrase;
 | 
			
		||||
        return static_cast<int>(ErrorCodeShow::BadPassphrase);
 | 
			
		||||
    case RNP_ERROR_KEY_NOT_FOUND:
 | 
			
		||||
    case RNP_ERROR_NO_SUITABLE_KEY:
 | 
			
		||||
        return NoKeyFound;
 | 
			
		||||
        return static_cast<int>(ErrorCodeShow::NoKeyFound);
 | 
			
		||||
    case RNP_ERROR_DECRYPT_FAILED:
 | 
			
		||||
        return DecryptFailed;
 | 
			
		||||
        return static_cast<int>(ErrorCodeShow::DecryptFailed);
 | 
			
		||||
    default:
 | 
			
		||||
        return UnexceptedError;
 | 
			
		||||
        return static_cast<int>(ErrorCodeShow::UnexceptedError);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
enum class ErrorCodeImportKeyFile {
 | 
			
		||||
    Success= 0,
 | 
			
		||||
    UnexceptedError,
 | 
			
		||||
    BadFormat,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
int rnpErrorToErrorCodeImportKeyFile(int rnpErrorCode) {
 | 
			
		||||
    switch (rnpErrorCode) {
 | 
			
		||||
    case RNP_SUCCESS:
 | 
			
		||||
        return static_cast<int>(ErrorCodeShow::Success);
 | 
			
		||||
    case RNP_ERROR_BAD_FORMAT:
 | 
			
		||||
        return static_cast<int>(ErrorCodeImportKeyFile::BadFormat);
 | 
			
		||||
    default:
 | 
			
		||||
        return static_cast<int>(ErrorCodeImportKeyFile::UnexceptedError);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
enum class ErrorCodeUnexvepted {
 | 
			
		||||
    Success= 0,
 | 
			
		||||
    UnexceptedError,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
int rnpErrorToErrorCodeGeneric(int rnpErrorCode) {
 | 
			
		||||
    switch (rnpErrorCode) {
 | 
			
		||||
    case RNP_SUCCESS:
 | 
			
		||||
        return static_cast<int>(ErrorCodeShow::Success);
 | 
			
		||||
    default:
 | 
			
		||||
        return static_cast<int>(ErrorCodeImportKeyFile::UnexceptedError);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
enum class ErrorCode
 | 
			
		||||
{
 | 
			
		||||
    Success= 0,
 | 
			
		||||
    Error,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // ERROR_H
 | 
			
		||||
 
 | 
			
		||||
@@ -42,29 +42,6 @@ void ImportKeyJob::run()
 | 
			
		||||
 | 
			
		||||
    // Save resulting keyring
 | 
			
		||||
    this->saveFullKeyring();
 | 
			
		||||
    // rnp_output_t output = NULL;
 | 
			
		||||
    // qDebug() << "[ImportKeyJob] Writing pubring to " << this->pubringPath();
 | 
			
		||||
    // ret = rnp_output_to_file(&output, this->pubringPath().toLocal8Bit().constData(), RNP_OUTPUT_FILE_OVERWRITE);
 | 
			
		||||
    // if (ret == RNP_SUCCESS) {
 | 
			
		||||
    //     qDebug() << "[ImportKeyJob] Saving key pubring ";
 | 
			
		||||
    //     ret = rnp_save_keys(this->m_ffi, RNP_KEYSTORE_GPG, output, RNP_LOAD_SAVE_PUBLIC_KEYS);
 | 
			
		||||
 | 
			
		||||
    // }
 | 
			
		||||
    // if (ret == RNP_SUCCESS) {
 | 
			
		||||
    //     ret = rnp_output_finish(output);
 | 
			
		||||
    // }
 | 
			
		||||
    // rnp_output_destroy(output);
 | 
			
		||||
    // terminateOnError(ret);
 | 
			
		||||
 | 
			
		||||
    // qDebug() << "[ImportKeyJob] Writing secring to " << this->secringPath();
 | 
			
		||||
    // ret = rnp_output_to_file(&output, this->secringPath().toLocal8Bit().constData(), RNP_OUTPUT_FILE_OVERWRITE);
 | 
			
		||||
    // if (ret == RNP_SUCCESS) {
 | 
			
		||||
    //     qDebug() << "[ImportKeyJob] Saving key secring ";
 | 
			
		||||
    //     ret = rnp_save_keys(this->m_ffi, RNP_KEYSTORE_GPG, output, RNP_LOAD_SAVE_SECRET_KEYS);
 | 
			
		||||
    // }
 | 
			
		||||
 | 
			
		||||
    // rnp_output_destroy(output);
 | 
			
		||||
    // terminateOnError(ret);
 | 
			
		||||
 | 
			
		||||
    // Emit result
 | 
			
		||||
    emit resultSuccess();
 | 
			
		||||
 
 | 
			
		||||
@@ -140,7 +140,7 @@ void Pass::slotDeletePasswordStoreResult(bool err)
 | 
			
		||||
{ 
 | 
			
		||||
    if (err) {
 | 
			
		||||
        qInfo() << "[Pass] Delete Password Store Failed";
 | 
			
		||||
        emit deletePasswordStoreFailed("failed to delete password store");
 | 
			
		||||
        emit deletePasswordStoreFailed(static_cast<int>(ErrorCodeRmFile::Error), "Failed to delete password store");
 | 
			
		||||
    } else {
 | 
			
		||||
        qInfo() << "[Pass] Delete Password Store Succeed";
 | 
			
		||||
        this->initPasswordStore(); // reinit an empty password-store
 | 
			
		||||
@@ -168,7 +168,7 @@ bool Pass::deleteGPGKey(PassKeyModel* key)
 | 
			
		||||
void Pass::slotDeleteGPGKeyError(rnp_result_t err)
 | 
			
		||||
{
 | 
			
		||||
    qInfo() << "[Pass] Delete GPG key Failed";
 | 
			
		||||
    emit deleteGPGKeyFailed(rnp_result_to_string(err));
 | 
			
		||||
    emit deleteGPGKeyFailed(rnpErrorToErrorCodeGeneric(err), rnp_result_to_string(err));
 | 
			
		||||
    this->m_sem->release(1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -198,7 +198,7 @@ bool Pass::importGPGKey(QUrl url)
 | 
			
		||||
void Pass::slotImportGPGKeyError(rnp_result_t err)
 | 
			
		||||
{
 | 
			
		||||
    qInfo() << "[Pass] Import GPG Key Failed";
 | 
			
		||||
    emit importGPGKeyFailed(rnp_result_to_string(err));
 | 
			
		||||
    emit importGPGKeyFailed(rnpErrorToErrorCodeImportKeyFile(err), rnp_result_to_string(err));
 | 
			
		||||
    this->m_sem->release(1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -229,7 +229,7 @@ void Pass::slotGetAllGPGKeysError(rnp_result_t err)
 | 
			
		||||
{
 | 
			
		||||
    qInfo() << "[Pass] Get all GPG Keys Failed";
 | 
			
		||||
    this->m_keyring_model = nullptr;
 | 
			
		||||
    emit getAllGPGKeysFailed(rnp_result_to_string(err));
 | 
			
		||||
    emit getAllGPGKeysFailed(rnpErrorToErrorCodeGeneric(err), rnp_result_to_string(err));
 | 
			
		||||
    this->m_sem->release(1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -78,7 +78,7 @@ signals:
 | 
			
		||||
     * @brief Emitted when a GPG key deletion fails.
 | 
			
		||||
     * @param message The error message describing the failure.
 | 
			
		||||
     */
 | 
			
		||||
    void deleteGPGKeyFailed(QString message);
 | 
			
		||||
    void deleteGPGKeyFailed(int err, QString message);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @brief Emitted when a GPG key is successfully imported.
 | 
			
		||||
@@ -89,7 +89,7 @@ signals:
 | 
			
		||||
     * @brief Emitted when a GPG key import fails.
 | 
			
		||||
     * @param message The error message describing the failure.
 | 
			
		||||
     */
 | 
			
		||||
    void importGPGKeyFailed(QString message);
 | 
			
		||||
    void importGPGKeyFailed(int err, QString message);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @brief Emitted when all GPG keys are successfully retrieved.
 | 
			
		||||
@@ -101,7 +101,7 @@ signals:
 | 
			
		||||
     * @brief Emitted when retrieving GPG keys fails.
 | 
			
		||||
     * @param message The error message describing the failure.
 | 
			
		||||
     */
 | 
			
		||||
    void getAllGPGKeysFailed(QString message);
 | 
			
		||||
    void getAllGPGKeysFailed(int err, QString message);
 | 
			
		||||
 | 
			
		||||
    // Pass-related signals
 | 
			
		||||
    /**
 | 
			
		||||
@@ -142,7 +142,7 @@ signals:
 | 
			
		||||
     * @brief Emitted when deleting the password store fails.
 | 
			
		||||
     * @param message The error message describing the failure.
 | 
			
		||||
     */
 | 
			
		||||
    void deletePasswordStoreFailed(QString message);
 | 
			
		||||
    void deletePasswordStoreFailed(int err, QString message);
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    QString m_password_store; /**< The path to the password store. */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user