예제 #1
0
파일: Haval.cs 프로젝트: relaxar/HashLib
        internal Haval(HashRounds a_rounds, HashSize a_hash_size)
            : base((int)a_hash_size, 128)
        {
            m_rounds = (int)a_rounds;

            Initialize();
        }
예제 #2
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="a_rounds">4, 8</param>
            /// <param name="a_hash_size">128, 256</param>
            /// <returns></returns>
            public static IHash CreateSnefru(HashRounds a_rounds, HashLib.HashSize a_hash_size)
            {
                switch (a_rounds)
                {
                case HashRounds.Rounds4:

                    switch (a_hash_size)
                    {
                    case HashLib.HashSize.HashSize128: return(CreateSnefru_4_128());

                    case HashLib.HashSize.HashSize256: return(CreateSnefru_4_256());

                    default: throw new ArgumentException();
                    }

                case HashRounds.Rounds8:

                    switch (a_hash_size)
                    {
                    case HashLib.HashSize.HashSize128: return(CreateSnefru_8_128());

                    case HashLib.HashSize.HashSize256: return(CreateSnefru_8_256());

                    default: throw new ArgumentException();
                    }

                default: throw new ArgumentException();
                }
            }
예제 #3
0
        public Tiger(HashRounds a_rounds)
            : base(24, 64)
        {
            m_rounds = (int)a_rounds;

            Initialize();
        }
예제 #4
0
        protected Tiger(int hashSize, HashRounds rounds)
            : base(hashSize, 64)
        {
            switch (hashSize)
            {
            case 16:
            case 20:
            case 24:
                break;

            default:
                throw new ArgumentException(InvalidTigerHashSize);
            }

            switch (rounds)
            {
            case HashRounds.Rounds3:
            case HashRounds.Rounds4:
            case HashRounds.Rounds5:
                Rounds = (int)rounds;
                State  = new ulong[3];
                break;

            default:
                throw new ArgumentException(InvalidTigerHashRound);
            }
        }
예제 #5
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="a_rounds">3, 4, 5</param>
            /// <param name="a_hash_size">128, 160, 192, 224, 256</param>
            /// <returns></returns>
            public static IHash CreateHaval(HashRounds a_rounds, HashLib.HashSize a_hash_size)
            {
                switch (a_rounds)
                {
                case HashRounds.Rounds3:

                    switch (a_hash_size)
                    {
                    case HashLib.HashSize.HashSize128: return(CreateHaval_3_128());

                    case HashLib.HashSize.HashSize160: return(CreateHaval_3_160());

                    case HashLib.HashSize.HashSize192: return(CreateHaval_3_192());

                    case HashLib.HashSize.HashSize224: return(CreateHaval_3_224());

                    case HashLib.HashSize.HashSize256: return(CreateHaval_3_256());

                    default: throw new ArgumentException();
                    }

                case HashRounds.Rounds4:

                    switch (a_hash_size)
                    {
                    case HashLib.HashSize.HashSize128: return(CreateHaval_4_128());

                    case HashLib.HashSize.HashSize160: return(CreateHaval_4_160());

                    case HashLib.HashSize.HashSize192: return(CreateHaval_4_192());

                    case HashLib.HashSize.HashSize224: return(CreateHaval_4_224());

                    case HashLib.HashSize.HashSize256: return(CreateHaval_4_256());

                    default: throw new ArgumentException();
                    }

                case HashRounds.Rounds5:

                    switch (a_hash_size)
                    {
                    case HashLib.HashSize.HashSize128: return(CreateHaval_5_128());

                    case HashLib.HashSize.HashSize160: return(CreateHaval_5_160());

                    case HashLib.HashSize.HashSize192: return(CreateHaval_5_192());

                    case HashLib.HashSize.HashSize224: return(CreateHaval_5_224());

                    case HashLib.HashSize.HashSize256: return(CreateHaval_5_256());

                    default: throw new ArgumentException();
                    }

                default: throw new ArgumentException();
                }
            }
예제 #6
0
            ///////////////////////////////////////////
            /// <summary>
            /// Tiger2 Hash Family
            /// </summary>
            ////////////////////////////////////////////

            /// <summary>
            /// Tiger2 Hash
            /// </summary>
            /// <param name="a_hash_size">16, 20 or 24 bytes. </param>
            /// <param name="a_rounds">no of rounds (standard rounds are 3, 4 and 5)</param>
            /// <returns></returns>
            public static IHash CreateTiger2(Int32 a_hash_size, HashRounds a_rounds)
            {
                if ((a_hash_size != 16) && (a_hash_size != 20) && (a_hash_size != 24))
                {
                    throw new ArgumentHashLibException(Tiger2.InvalidTiger2HashSize);
                }

                return(new Tiger2_Base(a_hash_size, a_rounds));
            } // end function CreateTiger2
예제 #7
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="a_rounds">3, 4</param>
            /// <returns></returns>
            public static IHash CreateTiger(HashRounds a_rounds)
            {
                switch (a_rounds)
                {
                case HashRounds.Rounds3: return(CreateTiger_3_192());

                case HashRounds.Rounds4: return(CreateTiger_4_192());

                default: throw new ArgumentException();
                }
            }
예제 #8
0
        public Tiger(HashRounds a_rounds)
            : base(24, 64)
        {
            m_rounds = (int)a_rounds;

            Initialize();
        }
예제 #9
0
 private Tiger_128(HashSize hashSize, HashRounds rounds)
     : base((int)hashSize, rounds)
 {
 }
예제 #10
0
 protected Tiger2(Int32 a_hash_size, HashRounds a_rounds)
     : base(a_hash_size, a_rounds)
 {
 }   // end constructor
예제 #11
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="a_rounds">3, 4</param>
 /// <returns></returns>
 public static IHash CreateTiger(HashRounds a_rounds)
 {
     switch (a_rounds)
     {
         case HashRounds.Rounds3: return CreateTiger_3_192();
         case HashRounds.Rounds4: return CreateTiger_4_192();
         default: throw new ArgumentException();
     }
 }
예제 #12
0
파일: Snefru.cs 프로젝트: relaxar/bin.net
        protected Snefru(HashRounds a_rounds, HashSize a_hashSize)
            : base((int)a_hashSize, 64 - ((int)a_hashSize))
        {
            m_rounds = (int)a_rounds;
            m_state = new uint[HashSize / 4];

            Initialize();
        }
예제 #13
0
            ///////////////////////////////////////////
            /// <summary>
            /// Haval Hash Family
            /// </summary>
            ////////////////////////////////////////////

            /// <summary>
            ///
            /// </summary>
            /// <param name="a_rounds">3, 4, 5</param>
            /// <param name="a_hash_size">128, 160, 192, 224, 256</param>
            /// <returns></returns>
            public static IHash CreateHaval(HashRounds a_rounds, HashSizeEnum a_hash_size)
            {
                switch (a_rounds)
                {
                case HashRounds.Rounds3:
                    switch (a_hash_size)
                    {
                    case HashSizeEnum.HashSize128:
                        return(CreateHaval_3_128());

                    case HashSizeEnum.HashSize160:
                        return(CreateHaval_3_160());

                    case HashSizeEnum.HashSize192:
                        return(CreateHaval_3_192());

                    case HashSizeEnum.HashSize224:
                        return(CreateHaval_3_224());

                    case HashSizeEnum.HashSize256:
                        return(CreateHaval_3_256());

                    default:
                        throw new ArgumentHashLibException(Haval.InvalidHavalHashSize);
                    }     // end switch

                case HashRounds.Rounds4:
                    switch (a_hash_size)
                    {
                    case HashSizeEnum.HashSize128:
                        return(CreateHaval_4_128());

                    case HashSizeEnum.HashSize160:
                        return(CreateHaval_4_160());

                    case HashSizeEnum.HashSize192:
                        return(CreateHaval_4_192());

                    case HashSizeEnum.HashSize224:
                        return(CreateHaval_4_224());

                    case HashSizeEnum.HashSize256:
                        return(CreateHaval_4_256());

                    default:
                        throw new ArgumentHashLibException(Haval.InvalidHavalHashSize);
                    }     // end switch

                case HashRounds.Rounds5:
                    switch (a_hash_size)
                    {
                    case HashSizeEnum.HashSize128:
                        return(CreateHaval_5_128());

                    case HashSizeEnum.HashSize160:
                        return(CreateHaval_5_160());

                    case HashSizeEnum.HashSize192:
                        return(CreateHaval_5_192());

                    case HashSizeEnum.HashSize224:
                        return(CreateHaval_5_224());

                    case HashSizeEnum.HashSize256:
                        return(CreateHaval_5_256());

                    default:
                        throw new ArgumentHashLibException(Haval.InvalidHavalHashSize);
                    }     // end switch

                default:
                    throw new ArgumentHashLibException(Haval.InvalidHavalRound);
                } // end switch
            }     // end function Haval
예제 #14
0
 public Tiger2_Base(Int32 a_hash_size, HashRounds a_rounds)
     : base(a_hash_size, a_rounds)
 {
 }
예제 #15
0
 private Tiger2_192(HashSize hashSize, HashRounds rounds)
     : base((int)hashSize, rounds)
 {
 }
예제 #16
0
        } // end function Clone

        private Tiger2_192(HashSizeEnum a_hash_size, HashRounds a_rounds)
            : base((Int32)a_hash_size, a_rounds)
        {
        }
예제 #17
0
 protected Tiger2(int hashSize, HashRounds rounds)
     : base(hashSize, rounds)
 {
 }
예제 #18
-1
            /// <summary>
            /// 
            /// </summary>
            /// <param name="a_rounds">3, 4, 5</param>
            /// <param name="a_hashSize">128, 160, 192, 224, 256</param>
            /// <returns></returns>
            public static IHash CreateHaval(HashRounds a_rounds, HashLib.HashSize a_hashSize)
            {
                switch (a_rounds)
                {
                    case HashRounds.Rounds3:

                        switch (a_hashSize)
                        {
                            case HashLib.HashSize.HashSize128: return CreateHaval_3_128();
                            case HashLib.HashSize.HashSize160: return CreateHaval_3_160();
                            case HashLib.HashSize.HashSize192: return CreateHaval_3_192();
                            case HashLib.HashSize.HashSize224: return CreateHaval_3_224();
                            case HashLib.HashSize.HashSize256: return CreateHaval_3_256();
                            default: throw new ArgumentException();
                        }

                    case HashRounds.Rounds4:

                        switch (a_hashSize)
                        {
                            case HashLib.HashSize.HashSize128: return CreateHaval_4_128();
                            case HashLib.HashSize.HashSize160: return CreateHaval_4_160();
                            case HashLib.HashSize.HashSize192: return CreateHaval_4_192();
                            case HashLib.HashSize.HashSize224: return CreateHaval_4_224();
                            case HashLib.HashSize.HashSize256: return CreateHaval_4_256();
                            default: throw new ArgumentException();
                        }

                    case HashRounds.Rounds5:

                        switch (a_hashSize)
                        {
                            case HashLib.HashSize.HashSize128: return CreateHaval_5_128();
                            case HashLib.HashSize.HashSize160: return CreateHaval_5_160();
                            case HashLib.HashSize.HashSize192: return CreateHaval_5_192();
                            case HashLib.HashSize.HashSize224: return CreateHaval_5_224();
                            case HashLib.HashSize.HashSize256: return CreateHaval_5_256();
                            default: throw new ArgumentException();
                        }

                    default: throw new ArgumentException();
                }
            }
예제 #19
-1
            /// <summary>
            /// 
            /// </summary>
            /// <param name="a_rounds">4, 8</param>
            /// <param name="a_hashSize">128, 256</param>
            /// <returns></returns>
            public static IHash CreateSnefru(HashRounds a_rounds, HashLib.HashSize a_hashSize)
            {
                switch (a_rounds)
                {
                    case HashRounds.Rounds4:

                        switch (a_hashSize)
                        {
                            case HashLib.HashSize.HashSize128: return CreateSnefru_4_128();
                            case HashLib.HashSize.HashSize256: return CreateSnefru_4_256();
                            default: throw new ArgumentException();
                        }

                    case HashRounds.Rounds8:

                        switch (a_hashSize)
                        {
                            case HashLib.HashSize.HashSize128: return CreateSnefru_8_128();
                            case HashLib.HashSize.HashSize256: return CreateSnefru_8_256();
                            default: throw new ArgumentException();
                        }

                    default: throw new ArgumentException();
                }
            }