Skip to content
This repository was archived by the owner on Apr 1, 2024. It is now read-only.

Algorithms X platforms support

Andrew Arnott edited this page Nov 28, 2015 · 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:

Symmetric encryption algorithms

Algorithm net45 win80 wpa81 wp80 monotouch/ios android
AES
DES
3DES
RC2
RC4

Block modes

Algorithm net45 win80 wpa81 wp80 monotouch/ios android
CBC
ECB
CCM
GCM

Padding

Algorithm net45 win80 wpa81 wp80 monotouch/ios android
None
PKCS7
Zeros

Asymmetric encryption algorithms

Algorithm net45 win80 wpa81 wp80 monotouch/ios android
DSA
ECDSA
RSA
RSA-OAEP
RSASign
RsaSignPss

Key serialization formats

Private keys

Algorithm net45 win80 wpa81 wp80 monotouch/ios android
PKCS8 Raw Private Key info
PKCS1 RSA
BCrypt
CAPI1

Public keys

Algorithm net45 win80 wpa81 wp80 monotouch/ios android
X.509 Subject Public Key Info
PKCS1 RSA
BCrypt
CAPI1

Key derivation algorithms

Algorithm net45 win80 wpa81 wp80 monotouch/ios android
Pbkdf2
Sp800108CtrHmac
Sp80056aConcat

Hash algorithms

Algorithm net45 win80 wpa81 wp80 monotouch/ios android
MD5
SHA-1
SHA-256
SHA-384
SHA-512

MAC algorithms

Algorithm net45 win80 wpa81 wp80 monotouch/ios android
AES-CMAC
HMAC-MD5
HMAC-SHA1
HMAC-SHA256
HMAC-SHA384
HMAC-SHA512

Legend

TxM Platform
net45 .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.

Clone this wiki locally