Archived Forum Post

Index of archived forum posts

Question:

Error in Mime.DecryptUsingPfxFile

Aug 02 '16 at 12:28

Hi, i've a big problem with decrypt a mime object with a pfx certificate. I'm using ChilkatDotNet4.dll in my c# project. I've builded the project and release it in windows 7, working well. When i execute my exe in another windows xp machine, i'm getting an error with the same pfx file. The same exe and pfx working in another win xp machine... There are no difference between machines installed frameworks. Help me to find a solution,please! This is the log after error:

ChilkatLog:

DecryptUsingPfxFile:
DllDate: Jan 19 2012
UnlockPrefix: TELEWRSMIME
Username: WRMCDCTXCOM51:mborlik
Architecture: Little Endian; 32-bit
Language: .NET 4.0
pfxFilename: C:Documents and SettingsmborlikDesktopCryptXcomFaxCertificatesxcom.pfx
importPfxData:
ParsePkcs12:
verifyHmacIntegrity:
saltNumBytes: 20
saltBase64: c6YvQEIyKen3ZLWPgkLeM8PsWek=
numIterations: 2000
macHashOid: 1.3.14.3.2.26
macStoredDigest: 9ED5 5A06 0354 1647 8BD7 0AF2 6991 4B9C 1CBD C2A8
Password and HMAC verified.
nContentInfos: 2
ContentInfo:
Pkcs7_loadXml:
PKCS7 Data
dataSize: 1595
PKCS7_DATA
SafeContents:
SafeBagOid: 1.2.840.113549.1.12.10.1.2
Pkcs8ShroudedKeyBag
Pkcs8ShroudedKeyBag:
PBE encryption.
Salt: PmEz+ZEDdbk=
Iterations: 2000
numEncryptedBytes: 1240
algorithm: des
keyLength: 192
outputSize: 1233
ContentInfo:
Pkcs7_loadXml:
Pkcs7_EncryptedData:
PBE encryption.
Salt: YhN9YKfTNxY=
Iterations: 2000
numEncryptedBytes: 4512
algorithm: rc2
keyLength: 40
outputSize: 4506
PKCS7_ENCRYPTED_DATA
SafeContents:
SafeBagOid: 1.2.840.113549.1.12.10.1.3
CertBag
x509_cert_CN: xxxx
x509_cert_E: xxx@xxxx.lis
x509_cert_DN: C=IT, ST=Lombardia, L=Milano, O=xxxxx Telecomunicazionixxx., OU=xxxx, CN=xxxx, E=fax@xcom.lis
x509_serial: 173DB3310002000001AB
SubjectKeyIdentifier: Xl20DLqa4NmVCUWMm7boUwzUbmQ=
SafeBagOid: 1.2.840.113549.1.12.10.1.3
CertBag
x509_cert_CN: Intranetxxxx Root CA
x509_cert_DN: DC=it, DC=root, CN=Intranet xxxx Root CA
x509_serial: 5B1C60D3157C958C470D4F2A5D395DC1
SubjectKeyIdentifier: oWIct91eZG3EeHh1TpNvonmo9GE=
SafeBagOid: 1.2.840.113549.1.12.10.1.3
CertBag
x509_cert_CN: Intranetxxxxx Certificate Authority
x509_cert_DN: DC=it, DC=root, DC=xxxx, CN=Intranet xxxxxx Certificate Authority
x509_serial: 42D90D030000000000F2
SubjectKeyIdentifier: ofP54WKPBM9qryeFxSjrIa79YTg=
numCerts: 3
PFX imported successfully.
Failed to decode DER -- number of bytes in DER is zero.
Failed to decode DER.
Not PKCS7 DER.
Failed.


Answer

The change in operating system (XP vs. Windows 7) is not the cause of the problem. My guess is that the error occurs earlier when your app loads the MIME object. I suspect the task of loading the MIME object with the encrypted MIME failed, your app didn't notice it, and then called DecryptUsingPfxFile on an empty MIME object. The PFX loaded fine, but given that the MIME object is empty, you get the "Failed to decode DER -- number of bytes in DER is zero." error message.


Answer

Thanks for the answer, i try to update the chilkat from 9.3.0 to 9.3.2 and now it works! this will remain a mystery...


Answer

We have the same problem
We had used Chilkat2 (9.4.1) on Framework 2.0 and all worked fine. Now we upgraded to ChilkatDotNet45 and mime.DecryptUsingPfxFile() does not work anymore.
same code on the same email and the same certificate, different results.

Having Verbose logging switched on this is all I get:

ChilkatLog:
  DecryptUsingPfxFile:
    DllDate: Mar 11 2016
    ChilkatVersion: 9.5.0.56
    UnlockPrefix: UPSDEUSMIME
    Username: WKSP000587B3:kln1avp
    Architecture: Little Endian; 32-bit
    Language: .NET 4.5
    VerboseLogging: 1
    pfxPath: D:\UPSDATA\BOSS\DAT\NLCerts\bpUPS.pfx
    Failed.
  --DecryptUsingPfxFile
--ChilkatLog.

I would really appreciate if there would be some help provided here as this is a very unpleasant situation.

update:
I learned from the last post that it might help you guys get the working version as well. When using ChilkatDotNet2.dll in version 9.4.1 I have the success and the following Log content:

ChilkatLog:
  DecryptUsingPfxFile:
    DllDate: Jul  8 2013
    ChilkatVersion: 9.4.1.25
    UnlockPrefix: UPSDEUSMIME
    Username: WKSP000587B3:kln1avp
    Architecture: Little Endian; 32-bit
    Language: .NET 2.0
    VerboseLogging: 1
    pfxFilename: D:\UPSDATA\BOSS\DAT\NLCerts\bpUPS.pfx
    importPfxData:
      ParsePkcs12:
        verifyHmacIntegrity:
          saltNumBytes: 20
          saltBase64: dSkUqts5Cr7UlgDRqw1qVvctt0M=
          numIterations: 2000
          macHashOid: 1.3.14.3.2.26
          macStoredDigest: 874B 3C9E 4DD8 3896 B4F7 EB82 004D D1F3
9913 0C4A
          Password and HMAC verified.
        --verifyHmacIntegrity
        SEQUENCE
        DecodeAsnConstructed:
          Integer
          intBytes: 03
          SEQUENCE
          DecodeAsnConstructed:
            Oid: 1.2.840.113549.1.7.1 (PKCS7 Data)
            Tag=Constructed
            DecodeAsnConstructed:
              OctetString: 1863
              qp_string: 0=82=07C0=82=03=BC=06  *=86H=86=F7=0D=01=07=01=A0=82=03=AD=04=82=03=A90=82=
=03=A50=82=03=A1=06=0B*=86H=86=F7=0D=01=0C=0A=01=02=A0=82=02=B60=82=02=B20=
=1C=06=0A*=86H=86=F7=0D=01=0C=01=030=0E=04=08=B2=FE=9E=9E=AC=E1
            --DecodeAsnConstructed
          --DecodeAsnConstructed
          SEQUENCE
          DecodeAsnConstructed:
            SEQUENCE
            DecodeAsnConstructed:
              SEQUENCE
              DecodeAsnConstructed:
                Oid: 1.3.14.3.2.26
              --DecodeAsnConstructed
              OctetString: 20
              qp_string: =87K<=9EM=D88=96=B4=F7=EB=82=00M=D1=F3=99=13=0CJ
            --DecodeAsnConstructed
            OctetString: 20
            qp_string: u)=14=AA=DB9=0A=BE=D4=96=00=D1=AB=0DjV=F7-=B7C
            Integer
            intBytes: 07D0
          --DecodeAsnConstructed
        --DecodeAsnConstructed
        AuthenticatedSafe:
          SEQUENCE
          DecodeAsnConstructed:
            SEQUENCE
            DecodeAsnConstructed:
              Oid: 1.2.840.113549.1.7.1 (PKCS7 Data)
              Tag=Constructed
              DecodeAsnConstructed:
                OctetString: 937
                qp_string: 0=82=03=A50=82=03=A1=06=0B*=86H=86=F7=0D=01=0C=0A=01=02=A0=82=02=B60=82=02=
=B20=1C=06=0A*=86H=86=F7=0D=01=0C=01=030=0E=04=08=B2=FE=9E=9E=AC=E1@=8D=02=
=02=07=D0=04=82=02=90=87=FEc=A8=C6=C6=DE*=A4=E5(=8B &=84k=99
              --DecodeAsnConstructed
            --DecodeAsnConstructed
            SEQUENCE
            DecodeAsnConstructed:
              Oid: 1.2.840.113549.1.7.6 (PKCS7 EncryptedData)
              Tag=Constructed
              DecodeAsnConstructed:
                SEQUENCE
                DecodeAsnConstructed:
                  Integer
                  intBytes: 00
                  SEQUENCE
                  DecodeAsnConstructed:
                    Oid: 1.2.840.113549.1.7.1 (PKCS7 Data)
                    SEQUENCE
                    DecodeAsnConstructed:
                      Oid: 1.2.840.113549.1.12.1.6 (PKCS12 SafeContentsBag)
                      SEQUENCE
                      DecodeAsnConstructed:
                        OctetString: 8
                        qp_string: J~y1*=9CN=EC
                        Integer
                        intBytes: 07D0
                      --DecodeAsnConstructed
                    --DecodeAsnConstructed
                  --DecodeAsnConstructed
                --DecodeAsnConstructed
              --DecodeAsnConstructed
            --DecodeAsnConstructed
          --DecodeAsnConstructed
        --AuthenticatedSafe
        nContentInfos: 2
        ContentInfo:
          Pkcs7_loadXml:
            PKCS7 Data
            dataSize: 937
          --Pkcs7_loadXml
          PKCS7_DATA
          SafeContents:
            SafeBagOid: 1.2.840.113549.1.12.10.1.2
            Pkcs8ShroudedKeyBag
            Pkcs8ShroudedKeyBag:
              PBE encryption.
              Salt: sv6enqzhQI0=
              Iterations: 2000
              numEncryptedBytes: 656
              algorithm: des
              keyLength: 192
              outputSize: 649
            --Pkcs8ShroudedKeyBag
          --SafeContents
          ContentInfo:
            Pkcs7_loadXml:
              Pkcs7_EncryptedData:
                AlgorithmIdentifier:
                  oid: 1.2.840.113549.1.12.1.6
                  PBE encryption.
                  Salt: Sn55MSqcTuw=
                  Iterations: 2000
                --AlgorithmIdentifier
                numEncryptedBytes: 824
                algorithm: rc2
                keyLength: 40
                outputSize: 817
              --Pkcs7_EncryptedData
            --Pkcs7_loadXml
            PKCS7_ENCRYPTED_DATA
            SafeContents:
              SafeBagOid: 1.2.840.113549.1.12.10.1.3
              CertBag
              x509_cert_E: ups@douane.lan
              x509_cert_DN: C=NL, O=UPS, OU=UPS, E=ups@douane.lan
              x509_serial: 00
              SubjectKeyIdentifier: iyu179VlVBpz7HjVmzV4TAMr6Ck=

            --SafeContents
          --ContentInfo
        --ContentInfo
        numCerts: 1
        importX509_1:
          x509_cert_dn: C=NL, O=UPS, OU=UPS, E=ups@douane.lan
          numPrivateKeys: 1
          Got encrypted private key.
          hashCert_1:
            hashCert:
              CommonName: 
              ValidFrom: Sun, 18 Sep 2015 09:45:24 GMT
              ValidTo: Sun, 16 Sep 2020 09:45:24 GMT
              certHashEntry: 00:
              certHashEntry2: SubjectKeyId:iyu179VlVBpz7HjVmzV4TAMr6Ck=
              This certificate has a private key.
              privKeyHashEntry: 00:
              privKeyHashEntry2: SubjectKeyId:iyu179VlVBpz7HjVmzV4TAMr6Ck=
            --hashCert
          --hashCert_1
        --importX509_1
        PFX imported successfully.
      --ParsePkcs12
      loadPkcs7Der_4:
        DerParseTimeMs: Elapsed time: 0 millisec
        loadPkcs7Xml:
          Pkcs7_loadXml:
            Pkcs7_EnvelopedData:
              RC2_CBC
              IV: wUkqzVT/tV8=
              KeyLength: 40
              numRecipients: 1
              RecipientInfo:
                IssuerAndSerialNumber:
                  serialNumber1: 00
                  issuerCommonName: 
                  issuerCountry: NL
                  issuerState: 
                  issuerLocality: 
                  issuerOrganization: UPS
                --IssuerAndSerialNumber
                encryptedKeyNumBytes: 128
              --RecipientInfo
            --Pkcs7_EnvelopedData
          --Pkcs7_loadXml
        --loadPkcs7Xml
        Pkcs7XmlLoadTimeMs: Elapsed time: 0 millisec
      --loadPkcs7Der_4
      unEnvelope1:
        UnEnvelope:
          FindMatchingPrivateKey:
            NumRecipientInfos: 1
            findPrivateKey: 00:
            Key found!
            RecipientCertSerialNum: 00
            RecipientCertIssuerCN: 
            Found matching private key
            findCert: 00:
          --FindMatchingPrivateKey
          AlgorithmIdentifier:
            oid: 1.2.840.113549.1.1.1
          --AlgorithmIdentifier
          Decrypting symmetric key...(2)
          ModulusLen: 129
          DLen: 128
          PLen: 65
          QLen: 65
          DPLen: 65
          DQLen: 64
          InvQLen: 64
          modulus_bitlen: 1024
          littleEndian: 1
          encryptedData: 4161 B72C 601E D566 E0A9 84D6 DE1E 4C1D
C28D 2EDD EE03 3E71 BDEA 4A17 8055 2F71
E2C9 355E 2AB1 9A88 4BEC 596C 1775 D336
76CA 2962 90F7 2796 2E97 A79B E1D2 AFC8
6943 AD4C 9F7D 475C 9D44 B89A C993 8E13
8300 A2B7 BF80 3A09 7796 3583 ED81 2D5A
E0F2 7326 D082 66F7 F66A 4369 6A07 C271
7740 7DAD 6D23 7A04 1032 90E2 B433 06B5
          exptmod: Elapsed time: 0 millisec
          exptmod_decoded: 029F F94A F31B 5A5D 609D E1D5 C6D5 ECAF
3FE1 F763 D8EE C44C 5963 91AB 706F DF3A
A146 D770 3921 E441 9D38 AD3F 65D2 8B24
B7BF 337B 109B 8AC7 25CE 6235 6C74 7E14
D3EB 6277 4397 0C25 6AAF D4C1 F9A0 CE6D
064B 3CC9 453C 6B2E 45BF 9B8E 1956 380A
4679 D61B 1885 B31A 9901 045B FA95 A4A5
E3E8 BD5F CE8A A3F0 2400 252A B34E E4
          exptmod_decoded_size: 127
          padding: PKCS 1.5
          sizeAfterPkcs15_decode: 5
          Decrypting data using symmetric key (2)
          decryptedSymmetricKeyLen2: 5
          symmetricDecrypt_2:
            setByAlgorithmIdentifier:
              algId_oid: 1.2.840.113549.3.2
              RC2_CBC
              keyLength: 40
            --setByAlgorithmIdentifier
            symmetricKeySizeInBytes: 5
            numBytesToDecrypt: 2840
            algorithm: rc2
            keyLength: 40
            outputSize: 2833
            symmetricDecryptOutputSize: 2833
          --symmetricDecrypt_2
        --UnEnvelope
      --unEnvelope1
      LoadMimeComplete2:
        Found end-of-header.
        setHeaderContents:
          ParseMimeHeader:
            Header is entirely 7-bit
            FinalCodePageDecision: 0
            unfoldedHeaderField1: Mime-Version: 1.0
            MimeField:
              rawField: Mime-Version: 1.0
              name: Mime-Version
              value: 1.0
            --MimeField
            unfoldedHeaderField1: Content-Type: application/x-pkcs7-mime; smime-type=signed-data;    name=smime.p7m
            MimeField:
              rawField: Content-Type: application/x-pkcs7-mime; smime-type=signed-data;    name=smime.p7m
              name: Content-Type
              value: application/x-pkcs7-mime; smime-type=signed-data;    name=smime.p7m
            --MimeField
            unfoldedHeaderField1: Content-Transfer-Encoding: base64
            MimeField:
              rawField: Content-Transfer-Encoding: base64
              name: Content-Transfer-Encoding
              value: base64
            --MimeField
            unfoldedHeaderField2: Content-Disposition: attachment; filename=212VYTVA.DAT
            MimeField:
              rawField: Content-Disposition: attachment; filename=212VYTVA.DAT
              name: Content-Disposition
              value: attachment; filename=212VYTVA.DAT
            --MimeField
          --ParseMimeHeader
        --setHeaderContents
        parseMimeBody:
          contentType: application/x-pkcs7-mime; smime-type=signed-data;    name=smime.p7m
          charset: 
          clearing charset based on content-type.
          treating body as binary (non-character) data.
          treating body as binary data because of attachment status.
          bIsAttachment: 1
          setMimeBodyByEncoding2:
            encoding: base64
            entireBodyLen: 2636
            charset: 
            isText: 0
            wasReally1252: 0
          --setMimeBodyByEncoding2
        --parseMimeBody
      --LoadMimeComplete2
      SEQUENCE
      DecodeAsnConstructed:
        SEQUENCE
        DecodeAsnConstructed:
          Tag=Constructed
          DecodeAsnConstructed:
            Integer
            intBytes: 02
          --DecodeAsnConstructed
          Integer
          intBytes: 00
          SEQUENCE
          DecodeAsnConstructed:
            Oid: 1.2.840.113549.1.1.5
            Null
          --DecodeAsnConstructed
          SEQUENCE
          DecodeAsnConstructed:
            SET
            DecodeAsnConstructed:
              SEQUENCE
              DecodeAsnConstructed:
                Oid: 2.5.4.6
                Printable String
                qp_string: NL
              --DecodeAsnConstructed
            --DecodeAsnConstructed
            SET
            DecodeAsnConstructed:
              SEQUENCE
              DecodeAsnConstructed:
                Oid: 2.5.4.10
                Printable String
                qp_string: UPS
              --DecodeAsnConstructed
            --DecodeAsnConstructed
            SET
            DecodeAsnConstructed:
              SEQUENCE
              DecodeAsnConstructed:
                Oid: 2.5.4.11
                Printable String
                qp_string: UPS
              --DecodeAsnConstructed
            --DecodeAsnConstructed
            SET
            DecodeAsnConstructed:
              SEQUENCE
              DecodeAsnConstructed:
                Oid: 1.2.840.113549.1.9.1 (PKCS9 Signature Attribute)
                IA5 String
                qp_string: ups@douane.lan
              --DecodeAsnConstructed
            --DecodeAsnConstructed
          --DecodeAsnConstructed
          SEQUENCE
          DecodeAsnConstructed:
            UTC String
            qp_string: 150918094524Z
            UTC String
            qp_string: 200916094524Z
          --DecodeAsnConstructed
          SEQUENCE
          DecodeAsnConstructed:
            SET
            DecodeAsnConstructed:
              SEQUENCE
              DecodeAsnConstructed:
                Oid: 2.5.4.6
                Printable String
                qp_string: NL
              --DecodeAsnConstructed
            --DecodeAsnConstructed
            SET
            DecodeAsnConstructed:
              SEQUENCE
              DecodeAsnConstructed:
                Oid: 2.5.4.10
                Printable String
                qp_string: UPS
              --DecodeAsnConstructed
            --DecodeAsnConstructed
            SET
            DecodeAsnConstructed:
              SEQUENCE
              DecodeAsnConstructed:
                Oid: 2.5.4.11
                Printable String
                qp_string: UPS
              --DecodeAsnConstructed
            --DecodeAsnConstructed
            SET
            DecodeAsnConstructed:
              SEQUENCE
              DecodeAsnConstructed:
                Oid: 1.2.840.113549.1.9.1 (PKCS9 Signature Attribute)
                IA5 String
                qp_string: ups@douane.lan
              --DecodeAsnConstructed
            --DecodeAsnConstructed
          --DecodeAsnConstructed
          SEQUENCE
          DecodeAsnConstructed:
            SEQUENCE
            DecodeAsnConstructed:
              Oid: 1.2.840.113549.1.1.1
              Null
            --DecodeAsnConstructed
            Bit String
          --DecodeAsnConstructed
          Tag=Constructed
          DecodeAsnConstructed:
            SEQUENCE
            DecodeAsnConstructed:
              SEQUENCE
              DecodeAsnConstructed:
                Oid: 2.5.29.14
                OctetString: 22
                qp_string: =04=14=8B+=B5=EF=D5eT=1As=ECx=D5=9B5xL=03+=E8)
              --DecodeAsnConstructed
              SEQUENCE
              DecodeAsnConstructed:
                Oid: 2.5.29.35
                OctetString: 105
                qp_string: 0g=80=14=8B+=B5=EF=D5eT=1As=ECx=D5=9B5xL=03+=E8)=A1L=A4J0H1=0B0  =06=03U=04=
=06=13=02NL1=0C0=0A=06=03U=04=0A=13=03UPS1=0C0=0A=06=03U=04=0B=13=03UPS1=1D=
0=1B=06 *=86H
              --DecodeAsnConstructed
              SEQUENCE
              DecodeAsnConstructed:
                Oid: 2.5.29.19
                OctetString: 5
                qp_string: 0=03=01=01=FF
              --DecodeAsnConstructed
            --DecodeAsnConstructed
          --DecodeAsnConstructed
        --DecodeAsnConstructed
        SEQUENCE
        DecodeAsnConstructed:
          Oid: 1.2.840.113549.1.1.5
          Null
        --DecodeAsnConstructed
        Bit String
      --DecodeAsnConstructed
      Success.
    --importPfxData
  --DecryptUsingPfxFile
--ChilkatLog