Bug 725

Summary: Error CS1548: Error during assembly signing.
Product: [Desktop] Xamarin Studio Reporter: Chris Hardy [MSFT] <chrisntr>
Component: Project ModelAssignee: Bugzilla <bugzilla>
Status: REOPENED ---    
Severity: normal CC: gregm, masafa, minco.ko, mono-bugs+monodevelop, sebastien
Priority: Low    
Version: 2.6 RC 1   
Target Milestone: Future Cycle (TBD)   
Hardware: PC   
OS: Windows   
Tags: Is this bug a regression?: ---
Last known good build:
Attachments: sn key file

Description Chris Hardy [MSFT] 2011-09-10 14:33:08 UTC
error CS1548: Error during assembly signing. The specified key file `xxx.key.pfx' has incorrect formatWhen I signing a class type project, it build success on Visual Studio 2010
Comment 2 Marek Safar 2011-09-12 11:22:28 UTC
Could you attach the actual key or generate one which causes same problem
Comment 3 Sebastien Pouliot 2011-09-12 16:01:54 UTC
.pfx are PKCS#12 files. It looks like newer (2010?) version of Visual Studio allows people to strong name assemblies using them.

Mono.Security.dll support PKCS#12 files (mscorlib.dll too but only when used with X.509 certificates) but it's not clear that we want to embed all that code into the compiler!?!
Comment 4 Marek Safar 2011-09-12 17:12:52 UTC
Sebastian, can you attach example of such key
Comment 5 minco 2011-09-12 20:43:52 UTC
Created attachment 335 [details]
sn key file

it contains passord:123456
Comment 6 minco 2011-09-12 20:52:00 UTC
The sn key file were created by virsual studio 2010.
If I create a sn key file by %Program Files%\Mono-2.10.5\bin\sn.bat, both virsual studio 2010 and monodevelop 2.6 works, but no password.
Comment 7 Sebastien Pouliot 2011-09-13 11:33:06 UTC
Marek, I don't have a windows VM running at the moment but Minco's attachment is a valid pkcs#12 file, but without a certificate - i.e. only an encrypted keypair.

Minco, Mono's 'sn' tool (sn.bat on windows) currently only supports .snk (password-less files) and key containers. The same is true for the xMCS compilers.
Comment 8 Marek Safar 2011-09-16 09:09:04 UTC
I have done some further investigation and the way how it works with VS is that the file does not have to be installed but VS asks for a password and creates temporary container, the command line to C# compiler then contains key container

-keycontainer:VS_KEY_XXXXXXXXXXXXXXXX

I don't know whether XXXX is some file hash

I am leaving this as MD bug as it cannot send such files to compiler using -keyfile option