Files
circuits/getP256prime.casm
2021-11-08 17:11:39 +03:00

282 lines
4.0 KiB
Plaintext

# return NIST P-256 prime (2**256 - 2**224 + 2**192 + 2**96 - 1)
# prime's bits broken down for readability:
# 11111111111111111111111111111111
# 0000000000000000000000000000000
# 1
# 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
# 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
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
# outputs first wire is lsb
1 1 4 6 INV
1 1 4 7 INV
1 1 4 8 INV
1 1 4 9 INV
1 1 4 10 INV
1 1 4 11 INV
1 1 4 12 INV
1 1 4 13 INV
1 1 4 14 INV
1 1 4 15 INV
1 1 4 16 INV
1 1 4 17 INV
1 1 4 18 INV
1 1 4 19 INV
1 1 4 20 INV
1 1 4 21 INV
1 1 4 22 INV
1 1 4 23 INV
1 1 4 24 INV
1 1 4 25 INV
1 1 4 26 INV
1 1 4 27 INV
1 1 4 28 INV
1 1 4 29 INV
1 1 4 30 INV
1 1 4 31 INV
1 1 4 32 INV
1 1 4 33 INV
1 1 4 34 INV
1 1 4 35 INV
1 1 4 36 INV
1 1 4 37 INV
1 1 4 38 INV
1 1 4 39 INV
1 1 4 40 INV
1 1 4 41 INV
1 1 4 42 INV
1 1 4 43 INV
1 1 4 44 INV
1 1 4 45 INV
1 1 4 46 INV
1 1 4 47 INV
1 1 4 48 INV
1 1 4 49 INV
1 1 4 50 INV
1 1 4 51 INV
1 1 4 52 INV
1 1 4 53 INV
1 1 4 54 INV
1 1 4 55 INV
1 1 4 56 INV
1 1 4 57 INV
1 1 4 58 INV
1 1 4 59 INV
1 1 4 60 INV
1 1 4 61 INV
1 1 4 62 INV
1 1 4 63 INV
1 1 4 64 INV
1 1 4 65 INV
1 1 4 66 INV
1 1 4 67 INV
1 1 4 68 INV
1 1 4 69 INV
1 1 4 70 INV
1 1 4 71 INV
1 1 4 72 INV
1 1 4 73 INV
1 1 4 74 INV
1 1 4 75 INV
1 1 4 76 INV
1 1 4 77 INV
1 1 4 78 INV
1 1 4 79 INV
1 1 4 80 INV
1 1 4 81 INV
1 1 4 82 INV
1 1 4 83 INV
1 1 4 84 INV
1 1 4 85 INV
1 1 4 86 INV
1 1 4 87 INV
1 1 4 88 INV
1 1 4 89 INV
1 1 4 90 INV
1 1 4 91 INV
1 1 4 92 INV
1 1 4 93 INV
1 1 4 94 INV
1 1 4 95 INV
1 1 4 96 INV
1 1 4 97 INV
1 1 4 98 INV
1 1 4 99 INV
1 1 4 100 INV
1 1 4 101 INV
1 1 5 102 INV
1 1 5 103 INV
1 1 5 104 INV
1 1 5 105 INV
1 1 5 106 INV
1 1 5 107 INV
1 1 5 108 INV
1 1 5 109 INV
1 1 5 110 INV
1 1 5 111 INV
1 1 5 112 INV
1 1 5 113 INV
1 1 5 114 INV
1 1 5 115 INV
1 1 5 116 INV
1 1 5 117 INV
1 1 5 118 INV
1 1 5 119 INV
1 1 5 120 INV
1 1 5 121 INV
1 1 5 122 INV
1 1 5 123 INV
1 1 5 124 INV
1 1 5 125 INV
1 1 5 126 INV
1 1 5 127 INV
1 1 5 128 INV
1 1 5 129 INV
1 1 5 130 INV
1 1 5 131 INV
1 1 5 132 INV
1 1 5 133 INV
1 1 5 134 INV
1 1 5 135 INV
1 1 5 136 INV
1 1 5 137 INV
1 1 5 138 INV
1 1 5 139 INV
1 1 5 140 INV
1 1 5 141 INV
1 1 5 142 INV
1 1 5 143 INV
1 1 5 144 INV
1 1 5 145 INV
1 1 5 146 INV
1 1 5 147 INV
1 1 5 148 INV
1 1 5 149 INV
1 1 5 150 INV
1 1 5 151 INV
1 1 5 152 INV
1 1 5 153 INV
1 1 5 154 INV
1 1 5 155 INV
1 1 5 156 INV
1 1 5 157 INV
1 1 5 158 INV
1 1 5 159 INV
1 1 5 160 INV
1 1 5 161 INV
1 1 5 162 INV
1 1 5 163 INV
1 1 5 164 INV
1 1 5 165 INV
1 1 5 166 INV
1 1 5 167 INV
1 1 5 168 INV
1 1 5 169 INV
1 1 5 170 INV
1 1 5 171 INV
1 1 5 172 INV
1 1 5 173 INV
1 1 5 174 INV
1 1 5 175 INV
1 1 5 176 INV
1 1 5 177 INV
1 1 5 178 INV
1 1 5 179 INV
1 1 5 180 INV
1 1 5 181 INV
1 1 5 182 INV
1 1 5 183 INV
1 1 5 184 INV
1 1 5 185 INV
1 1 5 186 INV
1 1 5 187 INV
1 1 5 188 INV
1 1 5 189 INV
1 1 5 190 INV
1 1 5 191 INV
1 1 5 192 INV
1 1 5 193 INV
1 1 5 194 INV
1 1 5 195 INV
1 1 5 196 INV
1 1 5 197 INV
1 1 4 198 INV
1 1 5 199 INV
1 1 5 200 INV
1 1 5 201 INV
1 1 5 202 INV
1 1 5 203 INV
1 1 5 204 INV
1 1 5 205 INV
1 1 5 206 INV
1 1 5 207 INV
1 1 5 208 INV
1 1 5 209 INV
1 1 5 210 INV
1 1 5 211 INV
1 1 5 212 INV
1 1 5 213 INV
1 1 5 214 INV
1 1 5 215 INV
1 1 5 216 INV
1 1 5 217 INV
1 1 5 218 INV
1 1 5 219 INV
1 1 5 220 INV
1 1 5 221 INV
1 1 5 222 INV
1 1 5 223 INV
1 1 5 224 INV
1 1 5 225 INV
1 1 5 226 INV
1 1 5 227 INV
1 1 5 228 INV
1 1 5 229 INV
1 1 4 230 INV
1 1 4 231 INV
1 1 4 232 INV
1 1 4 233 INV
1 1 4 234 INV
1 1 4 235 INV
1 1 4 236 INV
1 1 4 237 INV
1 1 4 238 INV
1 1 4 239 INV
1 1 4 240 INV
1 1 4 241 INV
1 1 4 242 INV
1 1 4 243 INV
1 1 4 244 INV
1 1 4 245 INV
1 1 4 246 INV
1 1 4 247 INV
1 1 4 248 INV
1 1 4 249 INV
1 1 4 250 INV
1 1 4 251 INV
1 1 4 252 INV
1 1 4 253 INV
1 1 4 254 INV
1 1 4 255 INV
1 1 4 256 INV
1 1 4 257 INV
1 1 4 258 INV
1 1 4 259 INV
1 1 4 260 INV
1 1 4 261 INV