Пример #1
0
        public static string ToEncodedString(
            this byte[] inArray, bool allowNulls, ByteArrayStringEncoding encoding = DefaultStringEncoding)
        {
            if (allowNulls && (inArray == null))
            {
                return(NullBytesString);
            }

            return(inArray.ToEncodedString(encoding));
        }
Пример #2
0
        public static byte[] ToByteArray(
            this string encodedString,
            bool allowNulls,
            ByteArrayStringEncoding fromEncoding = ConvertByteArray.DefaultStringEncoding)
        {
            if (allowNulls && (encodedString == null))
            {
                return(NullByteArray);
            }

            return(encodedString.ToByteArray(fromEncoding));
        }
        public static Encryptor CreateEncryptorWithGivenSalt(
            [NotNull] this SymmetricAlgorithm algorithm,
            [NotNull] string secretKey,
            [NotNull] string salt,
            ByteArrayStringEncoding saltEncoding = ConvertByteArray.DefaultStringEncoding,
            EncryptionOptions options            = DefaultOptions)
        {
            Contract.Requires <ArgumentNullException>(algorithm != null);
            Contract.Requires <ArgumentNullException>(secretKey != null);
            Contract.Requires <ArgumentNullException>(salt != null);

            return(algorithm.CreateEncryptorWithGivenSalt(secretKey, salt.ToByteArray(saltEncoding), options));
        }
Пример #4
0
            public void Ignores_Invalid_Encoding_With_Null_Input()
            {
                const ByteArrayStringEncoding invalidEncoding = (ByteArrayStringEncoding)17;

                // ReSharper disable once AssignNullToNotNullAttribute
                Assert.Throws <ArgumentNullException>(
                    () => ConvertEncodedString.ToByteArray(null, invalidEncoding));

                Assert.Throws <ArgumentNullException>(
                    () => ConvertEncodedString.ToByteArray(null, false, invalidEncoding));

                Assert.IsNull(ConvertEncodedString.ToByteArray(null, true, invalidEncoding));
            }
        public static Encryptor <T> CreateEncryptorWithGivenSalt <T>(
            [NotNull] string secretKey,
            [NotNull] string salt,
            ByteArrayStringEncoding saltEncoding = ConvertByteArray.DefaultStringEncoding,
            EncryptionOptions options            = DefaultOptions)
            where T : SymmetricAlgorithm
        {
            Contract.Requires <ArgumentNullException>(secretKey != null);
            Contract.Requires <ArgumentNullException>(salt != null);

            return(CreateEncryptorWithGivenSalt <T>(secretKey, salt.ToByteArray(
                                                        (options & EncryptionOptions.AllowNullInput) == EncryptionOptions.AllowNullInput,
                                                        saltEncoding)));
        }
Пример #6
0
            public void Rejects_Invalid_Encoding_With_Valid_Input()
            {
                const ByteArrayStringEncoding invalidEncoding = (ByteArrayStringEncoding)17;
                const string validInputString = KnownConstantHexadecimalString;

                Assert.Throws <ArgumentOutOfRangeException>(
                    () => validInputString.ToByteArray(invalidEncoding));

                Assert.Throws <ArgumentOutOfRangeException>(
                    () => validInputString.ToByteArray(true, invalidEncoding));

                Assert.Throws <ArgumentOutOfRangeException>(
                    () => validInputString.ToByteArray(false, invalidEncoding));
            }
        public static Encryptor <T> CreateEncryptor <T>(
            [NotNull] string secretKey,
            out string randomSalt,
            ByteArrayStringEncoding saltEncoding = ConvertByteArray.DefaultStringEncoding,
            EncryptionOptions options            = DefaultOptions)
            where T : SymmetricAlgorithm
        {
            Contract.Requires <ArgumentNullException>(secretKey != null);

            byte[]        randomSaltBytes;
            Encryptor <T> encryptor = CreateEncryptor <T>(secretKey, out randomSaltBytes, options);

            randomSalt = randomSaltBytes.ToEncodedString(saltEncoding);

            return(encryptor);
        }
        public static EncryptorWithChecksum CreateEncryptorWithGivenSalt(
            [NotNull] this SymmetricAlgorithm algorithm,
            [NotNull] KeyedHashAlgorithm checksumHasher,
            [NotNull] string password,
            [NotNull] string salt,
            ByteArrayStringEncoding saltEncoding = ConvertByteArray.DefaultStringEncoding,
            EncryptionOptions options            = DefaultOptions)
        {
            Contract.Requires <ArgumentNullException>(algorithm != null);
            Contract.Requires <ArgumentNullException>(checksumHasher != null);
            Contract.Requires <ArgumentNullException>(password != null);
            Contract.Requires <ArgumentNullException>(salt != null);

            return(algorithm.CreateEncryptorWithGivenSalt(
                       checksumHasher, password, salt.ToByteArray(saltEncoding), options));
        }
Пример #9
0
        public static string ToEncodedString(
            [NotNull] this byte[] inArray, ByteArrayStringEncoding encoding = DefaultStringEncoding)
        {
            Contract.Requires <ArgumentNullException>(inArray != null);

            // ReSharper disable once ConvertIfStatementToSwitchStatement
            if (encoding == ByteArrayStringEncoding.Base64)
            {
                return(inArray.ToBase64String());
            }

            if (encoding == ByteArrayStringEncoding.Hexadecimal)
            {
                return(inArray.ToHexadecimalString());
            }

            throw new ArgumentOutOfRangeException("encoding", encoding, "Invalid value for ByteArrayStringEncoding enumeration.");
        }
Пример #10
0
        public static byte[] ToByteArray(
            [NotNull] this string encodedString,
            ByteArrayStringEncoding fromEncoding = ConvertByteArray.DefaultStringEncoding)
        {
            Contract.Requires <ArgumentNullException>(encodedString != null);

            // ReSharper disable once ConvertIfStatementToSwitchStatement
            if (fromEncoding == ByteArrayStringEncoding.Base64)
            {
                return(encodedString.FromBase64());
            }

            // ReSharper disable once InvertIf
            if (fromEncoding == ByteArrayStringEncoding.Hexadecimal)
            {
                return(encodedString.FromHexadecimal());
            }

            throw new ArgumentOutOfRangeException();
        }
        public static EncryptorWithChecksum CreateEncryptor(
            [NotNull] this SymmetricAlgorithm algorithm,
            [NotNull] KeyedHashAlgorithm checksumHasher,
            [NotNull] string password,
            out string randomSalt,
            ByteArrayStringEncoding saltEncoding = ConvertByteArray.DefaultStringEncoding,
            EncryptionOptions options            = DefaultOptions)
        {
            Contract.Requires <ArgumentNullException>(algorithm != null);
            Contract.Requires <ArgumentNullException>(checksumHasher != null);
            Contract.Requires <ArgumentNullException>(password != null);

            byte[] randomSaltBytes;
            EncryptorWithChecksum encryptor = algorithm.CreateEncryptor(
                checksumHasher, password, out randomSaltBytes, options);

            randomSalt = randomSaltBytes.ToEncodedString(saltEncoding);

            return(encryptor);
        }
Пример #12
0
		public static byte[] ToByteArray(
			[NotNull] this string encodedString,
			ByteArrayStringEncoding fromEncoding = ConvertByteArray.DefaultStringEncoding)
		{
			Contract.Requires<ArgumentNullException>(encodedString != null);

			// ReSharper disable once ConvertIfStatementToSwitchStatement
			if (fromEncoding == ByteArrayStringEncoding.Base64)
			{
				return encodedString.FromBase64();
			}
	
			// ReSharper disable once InvertIf
			if (fromEncoding == ByteArrayStringEncoding.Hexadecimal)
			{
				return encodedString.FromHexadecimal();
			}

			throw new ArgumentOutOfRangeException();
		}
Пример #13
0
		public static byte[] ToByteArray(
			this string encodedString,
			bool allowNulls,
			ByteArrayStringEncoding fromEncoding = ConvertByteArray.DefaultStringEncoding)
		{
			if (allowNulls && (encodedString == null))
			{
				return NullByteArray;
			}

			return encodedString.ToByteArray(fromEncoding);
		}
Пример #14
0
		public static string ToEncodedString(
			this byte[] inArray, bool allowNulls, ByteArrayStringEncoding encoding = DefaultStringEncoding)
		{
			if (allowNulls && (inArray == null))
			{
				return NullBytesString;
			}

			return inArray.ToEncodedString(encoding);
		}
Пример #15
0
		public static string ToEncodedString(
			[NotNull] this byte[] inArray, ByteArrayStringEncoding encoding = DefaultStringEncoding)
		{
			Contract.Requires<ArgumentNullException>(inArray != null);

			// ReSharper disable once ConvertIfStatementToSwitchStatement
			if (encoding == ByteArrayStringEncoding.Base64)
			{
				return inArray.ToBase64String();
			}

			if (encoding == ByteArrayStringEncoding.Hexadecimal)
			{
				return inArray.ToHexadecimalString();
			}

			throw new ArgumentOutOfRangeException("encoding", encoding, "Invalid value for ByteArrayStringEncoding enumeration.");
		}