- u32x w0_t[4];
- u32x w1_t[4];
- u32x w2_t[4];
- u32x w3_t[4];
-
- make_unicode (w0, w0_t, w1_t);
- make_unicode (w1, w2_t, w3_t);
-
- switch_buffer_by_offset_le (w0_t, w1_t, w2_t, w3_t, salt_len);
-
- w0_t[0] = salt_buf[0];
- w0_t[1] = salt_buf[1];
- w0_t[2] = salt_buf[2];
- w0_t[3] = salt_buf[3];
- w1_t[0] = swap32 (w1_t[0]);
- w1_t[1] = swap32 (w1_t[1]);
- w1_t[2] = swap32 (w1_t[2]);
- w1_t[3] = swap32 (w1_t[3]);
- w2_t[0] = swap32 (w2_t[0]);
- w2_t[1] = swap32 (w2_t[1]);
- w2_t[2] = swap32 (w2_t[2]);
- w2_t[3] = swap32 (w2_t[3]);
- w3_t[0] = swap32 (w3_t[0]);
- w3_t[1] = swap32 (w3_t[1]);
- w3_t[2] = 0;
- w3_t[3] = pw_salt_len * 8;
-
- u32x digest[5];
+ /**
+ * sha1
+ */
+
+ make_unicode (w1, w2, w3);
+ make_unicode (w0, w0, w1);
+
+ const u32x pw_salt_len = (out_len * 2) + 16;
+
+ w3[3] = pw_salt_len * 8;
+ w3[2] = 0;
+ w3[1] = swap32 (w2[1]);
+ w3[0] = swap32 (w2[0]);
+ w2[3] = swap32 (w1[3]);
+ w2[2] = swap32 (w1[2]);
+ w2[1] = swap32 (w1[1]);
+ w2[0] = swap32 (w1[0]);
+ w1[3] = swap32 (w0[3]);
+ w1[2] = swap32 (w0[2]);
+ w1[1] = swap32 (w0[1]);
+ w1[0] = swap32 (w0[0]);
+ w0[3] = salt_buf[3];
+ w0[2] = salt_buf[2];
+ w0[1] = salt_buf[1];
+ w0[0] = salt_buf[0];
+
+ u32 digest[5];