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

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. **

Symmetric encryption algorithms

Algorithm desktop win80 wpa81 wp80 monotouch/ios android
AES ☑️ ☑️ ☑️ ☑️ ☑️
DES ☑️ ☑️ ☑️ ☑️
3DES ☑️ ☑️ ☑️
RC2 ☑️ ☑️ ☑️
RC4 ☑️ ☑️ ☑️ ☑️

Block modes

Algorithm desktop win80 wpa81 wp80 monotouch/ios android
CBC ☑️ ☑️ ☑️ ☑️ ☑️ ☑️
ECB ☑️ ☑️ ☑️ ☑️ ☑️ ☑️
CCM
GCM

Padding

Algorithm desktop win80 wpa81 wp80 monotouch/ios android
None ☑️ ☑️ ☑️ ☑️ ☑️
PKCS7 ☑️ ☑️ ☑️ ☑️ ☑️ ☑️
Zeros ☑️ ☑️ ☑️

Asymmetric signing algorithms

Algorithm desktop win80 wpa81 wp80 monotouch/ios android
DSA ☑️ ☑️
ECDSA ☑️ ☑️ ☑️
RSASign ☑️ ☑️ ☑️ ☑️ ☑️ ☑️
RsaSignPss ☑️ ☑️ ☑️ ☑️ ☑️ ☑️

Key exchange

Algorithm desktop win80 wpa81 wp80 monotouch/ios android
RSA ☑️ ☑️ ☑️ ☑️ ☑️ ☑️
RSA-OAEP ☑️ ☑️ ☑️ ☑️ ☑️ ☑️
ECDH
DH

Key serialization formats

Private keys

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

Public keys

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

Key derivation algorithms

Algorithm desktop win80 wpa81 wp80 monotouch/ios android
Pbkdf2 ☑️ ☑️
Sp800108CtrHmac ☑️ ☑️
Sp80056aConcat ☑️ ☑️

Hash algorithms

Algorithm desktop win80 wpa81 wp80 monotouch/ios android
MD5 ☑️ ☑️ ☑️ ☑️ ☑️
SHA-1 ☑️ ☑️ ☑️ ☑️ ☑️ ☑️
SHA-256 ☑️ ☑️ ☑️ ☑️ ☑️ ☑️
SHA-384 ☑️ ☑️ ☑️ ☑️ ☑️
SHA-512 ☑️ ☑️ ☑️ ☑️ ☑️

MAC algorithms

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

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
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.