This repository was 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. |