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.