locked
Windows 7: How to digitally sign a Cryptographic Service Provider (CSP) RRS feed

  • Question

  • Hi,

    We are in the process of developing a Cryptographic Service Provider (CSP) which are implemented as Dynamic-link libraries (.dll). The dll work fine in windows 10 but it not work in windows 7. I know I need to sign the dll with a Trusted Certificate, so I have bought a certificate for Microsoft Authenticode from GlobalSign.

    I have used Signtool to sign my dll and add cross certificate. I have try to verify the signed dll and it is ok (please check attached image).

    But when I try load my CSP, it fail, I have used the CryptAcquireContext function and It fail with an "Invalid signature" error code.

    Can you tell me what thing I wrong? OR What I need to do to fix this?

    Thank so much!

    My code to sign and verify dll:

    set FileToSign="%cd%\eTokenCsp.dll"
    set TimeStampURL="http://timestamp.verisign.com/scripts/timstamp.dll"
    set CrossCert="MSCV-GlobalsignR3.cer"
    set ThumbprintCert="ac61222adc86ac6bbfc8ad8e0dd81f7d96fff64b"
    
    echo Signing file: %FileToSign%
    
    signtool sign /v /ph /ac %CrossCert% /t %TimeStampURL% /sha1 %ThumbprintCert% %FileToSign%
    signtool verify /v /kp %FileToSign%

    Output verify dll

    C:\Users\Tony\Desktop\TestCSP>signtool verify /v /kp eTokenCsp.dll
    
    Verifying: eTokenCsp.dll
    Hash of file (sha1): 4CCA87F43123DB3D658E1F0ECF1D24D6FA2CD296
    
    Signing Certificate Chain:
        Issued to: GlobalSign
        Issued by: GlobalSign
        Expires:   Sun Mar 18 17:00:00 2029
        SHA1 hash: D69B561148F01C77C54578C10926DF5B856976AD
    
            Issued to: GlobalSign Extended Validation CodeSigning CA - SHA256 - G3
            Issued by: GlobalSign
            Expires:   Sat Jun 15 07:00:00 2024
            SHA1 hash: 87A63D9ADB627D777836153C680A3DFCF27DE90C
    
                Issued to: MY COMPANY
                Issued by: GlobalSign Extended Validation CodeSigning CA - SHA256 -
    G3
                Expires:   Sun Mar 26 16:20:48 2023
                SHA1 hash: AC61222ADC86AC6BBFC8AD8E0DD81F7D96FFF64B
    
    The signature is timestamped: Tue Apr 07 09:40:00 2020
    Timestamp Verified by:
        Issued to: GlobalSign
        Issued by: GlobalSign
        Expires:   Sun Mar 18 17:00:00 2029
        SHA1 hash: D69B561148F01C77C54578C10926DF5B856976AD
    
            Issued to: GlobalSign Timestamping CA - SHA256 - G2
            Issued by: GlobalSign
            Expires:   Thu Mar 29 17:00:00 2029
            SHA1 hash: 91843BBD936D86EAFA42A3AFBF33E92831068F99
    
                Issued to: GlobalSign TSA for MS Authenticode advanced - G2
                Issued by: GlobalSign Timestamping CA - SHA256 - G2
                Expires:   Sun Mar 18 17:00:00 2029
                SHA1 hash: 3EC766D5D4D472E21B1F2143521C31B790D94B68
    
    Cross Certificate Chain:
        Issued to: Microsoft Code Verification Root
        Issued by: Microsoft Code Verification Root
        Expires:   Sat Nov 01 20:54:03 2025
        SHA1 hash: 8FBE4D070EF8AB1BCCAF2A9D5CCAE7282A2C66B3
    
            Issued to: GlobalSign
            Issued by: Microsoft Code Verification Root
            Expires:   Thu Jun 05 00:47:53 2025
            SHA1 hash: 814A5BB5E9093011E121E75169008F6F4667363D
    
                Issued to: GlobalSign Extended Validation CodeSigning CA - SHA256 -
    G3
                Issued by: GlobalSign
                Expires:   Sat Jun 15 07:00:00 2024
                SHA1 hash: 87A63D9ADB627D777836153C680A3DFCF27DE90C
    
                    Issued to: MY COMPANY
                    Issued by: GlobalSign Extended Validation CodeSigning CA - SHA25
    6 - G3
                    Expires:   Sun Mar 26 16:20:48 2023
                    SHA1 hash: AC61222ADC86AC6BBFC8AD8E0DD81F7D96FFF64B
    
    File has page hashes.
    
    Successfully verified: eTokenCsp.dll
    
    Number of files successfully Verified: 1
    Number of warnings: 0
    Number of errors: 0

    Tuesday, April 7, 2020 4:12 AM