source: trunk/CrypPlugins/MD5/PresentableMd5State.cs @ 853

Last change on this file since 853 was 853, checked in by pretzsch, 12 years ago

+ MD5 plugin: Added Presentation helper classes

File size: 2.1 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Reflection;
6
7namespace Cryptool.MD5
8{
9    public class PresentableMd5State
10    {
11        internal enum Md5State
12        {
13            INITIALIZED,
14            READING_DATA, READ_DATA,
15            STARTING_PADDING, ADDING_PADDING_BYTES, ADDED_PADDING_BYTES, ADDING_LENGTH, ADDED_LENGTH, FINISHED_PADDING,
16            STARTING_COMPRESSION, STARTING_ROUND, STARTING_ROUND_STEP, FINISHED_ROUND_STEP, FINISHED_ROUND, FINISHING_COMPRESSION, FINISHED_COMPRESSION,
17            FINISHED
18        }
19
20        internal const int DATA_BLOCK_SIZE = 64;
21
22        internal uint A;
23        internal uint B;
24        internal uint C;
25        internal uint D;
26
27        internal uint _RoundIndex;
28        internal uint Round
29        {
30            get
31            {
32                return _RoundIndex + 1;
33            }
34        }
35
36        internal uint _RoundStepIndex;
37        internal uint RoundStep
38        {
39            get
40            {
41                return _RoundStepIndex + 1;
42            }
43        }
44
45        internal uint BytesHashed;
46
47        internal bool IsPaddingDone;
48
49        internal bool IsLastStepInRound
50        {
51            get
52            {
53                return RoundStep == 16;
54            }
55        }
56
57        internal bool IsLastRound
58        {
59            get
60            {
61                return Round == 4;
62            }
63        }
64
65        internal uint H1;
66        internal uint H2;
67        internal uint H3;
68        internal uint H4;
69
70        internal uint[] X;
71        internal byte[] Data;
72        internal uint DataLength;
73        internal uint DataOffset;
74        internal ulong LengthInBit;
75
76        internal Md5State State;
77
78        internal PresentableMd5State()
79        {
80        }
81
82        internal PresentableMd5State(PresentableMd5State other)
83        {
84            foreach (FieldInfo fi in GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance))
85                fi.SetValue(this, fi.GetValue(other));
86            H1 = other.H1;
87        }
88    }
89}
Note: See TracBrowser for help on using the repository browser.