Exemplo n.º 1
0
        public override byte[] Encrypt(byte[] data, RSAEncryptionPadding padding)
        {
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }
            if (padding == null)
            {
                throw new ArgumentNullException("padding");
            }

            if (padding == RSAEncryptionPadding.Pkcs1)
            {
                return(NCryptNative.EncryptDataPkcs1(KeyHandle, data));
            }
            else if (padding.Mode == RSAEncryptionPaddingMode.Oaep)
            {
                return(NCryptNative.EncryptDataOaep(KeyHandle, data, padding.OaepHashAlgorithm.Name));
            }
            else
            {
                // no other padding possibilities at present, but we might version independently from more being added.
                throw new CryptographicException(SR.GetString(SR.Cryptography_UnsupportedPaddingMode));
            };
        }