(long[] SK, byte[] key)
| 131 | } |
| 132 | |
| 133 | private void sm4_setkey(long[] SK, byte[] key) { |
| 134 | long[] MK = new long[4]; |
| 135 | long[] k = new long[36]; |
| 136 | int i = 0; |
| 137 | MK[0] = GET_ULONG_BE(key, 0); |
| 138 | MK[1] = GET_ULONG_BE(key, 4); |
| 139 | MK[2] = GET_ULONG_BE(key, 8); |
| 140 | MK[3] = GET_ULONG_BE(key, 12); |
| 141 | k[0] = MK[0] ^ (long) FK[0]; |
| 142 | k[1] = MK[1] ^ (long) FK[1]; |
| 143 | k[2] = MK[2] ^ (long) FK[2]; |
| 144 | k[3] = MK[3] ^ (long) FK[3]; |
| 145 | for (; i < 32; i++) { |
| 146 | k[(i + 4)] = (k[i] ^ sm4CalciRK(k[(i + 1)] ^ k[(i + 2)] ^ k[(i + 3)] ^ (long) CK[i])); |
| 147 | SK[i] = k[(i + 4)]; |
| 148 | } |
| 149 | } |
| 150 | |
| 151 | private void sm4_one_round(long[] sk, byte[] input, byte[] output) { |
| 152 | int i = 0; |
no test coverage detected