# return the initial state of sha256 which is: # '6a09e667'+'bb67ae85'+'3c6ef372'+'a54ff53a'+'510e527f'+'9b05688c'+'1f83d9ab'+'5be0cd19' # or in bits: # 01101010000010011110011001100111 # 10111011011001111010111010000101 # 00111100011011101111001101110010 # 10100101010011111111010100111010 # 01010001000011100101001001111111 # 10011011000001010110100010001100 # 00011111100000111101100110101011 # 01011011111000001100110100011001 260 262 2 1 1 #inputs can be any random bits 1 256 2 1 0 1 2 XOR 2 1 0 1 3 XOR 2 1 2 3 4 XOR # XORing 2 equal bits gives us a zero 1 1 4 5 INV # wire 5 is 1 #jigg doesnt support EQ operator, that's why we use INV to set bits # note that the first output wire should contain lsb # that's why for readability we set bits beginning from msb working our way to lsb # generated with python3 : # st = '0' + bin(int('6a09e667'+'bb67ae85'+'3c6ef372'+'a54ff53a'+'510e527f'+'9b05688c'+'1f83d9ab'+'5be0cd19', 16))[2:] # out = '' # for x in range(256): # out += '1 1 ' + ('4 ' if int(st[x]) else '5 ') + str(261-x) + ' INV\r\n' # print(out) 1 1 5 261 INV 1 1 4 260 INV 1 1 4 259 INV 1 1 5 258 INV 1 1 4 257 INV 1 1 5 256 INV 1 1 4 255 INV 1 1 5 254 INV 1 1 5 253 INV 1 1 5 252 INV 1 1 5 251 INV 1 1 5 250 INV 1 1 4 249 INV 1 1 5 248 INV 1 1 5 247 INV 1 1 4 246 INV 1 1 4 245 INV 1 1 4 244 INV 1 1 4 243 INV 1 1 5 242 INV 1 1 5 241 INV 1 1 4 240 INV 1 1 4 239 INV 1 1 5 238 INV 1 1 5 237 INV 1 1 4 236 INV 1 1 4 235 INV 1 1 5 234 INV 1 1 5 233 INV 1 1 4 232 INV 1 1 4 231 INV 1 1 4 230 INV 1 1 4 229 INV 1 1 5 228 INV 1 1 4 227 INV 1 1 4 226 INV 1 1 4 225 INV 1 1 5 224 INV 1 1 4 223 INV 1 1 4 222 INV 1 1 5 221 INV 1 1 4 220 INV 1 1 4 219 INV 1 1 5 218 INV 1 1 5 217 INV 1 1 4 216 INV 1 1 4 215 INV 1 1 4 214 INV 1 1 4 213 INV 1 1 5 212 INV 1 1 4 211 INV 1 1 5 210 INV 1 1 4 209 INV 1 1 4 208 INV 1 1 4 207 INV 1 1 5 206 INV 1 1 4 205 INV 1 1 5 204 INV 1 1 5 203 INV 1 1 5 202 INV 1 1 5 201 INV 1 1 4 200 INV 1 1 5 199 INV 1 1 4 198 INV 1 1 5 197 INV 1 1 5 196 INV 1 1 4 195 INV 1 1 4 194 INV 1 1 4 193 INV 1 1 4 192 INV 1 1 5 191 INV 1 1 5 190 INV 1 1 5 189 INV 1 1 4 188 INV 1 1 4 187 INV 1 1 5 186 INV 1 1 4 185 INV 1 1 4 184 INV 1 1 4 183 INV 1 1 5 182 INV 1 1 4 181 INV 1 1 4 180 INV 1 1 4 179 INV 1 1 4 178 INV 1 1 5 177 INV 1 1 5 176 INV 1 1 4 175 INV 1 1 4 174 INV 1 1 5 173 INV 1 1 4 172 INV 1 1 4 171 INV 1 1 4 170 INV 1 1 5 169 INV 1 1 5 168 INV 1 1 4 167 INV 1 1 5 166 INV 1 1 4 165 INV 1 1 5 164 INV 1 1 4 163 INV 1 1 5 162 INV 1 1 5 161 INV 1 1 4 160 INV 1 1 5 159 INV 1 1 4 158 INV 1 1 5 157 INV 1 1 4 156 INV 1 1 5 155 INV 1 1 5 154 INV 1 1 4 153 INV 1 1 4 152 INV 1 1 4 151 INV 1 1 4 150 INV 1 1 4 149 INV 1 1 4 148 INV 1 1 4 147 INV 1 1 4 146 INV 1 1 5 145 INV 1 1 4 144 INV 1 1 5 143 INV 1 1 4 142 INV 1 1 5 141 INV 1 1 5 140 INV 1 1 4 139 INV 1 1 4 138 INV 1 1 4 137 INV 1 1 5 136 INV 1 1 4 135 INV 1 1 5 134 INV 1 1 5 133 INV 1 1 4 132 INV 1 1 5 131 INV 1 1 4 130 INV 1 1 5 129 INV 1 1 5 128 INV 1 1 5 127 INV 1 1 4 126 INV 1 1 5 125 INV 1 1 5 124 INV 1 1 5 123 INV 1 1 5 122 INV 1 1 4 121 INV 1 1 4 120 INV 1 1 4 119 INV 1 1 5 118 INV 1 1 5 117 INV 1 1 4 116 INV 1 1 5 115 INV 1 1 4 114 INV 1 1 5 113 INV 1 1 5 112 INV 1 1 4 111 INV 1 1 5 110 INV 1 1 5 109 INV 1 1 4 108 INV 1 1 4 107 INV 1 1 4 106 INV 1 1 4 105 INV 1 1 4 104 INV 1 1 4 103 INV 1 1 4 102 INV 1 1 4 101 INV 1 1 5 100 INV 1 1 5 99 INV 1 1 4 98 INV 1 1 4 97 INV 1 1 5 96 INV 1 1 4 95 INV 1 1 4 94 INV 1 1 5 93 INV 1 1 5 92 INV 1 1 5 91 INV 1 1 5 90 INV 1 1 5 89 INV 1 1 4 88 INV 1 1 5 87 INV 1 1 4 86 INV 1 1 5 85 INV 1 1 4 84 INV 1 1 4 83 INV 1 1 5 82 INV 1 1 4 81 INV 1 1 5 80 INV 1 1 5 79 INV 1 1 5 78 INV 1 1 4 77 INV 1 1 5 76 INV 1 1 5 75 INV 1 1 5 74 INV 1 1 4 73 INV 1 1 4 72 INV 1 1 5 71 INV 1 1 5 70 INV 1 1 5 69 INV 1 1 5 68 INV 1 1 5 67 INV 1 1 4 66 INV 1 1 4 65 INV 1 1 4 64 INV 1 1 4 63 INV 1 1 4 62 INV 1 1 4 61 INV 1 1 5 60 INV 1 1 5 59 INV 1 1 5 58 INV 1 1 5 57 INV 1 1 5 56 INV 1 1 4 55 INV 1 1 4 54 INV 1 1 4 53 INV 1 1 4 52 INV 1 1 5 51 INV 1 1 4 50 INV 1 1 4 49 INV 1 1 5 48 INV 1 1 5 47 INV 1 1 4 46 INV 1 1 4 45 INV 1 1 5 44 INV 1 1 4 43 INV 1 1 5 42 INV 1 1 4 41 INV 1 1 5 40 INV 1 1 4 39 INV 1 1 4 38 INV 1 1 5 37 INV 1 1 4 36 INV 1 1 5 35 INV 1 1 4 34 INV 1 1 4 33 INV 1 1 5 32 INV 1 1 4 31 INV 1 1 4 30 INV 1 1 4 29 INV 1 1 4 28 INV 1 1 4 27 INV 1 1 5 26 INV 1 1 5 25 INV 1 1 5 24 INV 1 1 5 23 INV 1 1 5 22 INV 1 1 4 21 INV 1 1 4 20 INV 1 1 5 19 INV 1 1 5 18 INV 1 1 4 17 INV 1 1 4 16 INV 1 1 5 15 INV 1 1 4 14 INV 1 1 5 13 INV 1 1 5 12 INV 1 1 5 11 INV 1 1 4 10 INV 1 1 4 9 INV 1 1 5 8 INV 1 1 5 7 INV 1 1 4 6 INV