示例#1
0
        /// <summary>
        /// Return the decoded login data
        /// </summary>
        public static CryptoRNGData DecodeCryptoRNGData(byte[] buffer)
        {
            EncodingStream ec = new EncodingStream(buffer);

            byte[] Salt = ec.ReadNextEntry();
            byte[] IV   = ec.ReadNextEntry();
            return(new CryptoRNGData(Salt, IV));
        }
示例#2
0
        public HashValidator()
        {
            EncodingStream es = new EncodingStream(File.ReadAllBytes(Settings.Files.HashPath));

            this.Salt = es.ReadNextBytes();
            this.Hash = es.ReadNextBytes();
            es.Close();
        }
示例#3
0
        /// <summary>
        /// Return the encoded login data
        /// </summary>
        public static byte[] EncodeCryptoRNGData(CryptoRNGData Data)
        {
            EncodingStream ec = new EncodingStream();

            ec.WriteEntry(Data.Salt);
            ec.WriteEntry(Data.IV);
            ec.Close();
            return(ec.GetData());
        }
示例#4
0
        public static void SaveHash(string Password)
        {
            byte[]         Key  = Encoding.UTF8.GetBytes(Password);
            byte[]         Salt = CryptoFunctions.GenerateCryptoSecureBytes(Settings.Hash.SaltBytes);
            byte[]         Hash = CryptoFunctions.DeriveKey(Key, Salt, Settings.Hash.HashBytes, Settings.Hash.HashPBKDF2Iterations);
            EncodingStream es   = new EncodingStream(File.Open(Settings.Files.HashPath, FileMode.CreateNew));

            es.WriteBytes(Salt);
            es.WriteBytes(Hash);
            es.Close();
        }
示例#5
0
 public ArchiveReader(Stream _inputStream)
 {
     InputStream = new EncodingStream(_inputStream);
     entryCount  = InputStream.ReadHeader();
 }
示例#6
0
 public ArchiveWriter(Stream outputStream, int entryCount)
 {
     OutputStream = new EncodingStream(outputStream);
     OutputStream.WriteHeader(entryCount);
 }