MCPcopy Index your code
hub / github.com/f0ng/autoDecoder / sm4_setkey

Method sm4_setkey

src/com/autoDecoder/util/SM4.java:133–149  ·  view source on GitHub ↗
(long[] SK, byte[] key)

Source from the content-addressed store, hash-verified

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;

Callers 2

sm4_setkey_encMethod · 0.95
sm4_setkey_decMethod · 0.95

Calls 2

GET_ULONG_BEMethod · 0.95
sm4CalciRKMethod · 0.95

Tested by

no test coverage detected