Half-implemented process security

This commit is contained in:
Alex 2022-10-27 03:05:59 +03:00
parent 81469f51bd
commit 7abfd16ace
Signed by untrusted user who does not match committer: enderice2
GPG Key ID: EACC3AD603BAB4DD

View File

@ -1,18 +1,44 @@
#include <task.hpp> #include <task.hpp>
#include <vector.hpp>
#include <rand.hpp>
#include <debug.h> #include <debug.h>
namespace Tasking namespace Tasking
{ {
struct TokenData
{
Token token;
enum TokenTrustLevel TrustLevel;
uint64_t OwnerID;
bool Process;
};
Vector<TokenData> Tokens;
Token Security::CreateToken() Token Security::CreateToken()
{ {
fixme("CreateToken->0"); uint64_t ret = Random::rand64();
return 0; Tokens.push_back({ret, UnknownTrustLevel, 0, false});
debug("Created token %#lx", ret);
return ret;
} }
bool Security::TrustToken(Token token, bool Security::TrustToken(Token token,
TokenTrustLevel TrustLevel) TokenTrustLevel TrustLevel)
{ {
fixme("TrustToken->false"); enum TokenTrustLevel Level = static_cast<enum TokenTrustLevel>(TrustLevel);
foreach (auto var in Tokens)
{
if (var.token == token)
{
var.TrustLevel = Level;
debug("Trusted token %#lx", token);
return true;
}
}
debug("Failed to trust token %#lx", token);
return false; return false;
} }
@ -35,5 +61,8 @@ namespace Tasking
Security::~Security() Security::~Security()
{ {
trace("Destroying Tasking Security");
for (uint64_t i = 0; i < Tokens.size(); i++)
Tokens.remove(i);
} }
} }