1 This is a prototype for plumbing Mojo into the NaCl sandbox. It is 2 currently insecure (see below), does not provide a stable ABI (IRT 3 support must be added), and does not support Mojo functions that 4 return pointers (for example, MojoMapBuffer). 5 6 generator/interface.py contains a programmatic description of the 7 stable Mojo interface. This will need to be updated as the interface 8 changes. Run generator/generate_nacl_bindings.py to generate the 9 bindings that plumb this interface into the NaCl sandbox. 10 11 To test: Build "monacl_shell" and "monacl_test". Run monacl_shell 12 with the IRT as the first argument and the monacl_test as the second 13 argument. For example, to run a Debug 32-bit Intel build: 14 15 cd out/Debug 16 ./monacl_shell irt_core_newlib_x32.nexe monacl_test_newlib_x32.nexe 17 18 Security TODO list: 19 Separate trusted and untrusted Mojo handles. 20 Validate and copy option structures. 21 Protect untrusted buffers passed into Mojo: 22 NaClVmIoWillStart/HasEnded. 23 volatile accesses to untrusted memory (untrusted code could race). 24 Overflow checking in array bounds validation.