mplang-nightly 0.1.dev258__tar.gz → 0.1.dev260__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/PKG-INFO +1 -1
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/tee_impl.py +2 -1
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/dialects/tee.py +26 -51
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/backends/test_tee_impl.py +4 -7
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/dialects/test_tee.py +22 -55
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/.gitignore +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/LICENSE +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/README.md +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/examples/v1/conf/3pc.yaml +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/examples/v1/stax_nn/README.md +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/examples/v1/stax_nn/models.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/examples/v1/stax_nn/stax_nn.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/examples/v1/xgboost/bench_fhe_hist.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/examples/v1/xgboost/hist_jax.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/examples/v1/xgboost/hist_jax_test.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/examples/v1/xgboost/naive_np.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/examples/v1/xgboost/readme.md +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/examples/v1/xgboost/sgb.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/examples/v1/xgboost/sgb_test.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/hatch_build.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/_device.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/analysis/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/analysis/diagram.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/cluster.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/comm.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/context_mgr.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/dtypes.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/expr/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/expr/ast.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/expr/evaluator.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/expr/printer.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/expr/transformer.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/expr/utils.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/expr/visitor.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/expr/walk.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/interp.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/mask.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/mpir.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/mpobject.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/mptype.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/pfunc.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/primitive.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/table.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/tensor.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/core/tracer.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/host.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/kernels/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/kernels/base.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/kernels/basic.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/kernels/context.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/kernels/crypto.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/kernels/fhe.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/kernels/mock_tee.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/kernels/phe.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/kernels/spu.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/kernels/sql_duckdb.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/kernels/stablehlo.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/kernels/value.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/ops/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/ops/base.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/ops/basic.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/ops/crypto.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/ops/fhe.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/ops/jax_cc.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/ops/nnx_cc.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/ops/phe.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/ops/spu.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/ops/sql_cc.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/ops/tee.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/protos/v1alpha1/mpir_pb2.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/protos/v1alpha1/mpir_pb2.pyi +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/protos/v1alpha1/value_pb2.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/protos/v1alpha1/value_pb2.pyi +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/runtime/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/runtime/cli.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/runtime/client.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/runtime/communicator.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/runtime/data_providers.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/runtime/driver.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/runtime/exceptions.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/runtime/http_api.md +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/runtime/link_comm.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/runtime/server.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/runtime/session.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/runtime/simulation.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/simp/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/simp/api.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/simp/mpi.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/simp/party.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/simp/random.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/simp/smpc.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/utils/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/utils/crypto.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/utils/func_utils.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/utils/spu_utils.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/utils/table_utils.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/bfv_impl.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/crypto_impl.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/field_impl.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/func_impl.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/phe_impl.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/simp_design.md +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/simp_driver/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/simp_driver/http.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/simp_driver/mem.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/simp_driver/ops.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/simp_driver/state.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/simp_driver/values.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/simp_worker/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/simp_worker/http.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/simp_worker/mem.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/simp_worker/ops.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/simp_worker/state.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/spu_impl.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/spu_state.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/store_impl.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/table_impl.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/backends/tensor_impl.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/cli.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/cli_guide.md +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/dialects/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/dialects/bfv.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/dialects/crypto.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/dialects/dtypes.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/dialects/field.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/dialects/func.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/dialects/phe.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/dialects/simp.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/dialects/spu.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/dialects/store.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/dialects/table.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/dialects/tensor.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/edsl/README.md +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/edsl/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/edsl/context.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/edsl/graph.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/edsl/jit.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/edsl/object.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/edsl/primitive.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/edsl/printer.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/edsl/registry.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/edsl/serde.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/edsl/tracer.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/edsl/typing.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/kernels/Makefile +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/kernels/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/kernels/gf128.cpp +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/kernels/ldpc.cpp +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/kernels/okvs.cpp +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/kernels/okvs_opt.cpp +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/kernels/py_kernels.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/collective.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/device/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/device/api.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/device/cluster.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/ml/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/ml/sgb.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/_utils.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/analytics/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/analytics/aggregation.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/analytics/groupby.md +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/analytics/groupby.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/analytics/permutation.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/common/constants.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/ot/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/ot/base.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/ot/extension.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/ot/silent.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/psi/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/psi/cuckoo.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/psi/okvs.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/psi/okvs_gct.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/psi/oprf.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/psi/rr22.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/psi/unbalanced.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/vole/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/vole/gilboa.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/vole/ldpc.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/libs/mpc/vole/silver.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/runtime/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/runtime/dialect_state.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/runtime/interpreter.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/runtime/object_store.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v2/runtime/value.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/pyproject.toml +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/conftest.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/analysis/test_diagram.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/conftest.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/core/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/core/expr/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/core/expr/conftest.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/core/expr/test_ast.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/core/expr/test_printer.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/core/expr/test_utils.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/core/expr/test_walk.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/core/test_cluster.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/core/test_dtype.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/core/test_mask.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/core/test_mpir.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/core/test_mptype.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/core/test_primitive.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/core/test_table.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/core/test_tensor.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/core/test_tracer.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/device/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/device/test_device_basic.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/integration/README.md +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/integration/test_crypto_roundtrip.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/integration/test_http_e2e.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/integration/test_symbols_roundtrip.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/integration/test_tee_workflow.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/integration/test_tutorials.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/integration/test_unused_param_integration.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/kernels/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/kernels/test_basic.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/kernels/test_debug_print.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/kernels/test_fhe.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/kernels/test_kernel_binding.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/kernels/test_phe.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/kernels/test_spu.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/kernels/test_sql_duckdb.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/kernels/test_stablehlo.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/kernels/test_value.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/kernels/test_value_serde.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/ops/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/ops/dummy.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/ops/test_basic_pack.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/ops/test_crypto.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/ops/test_feop_base.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/ops/test_jax_cc.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/ops/test_nnx_cc.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/ops/test_phe.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/ops/test_spu.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/ops/test_spu_defensive.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/ops/test_sql.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/ops/test_sql_cc.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/ops/test_table_tensor_conversion.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/runtime/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/runtime/test_cli.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/runtime/test_communicator.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/runtime/test_driver.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/runtime/test_server.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/runtime/test_simulation.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/simp/test_mpi.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/simp/test_random.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/simp/test_smpc.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/simp/test_sugar.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/utils/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/utils/server_fixtures.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/utils/test_func_utils.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/utils/test_spu_utils.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v1/utils/test_table_utils.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/backends/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/backends/simp_driver/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/backends/simp_driver/test_http.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/backends/simp_worker/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/backends/simp_worker/test_http.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/backends/simp_worker/test_mem.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/backends/test_bfv_impl.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/backends/test_crypto_impl.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/backends/test_okvs_binding.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/backends/test_simp_integration.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/backends/test_simp_object_store.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/backends/test_spu_impl.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/backends/test_table_impl.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/backends/test_tensor_impl.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/backends/test_verify_clean.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/conftest.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/dialects/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/dialects/test_bfv.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/dialects/test_crypto.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/dialects/test_dtypes.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/dialects/test_field.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/dialects/test_func.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/dialects/test_okvs.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/dialects/test_okvs_bench.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/dialects/test_phe.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/dialects/test_simp.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/dialects/test_simp_comm.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/dialects/test_spu.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/dialects/test_table.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/dialects/test_tensor.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/edsl/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/edsl/test_context.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/edsl/test_graph.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/edsl/test_primitive.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/edsl/test_primitive_multi_output.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/edsl/test_printer.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/edsl/test_serde.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/edsl/test_tracer.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/edsl/test_typing.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/edsl/test_typing_graph_serde.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/device/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/device/conftest.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/device/test_device_api_errors.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/device/test_device_dialects.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/device/test_device_layouts.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/device/test_device_tee.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/ml/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/ml/test_sgb.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/ml/test_sgb_bench.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/analytics/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/analytics/test_aggregation.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/analytics/test_groupby.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/analytics/test_permutation.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/ot/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/ot/test_ot.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/ot/test_ot_extension.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/ot/test_silent_ot.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/psi/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/psi/test_okvs_gct.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/psi/test_oprf.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/psi/test_psi.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/psi/test_psi_bench.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/psi/test_rr22.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/psi/verify_psi_okvs_logic.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/test_field_gf128.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/test_utils.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/vole/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/vole/test_gilboa_manual.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/vole/test_ldpc.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/vole/test_silver_vole.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/vole/test_vole.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/vole/test_vole_bench.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/mpc/vole/verify_vole_logic.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/test_collective.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/libs/test_simple_guide.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/runtime/test_interpreter_async.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/runtime/test_object_store.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/runtime/test_object_store_fs.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/test_fetch_semantics.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/test_pytree_io.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/test_store.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/utils/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tests/v2/utils/tensor_patch.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/MIGRATION.md +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/README.md +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/__init__.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/data/alice.csv +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/data/bob.csv +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/data/prepare_vertical_iris.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/run.sh +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/device/00_device_basics.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/device/01_function_decorator.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/device/02_simulation_and_driver.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/device/03_run_jax.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/device/04_run_sql.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/device/05_pipeline.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/device/06_ir_dump_and_analysis.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/device/07_run_nnx.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/pitfalls/late_binding.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/pitfalls/rand.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/simp/00_basic.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/simp/01_condition.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/simp/02_whileloop.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/simp/03_stdio.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/simp/04_phe.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/simp/05_tee.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/simp/06_fhe.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/simp/07_advanced.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v1/simp/08_simple_secret_sharing.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v2/00_device_basics.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v2/01_function_decorator.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v2/02_simulation_and_driver.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v2/03_run_jax.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v2/04_ir_dump_and_analysis.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v2/05_run_sql.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v2/06_pipeline.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v2/07_stax_nn.py +0 -0
- {mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/tutorials/v2/__init__.py +0 -0
|
@@ -155,7 +155,8 @@ def _quote_gen_impl(
|
|
|
155
155
|
f"got {type(pk).__name__}"
|
|
156
156
|
)
|
|
157
157
|
|
|
158
|
-
|
|
158
|
+
# In a real implementation, the platform would be detected from the environment
|
|
159
|
+
platform = "mock"
|
|
159
160
|
|
|
160
161
|
return MockQuoteValue(
|
|
161
162
|
platform=platform,
|
|
@@ -22,11 +22,11 @@ computation where:
|
|
|
22
22
|
|
|
23
23
|
Architecture:
|
|
24
24
|
PublicKey (from crypto.kem_keygen)
|
|
25
|
-
↓ quote_gen(pk
|
|
26
|
-
Quote
|
|
25
|
+
↓ quote_gen(pk)
|
|
26
|
+
Quote (cryptographic attestation proof)
|
|
27
27
|
↓ (transfer to verifier)
|
|
28
28
|
↓ attest(quote)
|
|
29
|
-
AttestedKey[
|
|
29
|
+
AttestedKey[curve] (verified TEE public key)
|
|
30
30
|
↓ crypto.kem_derive(local_sk, attested_pk)
|
|
31
31
|
SharedSecret (secure channel with TEE)
|
|
32
32
|
|
|
@@ -71,7 +71,6 @@ from mplang.v2.edsl import serde
|
|
|
71
71
|
# --- Type Definitions
|
|
72
72
|
# ==============================================================================
|
|
73
73
|
|
|
74
|
-
Platform = Literal["mock", "sgx", "tdx", "sev"]
|
|
75
74
|
KeyCurve = Literal["x25519", "secp256k1"]
|
|
76
75
|
|
|
77
76
|
|
|
@@ -86,37 +85,29 @@ class QuoteType(elt.BaseType):
|
|
|
86
85
|
|
|
87
86
|
The quote can be verified by anyone with access to the TEE vendor's
|
|
88
87
|
root certificates (Intel, AMD, etc.).
|
|
89
|
-
|
|
90
|
-
Attributes:
|
|
91
|
-
platform: TEE platform identifier
|
|
92
88
|
"""
|
|
93
89
|
|
|
94
|
-
def __init__(self, platform: str = "mock"):
|
|
95
|
-
self.platform: Platform = platform # type: ignore[assignment]
|
|
96
|
-
|
|
97
90
|
def __str__(self) -> str:
|
|
98
|
-
return
|
|
91
|
+
return "TEEQuote"
|
|
99
92
|
|
|
100
93
|
def __repr__(self) -> str:
|
|
101
|
-
return
|
|
94
|
+
return "QuoteType()"
|
|
102
95
|
|
|
103
96
|
def __eq__(self, other: object) -> bool:
|
|
104
|
-
|
|
105
|
-
return False
|
|
106
|
-
return self.platform == other.platform
|
|
97
|
+
return isinstance(other, QuoteType)
|
|
107
98
|
|
|
108
99
|
def __hash__(self) -> int:
|
|
109
|
-
return hash(
|
|
100
|
+
return hash("QuoteType")
|
|
110
101
|
|
|
111
102
|
# --- Serde methods ---
|
|
112
103
|
_serde_kind: ClassVar[str] = "tee.QuoteType"
|
|
113
104
|
|
|
114
105
|
def to_json(self) -> dict[str, Any]:
|
|
115
|
-
return {
|
|
106
|
+
return {}
|
|
116
107
|
|
|
117
108
|
@classmethod
|
|
118
109
|
def from_json(cls, data: dict[str, Any]) -> QuoteType:
|
|
119
|
-
return cls(
|
|
110
|
+
return cls()
|
|
120
111
|
|
|
121
112
|
|
|
122
113
|
@serde.register_class
|
|
@@ -134,37 +125,35 @@ class AttestedKeyType(elt.BaseType):
|
|
|
134
125
|
3. The public key is bound in the quote's report_data
|
|
135
126
|
|
|
136
127
|
Attributes:
|
|
137
|
-
platform: TEE platform that generated the original quote
|
|
138
128
|
curve: Cryptographic curve of the key
|
|
139
129
|
"""
|
|
140
130
|
|
|
141
|
-
def __init__(self,
|
|
142
|
-
self.platform: Platform = platform # type: ignore[assignment]
|
|
131
|
+
def __init__(self, curve: str = "x25519"):
|
|
143
132
|
self.curve: KeyCurve = curve # type: ignore[assignment]
|
|
144
133
|
|
|
145
134
|
def __str__(self) -> str:
|
|
146
|
-
return f"AttestedKey[{self.
|
|
135
|
+
return f"AttestedKey[{self.curve}]"
|
|
147
136
|
|
|
148
137
|
def __repr__(self) -> str:
|
|
149
|
-
return f"AttestedKeyType(
|
|
138
|
+
return f"AttestedKeyType(curve={self.curve!r})"
|
|
150
139
|
|
|
151
140
|
def __eq__(self, other: object) -> bool:
|
|
152
141
|
if not isinstance(other, AttestedKeyType):
|
|
153
142
|
return False
|
|
154
|
-
return self.
|
|
143
|
+
return self.curve == other.curve
|
|
155
144
|
|
|
156
145
|
def __hash__(self) -> int:
|
|
157
|
-
return hash(("AttestedKeyType", self.
|
|
146
|
+
return hash(("AttestedKeyType", self.curve))
|
|
158
147
|
|
|
159
148
|
# --- Serde methods ---
|
|
160
149
|
_serde_kind: ClassVar[str] = "tee.AttestedKeyType"
|
|
161
150
|
|
|
162
151
|
def to_json(self) -> dict[str, Any]:
|
|
163
|
-
return {"
|
|
152
|
+
return {"curve": self.curve}
|
|
164
153
|
|
|
165
154
|
@classmethod
|
|
166
155
|
def from_json(cls, data: dict[str, Any]) -> AttestedKeyType:
|
|
167
|
-
return cls(
|
|
156
|
+
return cls(curve=data["curve"])
|
|
168
157
|
|
|
169
158
|
|
|
170
159
|
@serde.register_class
|
|
@@ -173,37 +162,29 @@ class MeasurementType(elt.BaseType):
|
|
|
173
162
|
|
|
174
163
|
Represents a cryptographic hash of the code and initial configuration
|
|
175
164
|
running inside the TEE. Used to verify the TEE is running expected code.
|
|
176
|
-
|
|
177
|
-
Attributes:
|
|
178
|
-
platform: TEE platform
|
|
179
165
|
"""
|
|
180
166
|
|
|
181
|
-
def __init__(self, platform: str = "mock"):
|
|
182
|
-
self.platform: Platform = platform # type: ignore[assignment]
|
|
183
|
-
|
|
184
167
|
def __str__(self) -> str:
|
|
185
|
-
return
|
|
168
|
+
return "TEEMeasurement"
|
|
186
169
|
|
|
187
170
|
def __repr__(self) -> str:
|
|
188
|
-
return
|
|
171
|
+
return "MeasurementType()"
|
|
189
172
|
|
|
190
173
|
def __eq__(self, other: object) -> bool:
|
|
191
|
-
|
|
192
|
-
return False
|
|
193
|
-
return self.platform == other.platform
|
|
174
|
+
return isinstance(other, MeasurementType)
|
|
194
175
|
|
|
195
176
|
def __hash__(self) -> int:
|
|
196
|
-
return hash(
|
|
177
|
+
return hash("MeasurementType")
|
|
197
178
|
|
|
198
179
|
# --- Serde methods ---
|
|
199
180
|
_serde_kind: ClassVar[str] = "tee.MeasurementType"
|
|
200
181
|
|
|
201
182
|
def to_json(self) -> dict[str, Any]:
|
|
202
|
-
return {
|
|
183
|
+
return {}
|
|
203
184
|
|
|
204
185
|
@classmethod
|
|
205
186
|
def from_json(cls, data: dict[str, Any]) -> MeasurementType:
|
|
206
|
-
return cls(
|
|
187
|
+
return cls()
|
|
207
188
|
|
|
208
189
|
|
|
209
190
|
# ==============================================================================
|
|
@@ -223,14 +204,11 @@ get_measurement_p = el.Primitive[el.Object]("tee.get_measurement")
|
|
|
223
204
|
@quote_gen_p.def_abstract_eval
|
|
224
205
|
def _quote_gen_ae(
|
|
225
206
|
pk: elt.BaseType,
|
|
226
|
-
*,
|
|
227
|
-
platform: Platform = "mock",
|
|
228
207
|
) -> QuoteType:
|
|
229
208
|
"""Generate a TEE quote binding the provided public key.
|
|
230
209
|
|
|
231
210
|
Args:
|
|
232
211
|
pk: Public key to bind in the quote (must be PublicKeyType from crypto.kem_keygen)
|
|
233
|
-
platform: TEE platform to use
|
|
234
212
|
|
|
235
213
|
Returns:
|
|
236
214
|
QuoteType representing the attestation proof
|
|
@@ -243,7 +221,7 @@ def _quote_gen_ae(
|
|
|
243
221
|
f"quote_gen expects PublicKeyType (from crypto.kem_keygen), "
|
|
244
222
|
f"got {type(pk).__name__}"
|
|
245
223
|
)
|
|
246
|
-
return QuoteType(
|
|
224
|
+
return QuoteType()
|
|
247
225
|
|
|
248
226
|
|
|
249
227
|
@attest_p.def_abstract_eval
|
|
@@ -261,7 +239,7 @@ def _attest_ae(
|
|
|
261
239
|
Returns:
|
|
262
240
|
AttestedKeyType containing the verified public key
|
|
263
241
|
"""
|
|
264
|
-
return AttestedKeyType(
|
|
242
|
+
return AttestedKeyType(curve=expected_curve)
|
|
265
243
|
|
|
266
244
|
|
|
267
245
|
@get_measurement_p.def_abstract_eval
|
|
@@ -276,7 +254,7 @@ def _get_measurement_ae(
|
|
|
276
254
|
Returns:
|
|
277
255
|
MeasurementType containing the code measurement
|
|
278
256
|
"""
|
|
279
|
-
return MeasurementType(
|
|
257
|
+
return MeasurementType()
|
|
280
258
|
|
|
281
259
|
|
|
282
260
|
# ==============================================================================
|
|
@@ -286,7 +264,6 @@ def _get_measurement_ae(
|
|
|
286
264
|
|
|
287
265
|
def quote_gen(
|
|
288
266
|
pk: el.Object,
|
|
289
|
-
platform: Platform = "mock",
|
|
290
267
|
) -> el.Object:
|
|
291
268
|
"""Generate a TEE attestation quote binding the provided public key.
|
|
292
269
|
|
|
@@ -297,7 +274,6 @@ def quote_gen(
|
|
|
297
274
|
|
|
298
275
|
Args:
|
|
299
276
|
pk: Public key to bind (typically from crypto.kem_keygen)
|
|
300
|
-
platform: TEE platform ("mock", "sgx", "tdx", "sev")
|
|
301
277
|
|
|
302
278
|
Returns:
|
|
303
279
|
Object[QuoteType] - The attestation quote
|
|
@@ -306,7 +282,7 @@ def quote_gen(
|
|
|
306
282
|
>>> sk, pk = crypto.kem_keygen("x25519")
|
|
307
283
|
>>> quote = tee.quote_gen(pk) # Bind pk in attestation
|
|
308
284
|
"""
|
|
309
|
-
return quote_gen_p.bind(pk
|
|
285
|
+
return quote_gen_p.bind(pk)
|
|
310
286
|
|
|
311
287
|
|
|
312
288
|
def attest(
|
|
@@ -360,7 +336,6 @@ __all__ = [
|
|
|
360
336
|
"AttestedKeyType",
|
|
361
337
|
"KeyCurve",
|
|
362
338
|
"MeasurementType",
|
|
363
|
-
"Platform",
|
|
364
339
|
"QuoteType",
|
|
365
340
|
"attest",
|
|
366
341
|
"attest_p",
|
|
@@ -49,11 +49,10 @@ class TestMockTEEExecution:
|
|
|
49
49
|
_sk, pk = crypto.kem_keygen("x25519")
|
|
50
50
|
|
|
51
51
|
with pytest.warns(UserWarning, match="Insecure mock TEE"):
|
|
52
|
-
quote = tee.quote_gen(pk
|
|
52
|
+
quote = tee.quote_gen(pk)
|
|
53
53
|
|
|
54
54
|
# Verify type propagation
|
|
55
55
|
assert isinstance(quote.type, tee.QuoteType)
|
|
56
|
-
assert quote.type.platform == "mock"
|
|
57
56
|
|
|
58
57
|
def test_attest_execution(self):
|
|
59
58
|
"""Test attest primitive execution produces correct type.
|
|
@@ -65,7 +64,7 @@ class TestMockTEEExecution:
|
|
|
65
64
|
_sk, pk = crypto.kem_keygen("x25519")
|
|
66
65
|
|
|
67
66
|
with pytest.warns(UserWarning, match="Insecure mock TEE"):
|
|
68
|
-
quote = tee.quote_gen(pk
|
|
67
|
+
quote = tee.quote_gen(pk)
|
|
69
68
|
|
|
70
69
|
with pytest.warns(UserWarning, match="Insecure mock TEE"):
|
|
71
70
|
attested_pk = tee.attest(quote, expected_curve="x25519")
|
|
@@ -73,7 +72,6 @@ class TestMockTEEExecution:
|
|
|
73
72
|
# Type level still shows AttestedKeyType (for type checking)
|
|
74
73
|
# But runtime returns PublicKeyValue directly
|
|
75
74
|
assert isinstance(attested_pk.type, tee.AttestedKeyType)
|
|
76
|
-
assert attested_pk.type.platform == "sgx"
|
|
77
75
|
assert attested_pk.type.curve == "x25519"
|
|
78
76
|
|
|
79
77
|
def test_full_attestation_workflow(self):
|
|
@@ -82,14 +80,13 @@ class TestMockTEEExecution:
|
|
|
82
80
|
_sk, pk = crypto.kem_keygen("x25519")
|
|
83
81
|
|
|
84
82
|
with pytest.warns(UserWarning, match="Insecure mock TEE"):
|
|
85
|
-
quote = tee.quote_gen(pk
|
|
83
|
+
quote = tee.quote_gen(pk)
|
|
86
84
|
|
|
87
85
|
with pytest.warns(UserWarning, match="Insecure mock TEE"):
|
|
88
86
|
attested_pk = tee.attest(quote, expected_curve="x25519")
|
|
89
87
|
|
|
90
88
|
# Verify types propagate correctly through the workflow
|
|
91
89
|
assert isinstance(attested_pk.type, tee.AttestedKeyType)
|
|
92
|
-
assert attested_pk.type.platform == "tdx"
|
|
93
90
|
|
|
94
91
|
|
|
95
92
|
class TestTEEWithCryptoIntegration:
|
|
@@ -102,7 +99,7 @@ class TestTEEWithCryptoIntegration:
|
|
|
102
99
|
tee_sk, tee_pk = crypto.kem_keygen("x25519")
|
|
103
100
|
|
|
104
101
|
with pytest.warns(UserWarning, match="Insecure mock TEE"):
|
|
105
|
-
quote = tee.quote_gen(tee_pk
|
|
102
|
+
quote = tee.quote_gen(tee_pk)
|
|
106
103
|
|
|
107
104
|
# Verifier side: attest and generate own keypair
|
|
108
105
|
with pytest.warns(UserWarning, match="Insecure mock TEE"):
|
|
@@ -24,73 +24,54 @@ from mplang.v2.dialects import crypto, tee
|
|
|
24
24
|
class TestTEETypes:
|
|
25
25
|
"""Test TEE type definitions."""
|
|
26
26
|
|
|
27
|
-
def
|
|
28
|
-
"""Test QuoteType
|
|
27
|
+
def test_quote_type(self):
|
|
28
|
+
"""Test QuoteType."""
|
|
29
29
|
qt = tee.QuoteType()
|
|
30
|
-
assert qt
|
|
31
|
-
assert
|
|
32
|
-
assert repr(qt) == "QuoteType(platform='mock')"
|
|
33
|
-
|
|
34
|
-
def test_quote_type_platforms(self):
|
|
35
|
-
"""Test QuoteType with different platforms."""
|
|
36
|
-
platforms = ["mock", "sgx", "tdx", "sev"]
|
|
37
|
-
for platform in platforms:
|
|
38
|
-
qt = tee.QuoteType(platform=platform)
|
|
39
|
-
assert qt.platform == platform
|
|
40
|
-
assert str(qt) == f"TEEQuote[{platform}]"
|
|
30
|
+
assert str(qt) == "TEEQuote"
|
|
31
|
+
assert repr(qt) == "QuoteType()"
|
|
41
32
|
|
|
42
33
|
def test_quote_type_equality(self):
|
|
43
34
|
"""Test QuoteType equality and hashing."""
|
|
44
|
-
q1 = tee.QuoteType(
|
|
45
|
-
q2 = tee.QuoteType(
|
|
46
|
-
q3 = tee.QuoteType("tdx")
|
|
35
|
+
q1 = tee.QuoteType()
|
|
36
|
+
q2 = tee.QuoteType()
|
|
47
37
|
|
|
48
38
|
assert q1 == q2
|
|
49
|
-
assert q1 != q3
|
|
50
39
|
assert hash(q1) == hash(q2)
|
|
51
|
-
assert hash(q1) != hash(q3)
|
|
52
40
|
|
|
53
|
-
def
|
|
54
|
-
"""Test AttestedKeyType
|
|
41
|
+
def test_attested_key_type(self):
|
|
42
|
+
"""Test AttestedKeyType."""
|
|
55
43
|
akt = tee.AttestedKeyType()
|
|
56
|
-
assert akt.platform == "mock"
|
|
57
44
|
assert akt.curve == "x25519"
|
|
58
|
-
assert str(akt) == "AttestedKey[
|
|
45
|
+
assert str(akt) == "AttestedKey[x25519]"
|
|
59
46
|
|
|
60
47
|
def test_attested_key_type_custom(self):
|
|
61
48
|
"""Test AttestedKeyType with custom values."""
|
|
62
|
-
akt = tee.AttestedKeyType(
|
|
63
|
-
assert akt.platform == "sgx"
|
|
49
|
+
akt = tee.AttestedKeyType(curve="secp256k1")
|
|
64
50
|
assert akt.curve == "secp256k1"
|
|
65
|
-
assert str(akt) == "AttestedKey[
|
|
51
|
+
assert str(akt) == "AttestedKey[secp256k1]"
|
|
66
52
|
|
|
67
53
|
def test_attested_key_type_equality(self):
|
|
68
54
|
"""Test AttestedKeyType equality and hashing."""
|
|
69
|
-
a1 = tee.AttestedKeyType("
|
|
70
|
-
a2 = tee.AttestedKeyType("
|
|
71
|
-
a3 = tee.AttestedKeyType("
|
|
72
|
-
a4 = tee.AttestedKeyType("tdx", "x25519")
|
|
55
|
+
a1 = tee.AttestedKeyType("x25519")
|
|
56
|
+
a2 = tee.AttestedKeyType("x25519")
|
|
57
|
+
a3 = tee.AttestedKeyType("secp256k1")
|
|
73
58
|
|
|
74
59
|
assert a1 == a2
|
|
75
60
|
assert a1 != a3 # Different curve
|
|
76
|
-
assert a1 != a4 # Different platform
|
|
77
61
|
assert hash(a1) == hash(a2)
|
|
78
62
|
|
|
79
63
|
def test_measurement_type(self):
|
|
80
64
|
"""Test MeasurementType."""
|
|
81
|
-
mt = tee.MeasurementType(
|
|
82
|
-
assert mt
|
|
83
|
-
assert
|
|
84
|
-
assert repr(mt) == "MeasurementType(platform='sgx')"
|
|
65
|
+
mt = tee.MeasurementType()
|
|
66
|
+
assert str(mt) == "TEEMeasurement"
|
|
67
|
+
assert repr(mt) == "MeasurementType()"
|
|
85
68
|
|
|
86
69
|
def test_measurement_type_equality(self):
|
|
87
70
|
"""Test MeasurementType equality."""
|
|
88
|
-
m1 = tee.MeasurementType(
|
|
89
|
-
m2 = tee.MeasurementType(
|
|
90
|
-
m3 = tee.MeasurementType("tdx")
|
|
71
|
+
m1 = tee.MeasurementType()
|
|
72
|
+
m2 = tee.MeasurementType()
|
|
91
73
|
|
|
92
74
|
assert m1 == m2
|
|
93
|
-
assert m1 != m3
|
|
94
75
|
assert hash(m1) == hash(m2)
|
|
95
76
|
|
|
96
77
|
|
|
@@ -111,26 +92,12 @@ class TestTEETypeInference:
|
|
|
111
92
|
quote_op = graph.operations[1]
|
|
112
93
|
assert quote_op.opcode == "tee.quote_gen"
|
|
113
94
|
|
|
114
|
-
def test_quote_gen_with_platform(self):
|
|
115
|
-
"""Test quote_gen with explicit platform."""
|
|
116
|
-
|
|
117
|
-
def workflow():
|
|
118
|
-
_sk, pk = crypto.kem_keygen("x25519")
|
|
119
|
-
quote = tee.quote_gen(pk, platform="sgx")
|
|
120
|
-
return quote
|
|
121
|
-
|
|
122
|
-
traced = el.trace(workflow)
|
|
123
|
-
graph = traced.graph
|
|
124
|
-
|
|
125
|
-
quote_op = graph.operations[1]
|
|
126
|
-
assert quote_op.attrs["platform"] == "sgx"
|
|
127
|
-
|
|
128
95
|
def test_attest_in_graph(self):
|
|
129
96
|
"""Test attest creates correct graph operation."""
|
|
130
97
|
|
|
131
98
|
def workflow():
|
|
132
99
|
_sk, pk = crypto.kem_keygen("x25519")
|
|
133
|
-
quote = tee.quote_gen(pk
|
|
100
|
+
quote = tee.quote_gen(pk)
|
|
134
101
|
attested_pk = tee.attest(quote, expected_curve="secp256k1")
|
|
135
102
|
return attested_pk
|
|
136
103
|
|
|
@@ -147,7 +114,7 @@ class TestTEETypeInference:
|
|
|
147
114
|
|
|
148
115
|
def workflow():
|
|
149
116
|
_sk, pk = crypto.kem_keygen("x25519")
|
|
150
|
-
quote = tee.quote_gen(pk
|
|
117
|
+
quote = tee.quote_gen(pk)
|
|
151
118
|
measurement = tee.get_measurement(quote)
|
|
152
119
|
return measurement
|
|
153
120
|
|
|
@@ -163,7 +130,7 @@ class TestTEETypeInference:
|
|
|
163
130
|
|
|
164
131
|
def workflow():
|
|
165
132
|
_sk, pk = crypto.kem_keygen("x25519")
|
|
166
|
-
quote = tee.quote_gen(pk
|
|
133
|
+
quote = tee.quote_gen(pk)
|
|
167
134
|
attested_pk = tee.attest(quote)
|
|
168
135
|
measurement = tee.get_measurement(quote)
|
|
169
136
|
return attested_pk, measurement
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/examples/v1/xgboost/bench_fhe_hist.py
RENAMED
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/examples/v1/xgboost/hist_jax_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/protos/v1alpha1/mpir_pb2.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/protos/v1alpha1/mpir_pb2.pyi
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/protos/v1alpha1/value_pb2.py
RENAMED
|
File without changes
|
{mplang_nightly-0.1.dev258 → mplang_nightly-0.1.dev260}/mplang/v1/protos/v1alpha1/value_pb2.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|