title: Signing of .NET Assemblies
body: <p>What does digital signature have to do with strong named assemblies. I read that a strongly named assembly has public key and digital signature with it. </p>
  
  <p>From the <a href="https://en.wikipedia.org/wiki/Assembly_(CLI)#Assembly_names" rel="nofollow noreferrer">Wikipedia article "Assembly (CLI)"</a>:</p>
  
  <blockquote>
    <p>"Signing the assembly involves taking a hash of important parts of the assembly and then encrypting the hash with the private key. The signed hash is stored in the assembly along with the public key. The public key will decrypt the signed hash. When the CLR loads a strongly named assembly it will generate a hash from the assembly and then compare this with the decrypted hash. If the comparison succeeds then it means that the public key in the file (and hence the public key token) is associated with the private key used to sign the assembly. This will mean that the public key in the assembly is the public key of the assembly publisher and hence a spoofing attack is thwarted."</p>
  </blockquote>
  
  <p>Is the above info accurate? It doesn't have any reference to digital signature. I couldn't find an MSDN page explaining how assemblies are signed, how signature is verified and how possibility of hacking is eliminated. I would like to know more on these.</p>