[xmlsec] ErrorsCallback ???

Aleksey Sanin aleksey at aleksey.com
Thu Jan 5 21:00:51 PST 2006


I think I found the reason for your confusion. In the first email
in this thread you gave several example for MSCrypto error messages
with and without errors callback set. I'll pick one of them and
will explain the problem:


epmErrorCallback xmlsec error follows:
file                                    ..\src\mscrypto\app.c
line                                    614
func                                    xmlSecMSCryptoAppPkcs12LoadMemory
errorObject                             None
errorSubject                            PFXVerifyPassword
reason                                  4

No ErrorsCallback set

bj=unknown:subj=PFXVerifyPassword:error=4:crypto library function failed:
;last error=86 (0x00000056);last error msg=The specified network password is
not correct.

The 'msg' you see in the first case (with epmErrorsCallback) is provided
by the xmlsec-mscrypto (or xmlsec-openssl) author. If you go to the
corresponding file, you'll see that there is *no* message provided
in this case thus you observe correct results.

The messages you see in the second case (no custom ErrorsCallback) are
created by xmlSecMSCryptoErrorsDefaultCallback() function which is *the*
default errors callback when xmlsec-mscrypto is used (yes, it is a 
little bit confusing :( ). This function simply calls Windows
GetLastError() and FormatMessage() to generate the

   "last error=86 (0x00000056);last error msg=The specified network
    password is not correct."

message and append it to *all* error messages.

I agree, this is confusing but the system does what it was written
to do. May be a better approach would be to move this "extra"
xmlSecMSCryptoErrorsDefaultCallback() functionality into the generic
xmlSecErrorsDefaultCallback() and just ifdef it for Windows only.
Then the output will be consistent between different crypto libraries.


More information about the xmlsec mailing list