Silverlight 5 WinRT

  public sealed class AsymmetricKeyAlgorithmProvider
  : __ComObject, IAsymmetricKeyAlgorithmProvider
  public virtual String AlgorithmName { get; }
  public virtual CryptographicPadding Padding { get; }
  public virtual SupportedKeyLengths SupportedKeyLengths { get; }
  static public IReadOnlyList`1<String> EnumerateEncryptionAlgorithms();
  static public IReadOnlyList`1<String> EnumerateSignatureAlgorithms();
  public virtual CryptographicKey GenerateKeyPair(UInt32 KeySize);
  public virtual CryptographicKey ImportKeyPair(IBuffer KeyBlob);
  public virtual CryptographicKey ImportPublicKey(IBuffer KeyBlob);
  static public AsymmetricKeyAlgorithmProvider OpenAlgorithm(String algorithm);

  public sealed enum CipherChainingMode
  : IComparable, IFormattable, IConvertible
  { Default, Cbc, Ecb, Ccm, Gcm }

  public sealed enum CryptographicAlgorithmClass
  : IComparable, IFormattable, IConvertible
  { Unsupported, SymmetricEncryption, Digest, AsymmetricEncryption, DigitalSignature, KeyDerivation, MessageAuthentication }

  public abstract sealed class CryptographicEngine
  : __ComObject
  static public IBuffer Decrypt(CryptographicKey Key, IBuffer Data, IBuffer IV);
  static public IBuffer DecryptAndAuthenticate(CryptographicKey Key, IBuffer Data, IBuffer Nonce, IBuffer AuthenticationTag, IBuffer AuthenticatedData);
  static public IBuffer DeriveKeyMaterial(CryptographicKey Key, KeyDerivationParameters Parameters, UInt32 DesiredKeySize);
  static public IBuffer Encrypt(CryptographicKey Key, IBuffer Data, IBuffer IV);
  static public EncryptedAndAuthenticatedData EncryptAndAuthenticate(CryptographicKey Key, IBuffer Data, IBuffer Nonce, IBuffer AuthenticatedData);
  static public IBuffer Sign(CryptographicKey Key, IBuffer Data);
  static public Boolean VerifySignature(CryptographicKey Key, IBuffer Data, IBuffer Signature);

  public sealed class CryptographicHash
  : __ComObject, IHashComputation
  public virtual void Append(IBuffer Data);
  public virtual IBuffer GetValue();

  public sealed class CryptographicKey
  : __ComObject, ICryptographicKey
  public virtual CryptographicKeyCapabilities Capabilities { get; }
  public virtual UInt32 KeySize { get; }
  public virtual IBuffer Export();
  public virtual IBuffer ExportPublicKey();

  public sealed enum CryptographicKeyCapabilities
  : IComparable, IFormattable, IConvertible
  { None, Encrypt, Decrypt, Sign, VerifySignature, DeriveKeyMaterial, EncryptAndAuthenticate, DecryptAndAuthenticate }

  public sealed enum CryptographicPadding
  : IComparable, IFormattable, IConvertible
  { None, Block, RsaOaep, RsaPkcs1, RsaPss }

  public sealed class EncryptedAndAuthenticatedData
  : __ComObject, IEncryptedAndAuthenticatedData
  public virtual IBuffer AuthenticationTag { get; }
  public virtual IBuffer EncryptedData { get; }

  public sealed class HashAlgorithmProvider
  : __ComObject, IHashAlgorithmProvider
  public virtual String AlgorithmName { get; }
  public virtual UInt32 HashLength { get; }
  public virtual CryptographicHash CreateHash();
  static public IReadOnlyList`1<String> EnumerateAlgorithms();
  public virtual IBuffer HashData(IBuffer Data);
  static public HashAlgorithmProvider OpenAlgorithm(String algorithm);

  public sealed class KeyDerivationAlgorithmProvider
  : __ComObject, IKeyDerivationAlgorithmProvider
  public virtual String AlgorithmName { get; }
  public virtual CryptographicKey CreateKey(IBuffer keyMaterial);
  static public IReadOnlyList`1<String> EnumerateAlgorithms();
  public virtual CryptographicKey ImportKey(IBuffer keyBlob);
  static public KeyDerivationAlgorithmProvider OpenAlgorithm(String algorithm);

  public sealed class KeyDerivationParameters
  : __ComObject, IKeyDerivationParameters
  public virtual UInt32 IterationCount { get; }
  public virtual IBuffer KdfGenericBinary { get; set; }
  static public KeyDerivationParameters BuildForPbkdf2(IBuffer Pbkdf2Salt, UInt32 IterationCount);
  static public KeyDerivationParameters BuildForSP800108(IBuffer Label, IBuffer Context);
  static public KeyDerivationParameters BuildForSP80056a(IBuffer AlgorithmId, IBuffer PartyUInfo, IBuffer PartyVInfo, IBuffer SuppPubInfo, IBuffer SuppPrivInfo);

  public sealed class MacAlgorithmProvider
  : __ComObject, IMacAlgorithmProvider
  public virtual String AlgorithmName { get; }
  public virtual UInt32 MacLength { get; }
  public virtual CryptographicKey CreateKey(IBuffer keyMaterial);
  static public IReadOnlyList`1<String> EnumerateAlgorithms();
  static public MacAlgorithmProvider OpenAlgorithm(String algorithm);

  public sealed struct SupportedKeyLengths
  : ValueType

  public sealed class SymmetricKeyAlgorithmProvider
  : __ComObject, ISymmetricKeyAlgorithmProvider
  public virtual String AlgorithmName { get; }
  public virtual UInt32 BlockLength { get; }
  public virtual CipherChainingMode CipherChainingMode { get; }
  public virtual CryptographicPadding Padding { get; }
  public virtual SupportedKeyLengths SupportedKeyLengths { get; }
  public virtual CryptographicKey CreateSymmetricKey(IBuffer keyMaterial);
  static public IReadOnlyList`1<String> EnumerateAlgorithms();
  public virtual CryptographicKey ImportKey(IBuffer keyBlob);
  static public SymmetricKeyAlgorithmProvider OpenAlgorithm(String algorithm);