Algorithms X platforms support - AArnott/PCLCrypto GitHub Wiki
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. **
Symmetric encryption algorithms
| Algorithm |
desktop |
win80 |
wpa81 |
wp80 |
monotouch/ios |
android |
| AES |
:ballot_box_with_check: |
:white_check_mark: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| DES |
:ballot_box_with_check: |
:white_check_mark: |
:ballot_box_with_check: |
:ballot_box_with_check: |
|
:ballot_box_with_check: |
| 3DES |
:ballot_box_with_check: |
:white_check_mark: |
:ballot_box_with_check: |
:ballot_box_with_check: |
|
|
| RC2 |
:ballot_box_with_check: |
:white_check_mark: |
:ballot_box_with_check: |
:ballot_box_with_check: |
|
|
| RC4 |
|
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
|
:ballot_box_with_check: |
Block modes
| Algorithm |
desktop |
win80 |
wpa81 |
wp80 |
monotouch/ios |
android |
| CBC |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| ECB |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| CCM |
|
:black_medium_small_square: |
|
|
|
|
| GCM |
|
:black_medium_small_square: |
|
|
|
|
Padding
| Algorithm |
desktop |
win80 |
wpa81 |
wp80 |
monotouch/ios |
android |
| None |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:no_entry: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| PKCS7 |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| Zeros |
:ballot_box_with_check: |
:white_check_mark: |
:ballot_box_with_check: |
:no_entry: |
|
:ballot_box_with_check: |
Asymmetric signing algorithms
| Algorithm |
desktop |
win80 |
wpa81 |
wp80 |
monotouch/ios |
android |
| DSA |
|
:ballot_box_with_check: |
:ballot_box_with_check: |
|
|
|
| ECDSA |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
|
|
|
| RSASign |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| RsaSignPss |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
Key exchange
| Algorithm |
desktop |
win80 |
wpa81 |
wp80 |
monotouch/ios |
android |
| RSA |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| RSA-OAEP |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| ECDH |
|
|
|
|
|
|
| DH |
|
|
|
|
|
|
Key serialization formats
Private keys
| Algorithm |
desktop |
win80 |
wpa81 |
wp80 |
monotouch/ios |
android |
| PKCS8 Raw Private Key info |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| PKCS1 RSA |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| BCrypt |
:black_medium_small_square: |
:ballot_box_with_check: |
:ballot_box_with_check: |
|
:no_entry: |
:no_entry: |
| CAPI1 |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:no_entry: |
:ballot_box_with_check: |
Public keys
| Algorithm |
desktop |
win80 |
wpa81 |
wp80 |
monotouch/ios |
android |
| X.509 Subject Public Key Info |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| PKCS1 RSA |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| BCrypt |
:black_medium_small_square: |
:ballot_box_with_check: |
:ballot_box_with_check: |
|
:no_entry: |
:no_entry: |
| CAPI1 |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
Key derivation algorithms
| Algorithm |
desktop |
win80 |
wpa81 |
wp80 |
monotouch/ios |
android |
| Pbkdf2 |
:black_medium_small_square: |
:ballot_box_with_check: |
:ballot_box_with_check: |
|
|
|
| Sp800108CtrHmac |
:black_medium_small_square: |
:ballot_box_with_check: |
:ballot_box_with_check: |
|
|
|
| Sp80056aConcat |
:black_medium_small_square: |
:ballot_box_with_check: |
:ballot_box_with_check: |
|
|
|
Hash algorithms
| Algorithm |
desktop |
win80 |
wpa81 |
wp80 |
monotouch/ios |
android |
| MD5 |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:no_entry: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| SHA-1 |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| SHA-256 |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| SHA-384 |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:no_entry: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| SHA-512 |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:no_entry: |
:ballot_box_with_check: |
:ballot_box_with_check: |
MAC algorithms
| Algorithm |
desktop |
win80 |
wpa81 |
wp80 |
monotouch/ios |
android |
| AES-CMAC |
|
:ballot_box_with_check: |
:ballot_box_with_check: |
|
|
|
| HMAC-MD5 |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:no_entry: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| HMAC-SHA1 |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| HMAC-SHA256 |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| HMAC-SHA384 |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:no_entry: |
:ballot_box_with_check: |
:ballot_box_with_check: |
| HMAC-SHA512 |
:ballot_box_with_check: |
:ballot_box_with_check: |
:ballot_box_with_check: |
:no_entry: |
:ballot_box_with_check: |
:ballot_box_with_check: |
Legend
| 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 |
| :white_check_mark: |
Supported, with functionality that exceeds that which is exposed by the platform's typical APIs |
| :ballot_box_with_check: |
Supported by platform and PCLCrypto |
| :black_medium_small_square: |
Supported by platform, but not yet by PCLCrypto |
| :no_entry: |
Not available on the platform. If you require this, consider BouncyCastle-PCL, which implements crypto and can fill gaps in the platform. |