PQS: Post Quantum Shell Protocol 1.1.0.0a (A2)
A quantum secure secure shell protocol
pqsadmin.h File Reference

PQS typed administrative command functions. More...

#include "pqsconfig.h"
#include "pqskey.h"
#include "pqslogger.h"
#include "pqspolicy.h"
#include "pqssandbox.h"
#include "pqsshell.h"
#include "pqsuser.h"

Go to the source code of this file.

Data Structures

struct  pqs_admin_request
 A parsed PQS administrative command request. More...
struct  pqs_admin_context
 The server-side context made available to a typed administrative command. More...

Macros

#define PQS_ADMIN_ARGUMENT_MAX   128U
 The maximum administrative command argument buffer size.
#define PQS_ADMIN_OUTPUT_MAX   2048U
 The maximum formatted administrative command response size.
#define PQS_ADMIN_POLICY_PREFIX   "admin."
 The administrative policy command namespace prefix.

Typedefs

typedef PQS_EXPORT_API enum pqs_admin_command_ids pqs_admin_command_ids
typedef PQS_EXPORT_API struct pqs_admin_request pqs_admin_request
typedef PQS_EXPORT_API struct pqs_admin_context pqs_admin_context

Enumerations

enum  pqs_admin_command_ids {
  pqs_admin_command_none = 0x0000U , pqs_admin_command_server_status = 0x0001U , pqs_admin_command_server_version = 0x0002U , pqs_admin_command_server_fingerprint = 0x0003U ,
  pqs_admin_command_sandbox_status = 0x0004U , pqs_admin_command_audit_verify = 0x0005U , pqs_admin_command_config_summary = 0x0006U , pqs_admin_command_user_list = 0x0007U ,
  pqs_admin_command_policy_list = 0x0008U , pqs_admin_command_shell_list = 0x0009U
}
 Stable PQS typed administrative command identifiers. More...

Functions

PQS_EXPORT_API bool pqs_admin_authorize (const pqs_admin_context *context, const pqs_admin_request *request)
 Authorize a typed administrative command against privilege and policy.
PQS_EXPORT_API bool pqs_admin_execute (const pqs_admin_context *context, const pqs_admin_request *request, char *output, size_t outlen)
 Execute a typed administrative command into a bounded response buffer.
PQS_EXPORT_API bool pqs_admin_request_parse (pqs_admin_request *request, const char *command)
 Parse a bounded administrative request string.
PQS_EXPORT_API const char * pqs_admin_command_to_string (pqs_admin_command_ids command)
 Return the stable command name for a typed administrative command.
PQS_EXPORT_API const char * pqs_admin_policy_verb (pqs_admin_command_ids command)
 Return the policy verb associated with a typed administrative command.

Detailed Description

PQS typed administrative command functions.

Enumeration Type Documentation

◆ pqs_admin_command_ids

Stable PQS typed administrative command identifiers.

Enumerator
pqs_admin_command_none 

No administrative command.

pqs_admin_command_server_status 

Print the authenticated server-session status.

pqs_admin_command_server_version 

Print the PQS server version string.

pqs_admin_command_server_fingerprint 

Print the server public-key fingerprint.

pqs_admin_command_sandbox_status 

Print the active sandbox profile status.

pqs_admin_command_audit_verify 

Verify the configured tamper-evident audit log.

pqs_admin_command_config_summary 

Print a bounded server configuration summary.

pqs_admin_command_user_list 

Print a bounded user database summary.

pqs_admin_command_policy_list 

Print a bounded command-policy summary.

pqs_admin_command_shell_list 

Print a bounded shell-profile summary.

Function Documentation

◆ pqs_admin_authorize()

PQS_EXPORT_API bool pqs_admin_authorize ( const pqs_admin_context * context,
const pqs_admin_request * request )

Authorize a typed administrative command against privilege and policy.

Parameters
context[const struct] The server-side administrative context.
request[const struct] The parsed administrative request.
Returns
Returns true when the request is administratively authorized.

◆ pqs_admin_command_to_string()

PQS_EXPORT_API const char * pqs_admin_command_to_string ( pqs_admin_command_ids command)

Return the stable command name for a typed administrative command.

Parameters
command[enum] The administrative command identifier.
Returns
Returns the stable command name, or "none".

◆ pqs_admin_execute()

PQS_EXPORT_API bool pqs_admin_execute ( const pqs_admin_context * context,
const pqs_admin_request * request,
char * output,
size_t outlen )

Execute a typed administrative command into a bounded response buffer.

Parameters
context[const struct] The server-side administrative context.
request[const struct] The parsed administrative request.
outputThe output buffer receiving the response.
outlenThe output buffer size.
Returns
Returns true if the command completed and a response was written.

◆ pqs_admin_policy_verb()

PQS_EXPORT_API const char * pqs_admin_policy_verb ( pqs_admin_command_ids command)

Return the policy verb associated with a typed administrative command.

Parameters
command[enum] The administrative command identifier.
Returns
Returns the policy verb, or "admin.none".

◆ pqs_admin_request_parse()

PQS_EXPORT_API bool pqs_admin_request_parse ( pqs_admin_request * request,
const char * command )

Parse a bounded administrative request string.

Parameters
request[struct] The parsed administrative request output.
command[const] The NUL-terminated request text.
Returns
Returns true if the request text matched a supported typed command.