Age | Commit message (Collapse) | Author |
|
|
|
number of parenthesis.
|
|
because the 'start > 0' condition didn't cover the entire expression.
|
|
The custom attribute table is sorted, but it may contain null entries, which
should be skipped. Teach the BinarySearch algorithm to skip those null entries.
|
|
Add support for the unmanaged (0x9) calling convention from .net core.
|
|
|
|
Pass DeclaredOnly to GetConstructorImpl (). This fixes crashes when running ikdasm on modules which have global types/methods.
|
|
ikdasm on modules which have global types/methods.
|
|
In e9946684, I fixed the usage of `SHA1Managed` that I found from a stack trace while running `mkbundle.exe` on Windows.
I found 3 more usages that needed to be fixed.
|
|
Context: https://github.com/xamarin/xamarin-android/pull/3728#issuecomment-537762227
On Windows 10 machines with the [Use FIPS compliant algorithms][0] group
policy enabled, `mkbundle` fails with:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\mkbundle.exe --dos2unix=false --nomain --i18n none --bundled-header --mono-api-struct-path "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\\mkbundle-api.h" --style linux -c -o obj\Release\bundles\x86_64\temp.c -oo obj\Release\bundles\x86_64\assemblies.o -z obj\Release\android\assets\UnnamedProject.dll obj\Release\android\assets\shrunk\Java.Interop.dll obj\Release\android\assets\shrunk\Mono.Android.dll obj\Release\android\assets\shrunk\mscorlib.dll obj\Release\android\assets\shrunk\System.Core.dll obj\Release\android\assets\shrunk\System.dll obj\Release\android\assets\shrunk\System.Runtime.Serialization.dll (TaskId:215)
Unhandled Exception: System.InvalidOperationException: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms. (TaskId:215)
at System.Security.Cryptography.SHA1Managed..ctor() (TaskId:215)
at IKVM.Reflection.AssemblyName.ComputePublicKeyToken(Byte[] publicKey) (TaskId:215)
at IKVM.Reflection.AssemblyName.get_FullName() (TaskId:215)
at IKVM.Reflection.Universe.LoadAssembly(RawModule module) (TaskId:215)
at IKVM.Reflection.Universe.LoadFile(String path) (TaskId:215)
at MakeBundle.LoadAssemblyFile(String assembly) (TaskId:215)
at MakeBundle.LoadAssemblies(List`1 sources) (TaskId:215)
at MakeBundle.Main(String[] args) (TaskId:215)
On a FIPS-enabled machine, these code examples:
var sha1 = new SHA1Managed();
Will throw:
System.InvalidOperationException:
This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.
But these three options work:
var sha1 = SHA1.Create();
var sha1 = new SHA1CryptoServiceProvider();
var sha1 = new SHA1Cng();
We should use `SHA1.Create()` which will use the appropriate
implementation if FIPS is enabled or not.
Since the `PublicKeyToken` of a .NET assembly is a SHA1 value, there
is not really another option--we have to make this change for
`mkbundle.exe` to work.
[0]: https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/system-cryptography-use-fips-compliant-algorithms-for-encryption-hashing-and-signing
|
|
generate them.
|
|
Embeddinator."
This reverts commit c1d0dec3cfcf092f9b67a9e58d71acb39833dfb4.
|
|
|
|
|
|
custom resolvers.
|
|
|
|
|
|
Fix MSBuild build with xbuild 12.0 engine (mono 4.2.1)
|
|
If anyone tried to build IKVM.Reflection with the xbuild 12.0
engine that comes with mono 4.2.1 [1] (quite widespread given
that it's the version bundled with Ubuntu 16.04.x LTS), the
build would not work.
This change similar to this recent commit in MonoAddins:
https://github.com/mono/mono-addins/commit/a3efa4ca9f56fab3aae32060b3b56d3585505966
[1] $ mono --version
Mono JIT compiler version 4.2.1 (Debian 4.2.1.102+dfsg2-7ubuntu4)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: sgen
|
|
This happens for PCL assemblies like System.Runtime which already exists in
versions 4.0.0.0, 4.0.10.0, 4.0.20.0
|
|
|
|
|
|
|
|
|
|
that 2GB is the maximum valid size.
|
|
behavior.
|
|
|
|
|
|
missing assembly reference.
|
|
|
|
allow otherwise empty <clinit> methods to be optimized away).
|
|
|
|
zero/null initialization of static fields. Removed bogus handling of incorrect return statements.
|
|
java/lang/System.java.
|
|
FieldWrapper.IsSerialVersionUID.
|
|
consistently) detect serialVersionUID fields.
|
|
|
|
|
|
of name comparisons.
|
|
|
|
|
|
AtomicReferenceFieldUpdater.
|
|
|
|
java/io/RandomAccessFile.java.
|
|
|
|
Also made the check more strict to only remove final fields and not remove fields that have annotations.
|
|
|
|
|
|
inner class.
|
|
|