question regarding digital signature

I need your help.

Do you know or do you have any info of how to digitally sign a DLL library?

Our virtual image printer driver is based on the MS WDK sample code Bitmap Printer Driver, which is a MS Unidriver plug-in, a DLL library.
I installed our driver on Windows XP for test by using “Add Printer Wizard”.
During the installation, I got an error message: “……has not passed Windows Logo testing to verify its compatibility with Windows XP”.
My question is how to do this for a DLL library?

I have my company’s digital signature: a certificate and a key.
They are being used in the building installation package for our company’s products. This is done by InstallShields. I think I have to use them for this image driver. But how?

Somebody also gave me a suggestion, sign it by a Strong Name. Is this correct?
Also, I guess this process will be totally different on Windows Vista.

Any help will be greatly appreciated!

xxxxx@hotmail.com wrote:

Do you know or do you have any info of how to digitally sign a DLL library?

Yes, but that’s not the problem you face.

Our virtual image printer driver is based on the MS WDK sample code Bitmap Printer Driver, which is a MS Unidriver plug-in, a DLL library.
I installed our driver on Windows XP for test by using “Add Printer Wizard”.
During the installation, I got an error message: “……has not passed Windows Logo testing to verify its compatibility with Windows XP”.
My question is how to do this for a DLL library?

You submit the DLL to WHQL for logo testing

I have my company’s digital signature: a certificate and a key.
They are being used in the building installation package for our company’s products. This is done by InstallShields. I think I have to use them for this image driver.

No. Your signature would affect the “has not passed Windows logo
testing” message. The only way to do that is – surprise – to pass
Windows logo testing.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Tim Roberts wrote:

xxxxx@hotmail.com wrote:
> I have my company’s digital signature: a certificate and a key.
> They are being used in the building installation package for our
> company’s products. This is done by InstallShields. I think I have to
> use them for this image driver.

No. Your signature would affect the “has not passed Windows logo
testing” message. The only way to do that is – surprise – to pass
Windows logo testing.

Sheesh. Please read that as: “Your signature would NOT affect the ‘has
not passed Windows logo testing’ message.”


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi Tim,

Thanks for your info.
I guess Windows logo testing is for Windows Vista? My target system right now is for 2000, XP, and 2003 server. I have to send the DLL to WHQL for logo testing?

Anyway, To do that, I need to sign my DLL first and then send the dll to MS for logo testing?
Am I right? What should I do to sign my DLL first?

Thanks in advance!

xxxxx@hotmail.com wrote:

Thanks for your info.
I guess Windows logo testing is for Windows Vista? My target system right now is for 2000, XP, and 2003 server. I have to send the DLL to WHQL for logo testing?

The logo signature will satisfy all of those systems. WHQL doesn’t do
testing on anything older than Vista.

Anyway, To do that, I need to sign my DLL first and then send the dll to MS for logo testing?
Am I right? What should I do to sign my DLL first?

You don’t need to sign your DLL, although you certainly can do so.
There are instructions on the signing process in white papers on the DDK
web site. You will have to run your driver through the Driver Test
Manager; that in itself will keep you busy for a while.

For the full scoop on the logo testing process, start here:
http://www.microsoft.com/whdc/winlogo/default.mspx
There’s a lot to learn.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Thank you again for your quick reply and info!

You mean the logo testing is good for all of systems, including 2k, Xp, 2003, and Vista?
You mean I don’t nee to sign the DLL. Simply go through the logo testing and pass the DTM test.
Does the Winlogo testing also needs certificate and keys?
What is strong name for? Strong name is an old term for Winlogo testing?

Thanks a lot!

> I guess Windows logo testing is for Windows Vista?

For all Windows from 2000 up.


Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

> What is strong name for? Strong name is an old term for Winlogo testing?

No, strong name is about digital signatures and SxS, mainly in .NET world.


Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

Hi Maxim,

Thank you for more info about this.
My purpose is to avoid the error of “has not passed Windows logo testing”.
So I need to go through Windows logo testing.
But what are those, including digital signature, SN.exe and keys, and digital certificate?
What are they for?
I will use those in the logo testing?

You can see I ma really not familiar with these things. I am learning!
Thank you for your help!

xxxxx@hotmail.com wrote:

You mean the logo testing is good for all of systems, including 2k, Xp, 2003, and Vista?
You mean I don’t nee to sign the DLL. Simply go through the logo testing and pass the DTM test.

I smiled when you said “simply”. Apparently, you have never been
through DTM and the logo testing process…

Does the Winlogo testing also needs certificate and keys?

You will need a certificate to create a WHQL account so that you can
submit your drivers for testing.

What is strong name for? Strong name is an old term for Winlogo testing?

No. “Strong name” is a term used for signing managed code assemblies.
It doesn’t apply to unmanaged code.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi Tim and Maxim,
Yes, I was a Unix guy basically and recently joined Windows world. DTM, Logotesting, SN, and digital signature are all new to me.

I think here is what I need to do to fix my problem. Please correct me if I am wrong.

  1. I need to give my DLL a strong name or digitally sign my code using keys.
  2. Then I need to submt my DLL to WHQL for testing. I need to pass the DTM test for a printer driver plug-in DLL library.
    Yes, you are right, I have a lot to learn!
    Thank both of you!

xxxxx@hotmail.com wrote:

Hi Tim and Maxim,
Yes, I was a Unix guy basically and recently joined Windows world. DTM, Logotesting, SN, and digital signature are all new to me.

I think here is what I need to do to fix my problem. Please correct me if I am wrong.

  1. I need to give my DLL a strong name or digitally sign my code using keys.

No. Strong names are for managed code assemblies. That means programs
written in one of the .NET languages that uses the CLR. Drivers are not
written with managed code (at least not yet). You can digitally sign
your DLL if you want to, but it won’t make any difference. And if you
do, you will use the “signtool” command, not the “sn” command.

  1. Then I need to submt my DLL to WHQL for testing. I need to pass the DTM test for a printer driver plug-in DLL library.

In the opposite order: first pass the DTM tests for a printer driver,
then submit to WHQL. You have to send your passing DTM logs to WHQL
when you submit the driver for logo testing.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

At 19:11 20/03/2008, xxxxx@hotmail.com wrote:

Hi Tim and Maxim,
Yes, I was a Unix guy basically and recently joined Windows
world. DTM, Logotesting, SN, and digital signature are all new to me.

I think here is what I need to do to fix my problem. Please correct
me if I am wrong.

  1. I need to give my DLL a strong name or digitally sign my code using keys.
  2. Then I need to submt my DLL to WHQL for testing. I need to pass
    the DTM test for a printer driver plug-in DLL library.
    Yes, you are right, I have a lot to learn!
    Thank both of you!

No, you need to go to http://winqual.microsoft.com and follow the
steps open an account, this includes purchasing a Class-3 Code
Signing certificate.

You also need to deploy the DTM environment. You can run the logo
tests for your driver without having to sign your driver. Once you
pass all the logo tests you use then create a logo submission which
you then submit, along with your driver package to WinQual. You must
run and pass the DTM tests for each type of O/S you want to be WHQL
signed for - this can be Windows 2000, XP 32 and 64 bit, Server 2003
32 and 64 bit, Vista 32 and 64 bit, Server 2008 32 and
64-bit. That’s potentially 9 environments to run and test.

If WinQual agree that your driver passes the relevant tests, then
they will sign your driver package (actually the .cat files) with the
WHQL certificate.

Sounds simple. Allow many weeks, if not months to reach the other side.

Good luck.

Mark.

Hi Mark,
Thank you for your message to clear my confusion.
You said that
“If WinQual agree that your driver passes the relevant tests, then
they will sign your driver package (actually the .cat files) with the
WHQL certificate.”
I am interested in the second part of the sentence: “they will sign your driver package with the WHQL certificate”. This means WHQL will do the digital signature for us if our DLL passes the relevant logo tests of WHQL. This means I don’t need to sign my DLL. That will be the direct result of Winlogo testing of WHQL.
Am I right?
Of course it seems that it won;t be easy to pass the tests.

Thank you!

xxxxx@hotmail.com wrote:

Hi Mark,
Thank you for your message to clear my confusion.
You said that
“If WinQual agree that your driver passes the relevant tests, then
they will sign your driver package (actually the .cat files) with the
WHQL certificate.”
I am interested in the second part of the sentence: “they will sign your driver package with the WHQL certificate”. This means WHQL will do the digital signature for us if our DLL passes the relevant logo tests of WHQL. This means I don’t need to sign my DLL. That will be the direct result of Winlogo testing of WHQL.
Am I right?

Right. The installer checks specifically for Microsoft’s signature,
applied by WHQL, not just for any old signature.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi there,

Thanks a lot!

What is a Class-3 Code Signing certificate from http://winqual.microsoft.com?
I guess it must be one for Unclassified software (in this case it is for my DLL) logo testing.
My DLL is a plug-in for Unidrive Printer Driver.Thank you!

Date: Fri, 21 Mar 2008 10:49:48 -0700> From: xxxxx@probo.com> To: xxxxx@lists.osr.com> Subject: Re: [ntdev] question regarding digital signature> > xxxxx@hotmail.com wrote:> > Hi Mark,> > Thank you for your message to clear my confusion.> > You said that> > “If WinQual agree that your driver passes the relevant tests, then > > they will sign your driver package (actually the .cat files) with the > > WHQL certificate.”> > I am interested in the second part of the sentence: “they will sign your driver package with the WHQL certificate”. This means WHQL will do the digital signature for us if our DLL passes the relevant logo tests of WHQL. This means I don’t need to sign my DLL. That will be the direct result of Winlogo testing of WHQL.> > Am I right?> > > > Right. The installer checks specifically for Microsoft’s signature, > applied by WHQL, not just for any old signature.> > – > Tim Roberts, xxxxx@probo.com> Providenza & Boekelheide, Inc.> > > —> NTDEV is sponsored by OSR> > For our schedule of WDF, WDM, debugging and other seminars visit: > http://www.osr.com/seminars\> > To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer


Watch ?Cause Effect,? a show about real people making a real difference. Learn more.
http://im.live.com/Messenger/IM/MTV/?source=text_watchcause

Michael,

You don’t get the Class-3 cert from WinQual, but you can’t open a
WinQual account without one. Essentially, this cert is used by
Winqual to prove that any logo submission packages you send in to
them, really do come from you. For you, the WinQual site simply
lists places where acceptable certs can be purchased.

For pre-Vista environments there is no nee whatsover to sign your
drivers with this certificate and post Vista all it does is add an
Authenticode wrapper to the driver. Basically the only thing this
does is tell the end user that the driver hasn’t been tampered with
since it was signed - it does not signify any thing else and
certainly not that it has been approved by anyone.

Mark.

At 19:18 21/03/2008, Michael Yuan wrote:

Hi there,

Thanks a lot!

What is a Class-3 Code Signing certificate from
http:http://winqual.microsoft.com?
>I guess it must be one for Unclassified software (in this case it is
>for my DLL) logo testing.
>My DLL is a plug-in for Unidrive Printer Driver.
>
>Thank you!
>
>
> > Date: Fri, 21 Mar 2008 10:49:48 -0700
> > From: xxxxx@probo.com
> > To: xxxxx@lists.osr.com
> > Subject: Re: [ntdev] question regarding digital signature
> >
> > xxxxx@hotmail.com wrote:
> > > Hi Mark,
> > > Thank you for your message to clear my confusion.
> > > You said that
> > > “If WinQual agree that your driver passes the relevant tests, then
> > > they will sign your driver package (actually the .cat files) with the
> > > WHQL certificate.”
> > > I am interested in the second part of the sentence: “they will
> sign your driver package with the WHQL certificate”. This means
> WHQL will do the digital signature for us if our DLL passes the
> relevant logo tests of WHQL. This means I don’t need to sign my
> DLL. That will be the direct result of Winlogo testing of WHQL.
> > > Am I right?
> > >
> >
> > Right. The installer checks specifically for Microsoft’s signature,
> > applied by WHQL, not just for any old signature.
> >
> > –
> > Tim Roberts, xxxxx@probo.com
> > Providenza & Boekelheide, Inc.
> >
> >
> > —
> > NTDEV is sponsored by OSR
> >
> > For our schedule of WDF, WDM, debugging and other seminars visit:
> > http://www.osr.com/seminars
> >
> > To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
>
>
>----------
>Watch “Cause Effect,” a show about real people making a real
>difference.
>http:Learn more.
>—
>NTDEV is sponsored by OSR
>
>For our schedule of WDF, WDM, debugging and other seminars visit:
>http://www.osr.com/seminars
>
>To unsubscribe, visit the List Server section of OSR Online at
>http://www.osronline.com/page.cfm?name=ListServer</http:></http:>