From 44f6d21c8314bcf41933269dcf0104ea8d5f1ff3 Mon Sep 17 00:00:00 2001
From: liufei <qiek@163.com>
Date: Tue, 23 Jul 2024 17:08:51 +0800
Subject: [PATCH] DecryptError cause by low level error

---
 src/crypto.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/crypto.cpp b/src/crypto.cpp
index 9c5f2c45..ac970bbe 100644
--- a/src/crypto.cpp
+++ b/src/crypto.cpp
@@ -257,7 +257,7 @@ PrivateKey::PrivateKey(const uint8_t* src, size_t src_size, const char* password
         throw CryptoException("Can't initialize private key !");
 
     const gnutls_datum_t dt {(uint8_t*)src, static_cast<unsigned>(src_size)};
-    int flags = password_ptr ? GNUTLS_PKCS_PLAIN
+    int flags = (password_ptr == NULL || strlen(password_ptr)==0) ? GNUTLS_PKCS_PLAIN
                 : ( GNUTLS_PKCS_PBES2_AES_128 | GNUTLS_PKCS_PBES2_AES_192  | GNUTLS_PKCS_PBES2_AES_256
                   | GNUTLS_PKCS_PKCS12_3DES   | GNUTLS_PKCS_PKCS12_ARCFOUR | GNUTLS_PKCS_PKCS12_RC2_40);
 
-- 
GitLab