जब मैं ओपनएसएसएल में सीएमएस का उपयोग करके एन्क्रिप्टेड एस/एमआईएम संदेश डिक्रिप्ट करने का प्रयास करता हूं, तो डिक्रिप्ट विधि मुझे 0 देता है जो कि सफल नहीं हुआ है।ओपनएसएसएल डिक्रिप्ट विफल रहता है लेकिन त्रुटि कोड 0
OpenSSL.org कहते हैं ..
CMS_decrypt() विफलता के लिए देता है या तो या सफलता के लिए 1 0। त्रुटि ERR_get_error से प्राप्त किया जा सकता (3)
जब मैं इस चलाने ...
out = BIO_new(BIO_s_mem());
if (!out)
assert(false);
int error = CMS_decrypt(cms, rkey, rcert, out, NULL, 0);
if (!error) {
fprintf(stderr, "Error Decrypting Data\n");
printf("error code: %d\n", ERR_get_error());
ERR_print_errors_fp(stderr);
assert(false);
}
... त्रुटि चर 0 एक त्रुटि हो गई है जिसका अर्थ है जाता है और ERR_get_error()
से त्रुटि कोड है 0 भी। ERR_print_errors_fp()
कुछ भी प्रिंट नहीं करता जिसका मतलब है कि कोई त्रुटि नहीं थी।
ऊपर उल्लिखित कोड से उत्पादन:
Error Decrypting Data
error code: 0
Assertion failed: (false)
किसी को भी एक सुझाव है कि क्या गलत यहाँ जा रहा है है? धन्यवाद
क्या यह सफलतापूर्वक डिक्रिप्ट करता है? यदि ऐसा है तो यह जांचने योग्य हो सकता है कि एक त्रुटि इच्छित के रूप में 0 लौटाती है (वापसी मूल्यों को गलती से बदल दिया गया हो सकता है) या नियंत्रण कथन –
@ MD-Tech में "ERR_get_error()" मान का उपयोग करें: नहीं। : -/बीआईओ खाली है। यहां तक कि अगर मैं एक मेम बीआईओ के बजाय फ़ाइल बीआईओ बना देता हूं, तो यह नई फाइल बनाता है लेकिन इसमें कुछ भी नहीं लिखता है ... – Chris