MCPcopy Create free account
hub / github.com/cryptii/cryptii / md5Transform

Function md5Transform

src/Encoder/Hash/md5.js:106–191  ·  view source on GitHub ↗
(context, block)

Source from the content-addressed store, hash-verified

104}
105
106function md5Transform (context, block) {
107 let [a, b, c, d] = context
108
109 /* eslint-disable no-multi-spaces */
110
111 // round 1
112 a = ff(a, b, c, d, block[0], S11, 0xd76aa478)
113 d = ff(d, a, b, c, block[1], S12, 0xe8c7b756)
114 c = ff(c, d, a, b, block[2], S13, 0x242070db)
115 b = ff(b, c, d, a, block[3], S14, 0xc1bdceee)
116 a = ff(a, b, c, d, block[4], S11, 0xf57c0faf)
117 d = ff(d, a, b, c, block[5], S12, 0x4787c62a)
118 c = ff(c, d, a, b, block[6], S13, 0xa8304613)
119 b = ff(b, c, d, a, block[7], S14, 0xfd469501)
120 a = ff(a, b, c, d, block[8], S11, 0x698098d8)
121 d = ff(d, a, b, c, block[9], S12, 0x8b44f7af)
122 c = ff(c, d, a, b, block[10], S13, 0xffff5bb1)
123 b = ff(b, c, d, a, block[11], S14, 0x895cd7be)
124 a = ff(a, b, c, d, block[12], S11, 0x6b901122)
125 d = ff(d, a, b, c, block[13], S12, 0xfd987193)
126 c = ff(c, d, a, b, block[14], S13, 0xa679438e)
127 b = ff(b, c, d, a, block[15], S14, 0x49b40821)
128
129 // round 2
130 a = gg(a, b, c, d, block[1], S21, 0xf61e2562)
131 d = gg(d, a, b, c, block[6], S22, 0xc040b340)
132 c = gg(c, d, a, b, block[11], S23, 0x265e5a51)
133 b = gg(b, c, d, a, block[0], S24, 0xe9b6c7aa)
134 a = gg(a, b, c, d, block[5], S21, 0xd62f105d)
135 d = gg(d, a, b, c, block[10], S22, 0x02441453)
136 c = gg(c, d, a, b, block[15], S23, 0xd8a1e681)
137 b = gg(b, c, d, a, block[4], S24, 0xe7d3fbc8)
138 a = gg(a, b, c, d, block[9], S21, 0x21e1cde6)
139 d = gg(d, a, b, c, block[14], S22, 0xc33707d6)
140 c = gg(c, d, a, b, block[3], S23, 0xf4d50d87)
141 b = gg(b, c, d, a, block[8], S24, 0x455a14ed)
142 a = gg(a, b, c, d, block[13], S21, 0xa9e3e905)
143 d = gg(d, a, b, c, block[2], S22, 0xfcefa3f8)
144 c = gg(c, d, a, b, block[7], S23, 0x676f02d9)
145 b = gg(b, c, d, a, block[12], S24, 0x8d2a4c8a)
146
147 // round 3
148 a = hh(a, b, c, d, block[5], S31, 0xfffa3942)
149 d = hh(d, a, b, c, block[8], S32, 0x8771f681)
150 c = hh(c, d, a, b, block[11], S33, 0x6d9d6122)
151 b = hh(b, c, d, a, block[14], S34, 0xfde5380c)
152 a = hh(a, b, c, d, block[1], S31, 0xa4beea44)
153 d = hh(d, a, b, c, block[4], S32, 0x4bdecfa9)
154 c = hh(c, d, a, b, block[7], S33, 0xf6bb4b60)
155 b = hh(b, c, d, a, block[10], S34, 0xbebfbc70)
156 a = hh(a, b, c, d, block[13], S31, 0x289b7ec6)
157 d = hh(d, a, b, c, block[0], S32, 0xeaa127fa)
158 c = hh(c, d, a, b, block[3], S33, 0xd4ef3085)
159 b = hh(b, c, d, a, block[6], S34, 0x04881d05)
160 a = hh(a, b, c, d, block[9], S31, 0xd9d4d039)
161 d = hh(d, a, b, c, block[12], S32, 0xe6db99e5)
162 c = hh(c, d, a, b, block[15], S33, 0x1fa27cf8)
163 b = hh(b, c, d, a, block[2], S34, 0xc4ac5665)

Callers 1

md5Function · 0.85

Calls 5

ffFunction · 0.85
ggFunction · 0.85
hhFunction · 0.85
iiFunction · 0.85
add32Function · 0.85

Tested by

no test coverage detected