mirror of
https://github.com/tlsnotary/circuits.git
synced 2026-01-09 23:07:58 -05:00
wip commit before checkout master
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
const casm = require('./casmbundle');
|
const casm = require('./casmbundle');
|
||||||
global.fs = require('fs');
|
global.fs = require('fs');
|
||||||
|
|
||||||
for (let i=1; i<8; i++){
|
for (let i=1; i<=8; i++){
|
||||||
global.fs.writeFileSync('c'+i+'.out', casm.parseAndAssemble('c'+i+'.casm'));
|
global.fs.writeFileSync('c'+i+'.out', casm.parseAndAssemble('c'+i+'.casm'));
|
||||||
}
|
}
|
||||||
|
|||||||
43
c7.casm
43
c7.casm
@@ -1,38 +1,39 @@
|
|||||||
# AES-ECB encrypt one block to produce gctr block
|
# AES-GCM-encrypt one block of plaintext and check for any carriage returns
|
||||||
# exactly the same as circuit 6 except here the counter is fixed at 1
|
# the plaintext has.
|
||||||
|
|
||||||
7 1138
|
6 901
|
||||||
2 288 304
|
2 160 308
|
||||||
|
|
||||||
# notary inputs
|
# notary inputs
|
||||||
# 128: client_write_key share
|
# 128: client_write_key share
|
||||||
# 32 : client_write_IV share
|
# 32 : client_write_IV share
|
||||||
# 128: output mask
|
|
||||||
# client inputs
|
# client inputs
|
||||||
# 128: client_write_key share
|
# 128: client_write_key share
|
||||||
# 32 : client_write_IV share
|
# 32 : client_write_IV share
|
||||||
# 128: output mask
|
# 128: plaintext block
|
||||||
# 16 : nonce
|
# 10 : nonce
|
||||||
|
# 10 : counter (max block counter that can fit into 10 bits is 1023)
|
||||||
|
|
||||||
1 128
|
1 144
|
||||||
# all outputs go to the evaluator:
|
# all outputs go to the evaluator
|
||||||
# 128: gctr block masked twice
|
# 128: encrypted plaintext block
|
||||||
|
# 16 : for each byte of the plaintext block, a bit will be set to 1 if the byte
|
||||||
|
# is a carriage return
|
||||||
|
|
||||||
2 1 0 0 592 XOR # 0
|
2 1 0 0 468 XOR # 0
|
||||||
1 1 592 593 INV # 1
|
|
||||||
|
|
||||||
# unmask client_write_key
|
# unmask client_write_key
|
||||||
256 128 [0|>128] [288|>128] [594|>128] xor128bits.casm
|
256 128 [0|>128] [160|>128] [469|>128] xor128bits.casm
|
||||||
|
|
||||||
# unmask client_write_IV
|
# unmask client_write_IV
|
||||||
64 32 [128|>32] [416|>32] [722|>32] xor32bits.casm
|
64 32 [128|>32] [288|>32] [597|>32] xor32bits.casm
|
||||||
|
|
||||||
# encrypt client_write_IV + nonce (8 bytes) + counter (4 bytes) == 1
|
# encrypt client_write_IV + nonce (8 bytes) + counter (4 bytes)
|
||||||
# (counter is fixed at 1 for gctr blocks)
|
256 128 [469|>128] [458|>10] [468*22] [448|>10] [468*54] [597|>32] [629|>128] aes-128-reverse.txt
|
||||||
256 128 [594|>128] 593 [592*31] [576|>16] [592*48] [722|>32] [754|>128] aes-128-reverse.txt
|
|
||||||
|
|
||||||
# mask by notary
|
# xor encrypted counter with plaintext to get ciphertext
|
||||||
256 128 [754|>128] [160|>128] [882|>128] xor128bits.casm
|
256 128 [629|>128] [320|>128] [757|>128] xor128bits.casm
|
||||||
|
|
||||||
|
# check for carriage returns in the plaintext
|
||||||
|
128 16 [320|>128] [885|>16] checkCarriageReturn.casm
|
||||||
|
|
||||||
# mask by client
|
|
||||||
256 128 [882|>128] [448|>128] [1010|>128] xor128bits.casm
|
|
||||||
Reference in New Issue
Block a user