This repository has been archived by the owner on Apr 1, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 55
Algorithms X platforms support
Andrew Arnott edited this page Jan 2, 2016
·
16 revisions
PCLCrypto does not implement cryptography. It merely exposes cryptography that is in the underlying platform in a common PCL-compatible API. The API may allow calling into crypto functions or algorithms that are not available on an individual platform that you run on, in which case you may get a NotSupportedException
at runtime.
The tables below serve as a guide so you can predict what you can expect to work:
** NOTE: This page is under construction and still somewhat incomplete. **
Algorithm | desktop | win80 | wpa81 | wp80 | monotouch/ios | android |
---|---|---|---|---|---|---|
AES | ☑️ | ✅ | ☑️ | ☑️ | ☑️ | ☑️ |
DES | ☑️ | ✅ | ☑️ | ☑️ | ☑️ | |
3DES | ☑️ | ✅ | ☑️ | ☑️ | ||
RC2 | ☑️ | ✅ | ☑️ | ☑️ | ||
RC4 | ☑️ | ☑️ | ☑️ | ☑️ |
Algorithm | desktop | win80 | wpa81 | wp80 | monotouch/ios | android |
---|---|---|---|---|---|---|
CBC | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ |
ECB | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ |
CCM | ◾ | |||||
GCM | ◾ |
Algorithm | desktop | win80 | wpa81 | wp80 | monotouch/ios | android |
---|---|---|---|---|---|---|
None | ☑️ | ☑️ | ☑️ | ⛔ | ☑️ | ☑️ |
PKCS7 | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ |
Zeros | ☑️ | ✅ | ☑️ | ⛔ | ☑️ |
Algorithm | desktop | win80 | wpa81 | wp80 | monotouch/ios | android |
---|---|---|---|---|---|---|
DSA | ☑️ | ☑️ | ||||
ECDSA | ☑️ | ☑️ | ☑️ | |||
RSASign | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ |
RsaSignPss | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ |
Algorithm | desktop | win80 | wpa81 | wp80 | monotouch/ios | android |
---|---|---|---|---|---|---|
RSA | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ |
RSA-OAEP | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ |
ECDH | ||||||
DH |
Algorithm | desktop | win80 | wpa81 | wp80 | monotouch/ios | android |
---|---|---|---|---|---|---|
PKCS8 Raw Private Key info | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ |
PKCS1 RSA | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ |
BCrypt | ◾ | ☑️ | ☑️ | ⛔ | ⛔ | |
CAPI1 | ☑️ | ☑️ | ☑️ | ☑️ | ⛔ | ☑️ |
Algorithm | desktop | win80 | wpa81 | wp80 | monotouch/ios | android |
---|---|---|---|---|---|---|
X.509 Subject Public Key Info | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ |
PKCS1 RSA | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ |
BCrypt | ◾ | ☑️ | ☑️ | ⛔ | ⛔ | |
CAPI1 | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ |
Algorithm | desktop | win80 | wpa81 | wp80 | monotouch/ios | android |
---|---|---|---|---|---|---|
Pbkdf2 | ◾ | ☑️ | ☑️ | |||
Sp800108CtrHmac | ◾ | ☑️ | ☑️ | |||
Sp80056aConcat | ◾ | ☑️ | ☑️ |
Algorithm | desktop | win80 | wpa81 | wp80 | monotouch/ios | android |
---|---|---|---|---|---|---|
MD5 | ☑️ | ☑️ | ☑️ | ⛔ | ☑️ | ☑️ |
SHA-1 | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ |
SHA-256 | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ |
SHA-384 | ☑️ | ☑️ | ☑️ | ⛔ | ☑️ | ☑️ |
SHA-512 | ☑️ | ☑️ | ☑️ | ⛔ | ☑️ | ☑️ |
Algorithm | desktop | win80 | wpa81 | wp80 | monotouch/ios | android |
---|---|---|---|---|---|---|
AES-CMAC | ☑️ | ☑️ | ||||
HMAC-MD5 | ☑️ | ☑️ | ☑️ | ⛔ | ☑️ | ☑️ |
HMAC-SHA1 | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ |
HMAC-SHA256 | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ | ☑️ |
HMAC-SHA384 | ☑️ | ☑️ | ☑️ | ⛔ | ☑️ | ☑️ |
HMAC-SHA512 | ☑️ | ☑️ | ☑️ | ⛔ | ☑️ | ☑️ |
TxM | Platform |
---|---|
desktop | .NET Framework 4.5 (Windows desktop apps) |
win80 | Windows Store app (WinRT and UWP) |
wpa81 | Windows Phone 8.1 (AppX) |
wp80 | Windows Phone 8.0 (Silverlight) |
monotouch/ios | Xamarin.iOS and MonoTouch |
android | Xamarin.Android |
Symbol | Explanation |
---|---|
✅ | Supported, with functionality that exceeds that which is exposed by the platform's typical APIs |
☑️ | Supported by platform and PCLCrypto |
◾ | Supported by platform, but not yet by PCLCrypto |
⛔ | Not available on the platform. If you require this, consider BouncyCastle-PCL, which implements crypto and can fill gaps in the platform. |