Generate SHA1 Hash in Portable Class Library

c#, portable-class-library, sha1

Solution

Mono provides a managed implementation of SHA1 for it's own `mscorlib.dll` (but it's not located in `Mono.Security.dll` like @CodeInChaos suggested).

It's open source, very well tested and meant to behave exactly like Microsoft implementation (e.g. it derives from `SHA1`, `HashAlgorith`... implements `ICryptoTransform`...) so it should be an easy drop-in replacement.

Problem

I'm trying to build a portable class library that generates OAuth urls for other classes/applications to use. This class library using OAuth has to be a portable class library so it can work with different versions of a DropBox API I'm building. Part of this class needs to generate an SHA1 hash to generate the oauth_signature with. I'm aware that portable class library doesn't support System.Security.Cryptography, so is there anyway that this class can generate an SHA1 hash without that class?

Original source