/* * (C) 2019 David Carlier * * Botan is released under the Simplified BSD License (see license.txt) */ #include "sandbox.h" #include #if defined(BOTAN_TARGET_OS_HAS_PLEDGE) #include #elif defined(BOTAN_TARGET_OS_HAS_CAP_ENTER) #include #endif namespace Botan_CLI { Sandbox::Sandbox() { #if defined(BOTAN_TARGET_OS_HAS_PLEDGE) m_name = "pledge"; #elif defined(BOTAN_TARGET_OS_HAS_CAP_ENTER) m_name = "capsicum"; #else m_name = ""; #endif } bool Sandbox::init() { #if defined(BOTAN_TARGET_OS_HAS_PLEDGE) const static char *opts = "stdio rpath inet error"; return (::pledge(opts, nullptr) == 0); #elif defined(BOTAN_TARGET_OS_HAS_CAP_ENTER) return (::cap_enter() == 0); #else return true; #endif } Sandbox::~Sandbox() { } }