kmaragon / Konscious.Security.Cryptography

MIT License
201 stars 20 forks source link

Make the Argon2 and Blake2 projects cross compile for net461 #5

Closed hlindqvist closed 7 years ago

hlindqvist commented 7 years ago

I'd like to propose the addition of net461 as an additional build target as the code base already appears to essentially work as-is across both netcoreapp1.0 and net461.

The problem I did encounter was that HMAC.Key in net461 throws when there is no key set, hence the additional null check on HMAC.KeyValue.

kmaragon commented 7 years ago

I wholeheartedly approve. But I'm in a bit of a conundrum. Merging this means that any time I try to publish the nuget package, I get:

Object reference not set to an instance of an object.

From the CLI tool itself. I suspect it's because trying to build net461 on Linux, regardless of mono, just doesn't work. And since I wrote this on Linux, and don't actually have a valid Windows license at my disposal, I don't actually have a way to continue to publish packages if I merge this. Though I very very much want to.

I'll spend some time when I have it trying to figure out how to make it work. It at least should be theoretically possible as I do actually have mono installed and I think mono can target 461. Or maybe not. Maybe it can only do 451 at this point :grimacing:

prajaybasu commented 7 years ago

@kmaragon Have you looked at .NET CI solutions like AppVeyor (free for OSS), which supports net461 I think ?

kmaragon commented 7 years ago

Oh neat! I haven't. In fact, I kept thinking " too bad Travis CI is all Linux because they'll have the same issue I do, so I'll have to solve it anyway." I'll see if I can whip that up and drop this guy (possibly as net451 for mono support if need be) in over the next few days.

kmaragon commented 7 years ago

This got closed by virtue of me merging #6

I pushed the new packages up to nuget. Rather than net461 I pushed net451 so people can build with mono as well. There's also a NETStandard1.3 target.

It is also building in appveyor now. Let me know if that gets you running ok. I think 461 can use a 451 assembly right?

hlindqvist commented 7 years ago

@kmaragon yes, if it works in net451 I'm sure that will do just fine. However, I think you'd want to adjust the #if preprocessor directive accordingly. I suspect that it throws NREs as it is now (if you run the tests or use it).

kmaragon commented 7 years ago

doh... on the way