> For bad example 2, please check if the panic info is: `thread '<unnamed>' 
> panicked at 'TLS access error: AccessError { msg: "If TLS data needs to be 
> destructed, TCS policy must be Bound." }'`. If so, the problem is:
> 
>     1. the enclave is signed with TCSPOLICY=UNBOUND, which means there's no 
> reliable thread local storage slots.
> 
>     2. the enclave is using thread local storage, which often relates to 
> `thread_rng`
> 
> 
> Two ways to fix:
> 
>     * Edit TCSPolicy in `Enclave.config.xml`. make TCSPolicy = 0
> 
>     * or use `SgxRng` in `sgx_rand`, or `OsRng` in ported `rand`
> 
> 
> ```toml
> rand = { git = "https://github.com/mesalock-linux/rand-sgx";, tag = 
> "v0.6.5_sgx1.1.1" }
> ```
> 
> ```rust
> use std::string::ToString;
> let threshold = 128;
> let secret = "abcdefg".to_string();
> let mut rand_container = vec![0u8; (threshold - 1) as usize];
> let mut coefficients= vec![];
> 
> for c in secret.as_bytes() {
> 
>     // fixme: randomise the bytes
> 
>     let mut rng = SgxRng::new().unwrap();
>     rng.fill_bytes(&mut rand_container);
>     let mut coef: Vec<u8> = vec![*c];
>     for r in rand_container.iter() {
>         coef.push(*r);
>     }
>     coefficients.push(coef);
> }
> 
> {
>     use rand::rngs::OsRng;
>     use rand::RngCore;
>     OsRng.fill_bytes(&mut rand_container);
> }
> ```

Thanks for the help! :) 

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/apache/incubator-teaclave-sgx-sdk/issues/218#issuecomment-616050779

Reply via email to