1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
| 'use strict';
|
| var utils = require('../utils');
| var rotr32 = utils.rotr32;
|
| function ft_1(s, x, y, z) {
| if (s === 0)
| return ch32(x, y, z);
| if (s === 1 || s === 3)
| return p32(x, y, z);
| if (s === 2)
| return maj32(x, y, z);
| }
| exports.ft_1 = ft_1;
|
| function ch32(x, y, z) {
| return (x & y) ^ ((~x) & z);
| }
| exports.ch32 = ch32;
|
| function maj32(x, y, z) {
| return (x & y) ^ (x & z) ^ (y & z);
| }
| exports.maj32 = maj32;
|
| function p32(x, y, z) {
| return x ^ y ^ z;
| }
| exports.p32 = p32;
|
| function s0_256(x) {
| return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);
| }
| exports.s0_256 = s0_256;
|
| function s1_256(x) {
| return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);
| }
| exports.s1_256 = s1_256;
|
| function g0_256(x) {
| return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);
| }
| exports.g0_256 = g0_256;
|
| function g1_256(x) {
| return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);
| }
| exports.g1_256 = g1_256;
|
|