diff options
author | Anton Tykhyy <atykhyy@gmail.com> | 2019-08-05 21:05:57 +0300 |
---|---|---|
committer | Jb Evain <jb@evain.net> | 2019-08-05 21:05:57 +0300 |
commit | 12da1bf7e0e10278e05eeb23adfc72760bbb6668 (patch) | |
tree | 4dafa5bab05708b75787573108a52637f586f618 /Mono.Cecil | |
parent | b2d248c1caacf411f4b0433a807e7497a6f8e1a0 (diff) |
Don't rely on StrongNameKeyPair (#548)
Diffstat (limited to 'Mono.Cecil')
-rw-r--r-- | Mono.Cecil/AssemblyWriter.cs | 8 | ||||
-rw-r--r-- | Mono.Cecil/ModuleDefinition.cs | 16 |
2 files changed, 20 insertions, 4 deletions
diff --git a/Mono.Cecil/AssemblyWriter.cs b/Mono.Cecil/AssemblyWriter.cs index dd99516..3ea1088 100644 --- a/Mono.Cecil/AssemblyWriter.cs +++ b/Mono.Cecil/AssemblyWriter.cs @@ -102,8 +102,8 @@ namespace Mono.Cecil { if (symbol_writer_provider == null && parameters.WriteSymbols) symbol_writer_provider = new DefaultSymbolWriterProvider (); - if (parameters.StrongNameKeyPair != null && name != null) { - name.PublicKey = parameters.StrongNameKeyPair.PublicKey; + if (parameters.HasStrongNameKey && name != null) { + name.PublicKey = CryptoService.GetPublicKey (parameters); module.Attributes |= ModuleAttributes.StrongNameSigned; } @@ -125,8 +125,8 @@ namespace Mono.Cecil { stream.value.SetLength (0); writer.WriteImage (); - if (parameters.StrongNameKeyPair != null) - CryptoService.StrongName (stream.value, writer, parameters.StrongNameKeyPair); + if (parameters.HasStrongNameKey) + CryptoService.StrongName (stream.value, writer, parameters); } } finally { module.metadata_builder = null; diff --git a/Mono.Cecil/ModuleDefinition.cs b/Mono.Cecil/ModuleDefinition.cs index d98064f..707a135 100644 --- a/Mono.Cecil/ModuleDefinition.cs +++ b/Mono.Cecil/ModuleDefinition.cs @@ -183,6 +183,8 @@ namespace Mono.Cecil { Stream symbol_stream; ISymbolWriterProvider symbol_writer_provider; bool write_symbols; + byte [] key_blob; + string key_container; SR.StrongNameKeyPair key_pair; public uint? Timestamp { @@ -205,6 +207,20 @@ namespace Mono.Cecil { set { write_symbols = value; } } + public bool HasStrongNameKey { + get { return key_pair != null || key_blob != null || key_container != null; } + } + + public byte [] StrongNameKeyBlob { + get { return key_blob; } + set { key_blob = value; } + } + + public string StrongNameKeyContainer { + get { return key_container; } + set { key_container = value; } + } + public SR.StrongNameKeyPair StrongNameKeyPair { get { return key_pair; } set { key_pair = value; } |