private static void readFully()

in sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/substitutes/NativePRNGSubstitutions.java [110:126]


        private static void readFully(InputStream in, byte[] data) {
            int len = data.length;
            EnclaveEnvironment.NativeGetRandomNumberFunctionPointer nativeGetRandomNumberFunctionPointer = EnclaveEntry.getCallBackMethods().getRandomNumber();
            if (nativeGetRandomNumberFunctionPointer.isNonNull()) {
                CCharPointer bytes = UnmanagedMemory.malloc(len);
                int ret = nativeGetRandomNumberFunctionPointer.invoke((VoidPointer) bytes, len);
                if (ret == 0) {
                    CTypeConversion.asByteBuffer(bytes, len).get(data);
                    UnmanagedMemory.free(bytes);
                } else {
                    UnmanagedMemory.free(bytes);
                    throw new RuntimeException("Fail to call the native random method in Enclave. Error code:" + ret);
                }
            } else {
                throw new RuntimeException("Callback function to oe_random is not set.");
            }
        }