# TLS stage 1
# Parties input their additive shares of the pre-master secret (PMS).
# Outputs sha256(pms xor opad) called "pms outer hash state" to N and also outputs
# sha256(pms xor ipad) called "pms inner hash state" to C.

5 2560
2 512 512
# notary inputs
#  256: pms share
#  256: output mask
# client inputs 
#  256: pms share
#  256: output mask

1 512
# all outputs go to the evaluator
# 256: pms outer hash state xor masked by notary
# 256: pms inner hash state xor masked by client

512 256 [0|>256] [512|>256] [1024|>256] combine_pms_shares.casm

2 256 0 1 [1280|>256] getSha256InitialState.casm

512 512 [1024|>256] [1280|>256] [1792|>256] [1536|>256] shaPmsXorPadding.casm

512 256 [1536|>256] [256|>256] [2048|>256] xor256bits.casm
512 256 [1792|>256] [768|>256] [2304|>256] xor256bits.casm