Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/cecil.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tykhyy <atykhyy@gmail.com>2019-08-05 21:05:57 +0300
committerJb Evain <jb@evain.net>2019-08-05 21:05:57 +0300
commit12da1bf7e0e10278e05eeb23adfc72760bbb6668 (patch)
tree4dafa5bab05708b75787573108a52637f586f618 /Mono.Cecil
parentb2d248c1caacf411f4b0433a807e7497a6f8e1a0 (diff)
Don't rely on StrongNameKeyPair (#548)
Diffstat (limited to 'Mono.Cecil')
-rw-r--r--Mono.Cecil/AssemblyWriter.cs8
-rw-r--r--Mono.Cecil/ModuleDefinition.cs16
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; }