QSC Post Quantum Cryptographic Library 1.0.0.6c (A6)
A post quantum secure library written in Ansi C
 
Loading...
Searching...
No Matches
consoleutils.h
Go to the documentation of this file.
1/*
2 * 2025 Quantum Resistant Cryptographic Solutions Corporation
3 * All Rights Reserved.
4 *
5 * NOTICE: This software and all accompanying materials are the exclusive
6 * property of Quantum Resistant Cryptographic Solutions Corporation (QRCS).
7 * The intellectual and technical concepts contained within this implementation
8 * are proprietary to QRCS and its authorized licensors and are protected under
9 * applicable U.S. and international copyright, patent, and trade secret laws.
10 *
11 * CRYPTOGRAPHIC STANDARDS:
12 * - This software includes implementations of cryptographic algorithms such as
13 * SHA3, AES, and others. These algorithms are public domain or standardized
14 * by organizations such as NIST and are NOT the property of QRCS.
15 * - However, all source code, optimizations, and implementations in this library
16 * are original works of QRCS and are protected under this license.
17 *
18 * RESTRICTIONS:
19 * - Redistribution, modification, or unauthorized distribution of this software,
20 * in whole or in part, is strictly prohibited.
21 * - This software is provided for non-commercial, educational, and research
22 * purposes only. Commercial use in any form is expressly forbidden.
23 * - Licensing and authorized distribution are solely at the discretion of QRCS.
24 * - Any use of this software implies acceptance of these restrictions.
25 *
26 * DISCLAIMER:
27 * This software is provided "as is," without warranty of any kind, express or
28 * implied, including but not limited to warranties of merchantability or fitness
29 * for a particular purpose. QRCS disclaims all liability for any direct, indirect,
30 * incidental, or consequential damages resulting from the use or misuse of this software.
31 *
32 * FULL LICENSE:
33 * This software is subject to the **Quantum Resistant Cryptographic Solutions
34 * Proprietary License (QRCS-PL)**. The complete license terms are included
35 * in the LICENSE.txt file distributed with this software.
36 *
37 * Written by: John G. Underhill
38 * Contact: john.underhill@protonmail.com
39 */
40
41#ifndef QSC_CONSOLEUTILS_H
42#define QSC_CONSOLEUTILS_H
43
44#include "common.h"
45
46QSC_CPLUSPLUS_ENABLED_START
47
80
85#define QSC_CONSOLE_MAX_LINE 128ULL
86
91typedef enum
92{
93 white = 0x00U,
94 blue = 0x01U,
95 green = 0x02U,
96 red = 0x03U
98
103typedef enum
104{
105 regular = 0x00U,
106 bold = 0x01U,
107 italic = 0x02U,
108 bolditalic = 0x03U
110
120
127
137QSC_EXPORT_API size_t qsc_consoleutils_get_formatted_line(char* line, size_t maxlen);
138
148QSC_EXPORT_API size_t qsc_consoleutils_get_line(char* line, size_t maxlen);
149
161QSC_EXPORT_API size_t qsc_consoleutils_get_quoted_string(char* output, const char* input, size_t maxlen);
162
171
179QSC_EXPORT_API void qsc_consoleutils_hex_to_bin(const char* hexstr, uint8_t* output, size_t length);
180
188QSC_EXPORT_API bool qsc_consoleutils_line_contains(const char* line, const char* token);
189
197QSC_EXPORT_API bool qsc_consoleutils_line_equals(const char* line1, const char* line2);
198
208QSC_EXPORT_API size_t qsc_consoleutils_masked_password(char* output, size_t otplen);
209
216QSC_EXPORT_API bool qsc_consoleutils_message_confirm(const char* message);
217
227QSC_EXPORT_API void qsc_consoleutils_print_array(const uint8_t* input, size_t inplen, size_t linelen);
228
236QSC_EXPORT_API void qsc_consoleutils_print_hex(const uint8_t* input, size_t inplen, size_t linelen);
237
244QSC_EXPORT_API void qsc_consoleutils_print_formatted(const char* input, size_t inplen);
245
252QSC_EXPORT_API void qsc_consoleutils_print_formatted_line(const char* input, size_t inplen);
253
261QSC_EXPORT_API void qsc_consoleutils_print_safe(const char* input);
262
268QSC_EXPORT_API void qsc_consoleutils_print_line(const char* input);
269
276
283
290
297QSC_EXPORT_API void qsc_consoleutils_print_concatenated_line(const char** input, size_t count);
298
305
310
317QSC_EXPORT_API void qsc_consoleutils_set_window_buffer(size_t width, size_t height);
318
323
330
337QSC_EXPORT_API void qsc_consoleutils_set_window_size(size_t width, size_t height);
338
345
350
351QSC_CPLUSPLUS_ENABLED_END
352
353#endif
Contains common definitions for the Quantum Secure Cryptographic (QSC) library.
#define QSC_EXPORT_API
API export macro for Microsoft compilers when importing from a DLL.
Definition common.h:520
QSC_EXPORT_API void qsc_consoleutils_print_concatenated_line(const char **input, size_t count)
Print a double-precision floating point number to the console.
Definition consoleutils.c:447
QSC_EXPORT_API void qsc_consoleutils_set_virtual_terminal(void)
Enable virtual terminal processing mode in the console.
Definition consoleutils.c:707
QSC_EXPORT_API bool qsc_consoleutils_message_confirm(const char *message)
Display a confirmation message and wait for a Y/N response.
Definition consoleutils.c:371
QSC_EXPORT_API void qsc_consoleutils_set_window_clear(void)
Clear all text from the console window.
Definition consoleutils.c:639
QSC_EXPORT_API void qsc_consoleutils_print_line(const char *input)
Print a string to the console with a trailing line break.
Definition consoleutils.c:552
QSC_EXPORT_API void qsc_consoleutils_set_window_size(size_t width, size_t height)
Set the size of the console window.
Definition consoleutils.c:675
QSC_EXPORT_API size_t qsc_consoleutils_get_quoted_string(char *output, const char *input, size_t maxlen)
Extract a quoted string from input.
Definition consoleutils.c:170
QSC_EXPORT_API void qsc_consoleutils_print_hex(const uint8_t *input, size_t inplen, size_t linelen)
Print a byte array as hexadecimal values to the console.
Definition consoleutils.c:466
QSC_EXPORT_API void qsc_consoleutils_print_formatted(const char *input, size_t inplen)
Print a formatted string to the console, ignoring special characters.
Definition consoleutils.c:506
QSC_EXPORT_API void qsc_consoleutils_progress_counter(int32_t seconds)
Display a small spinning progress counter for a specified duration.
Definition consoleutils.c:596
QSC_EXPORT_API size_t qsc_consoleutils_get_line(char *line, size_t maxlen)
Get a line of text from the console.
Definition consoleutils.c:113
QSC_EXPORT_API void qsc_consoleutils_print_uint(uint32_t digit)
Print an unsigned 32-bit integer to the console.
Definition consoleutils.c:578
QSC_EXPORT_API void qsc_consoleutils_send_enter(void)
Send an "enter" (newline) command to the console.
Definition consoleutils.c:621
QSC_EXPORT_API char qsc_consoleutils_get_wait(void)
Wait for user input from the console.
Definition consoleutils.c:235
QSC_EXPORT_API void qsc_consoleutils_print_array(const uint8_t *input, size_t inplen, size_t linelen)
Print a byte array to the console.
Definition consoleutils.c:394
QSC_EXPORT_API void qsc_consoleutils_print_ulong(uint64_t digit)
Print an unsigned 64-bit integer to the console.
Definition consoleutils.c:587
QSC_EXPORT_API void qsc_consoleutils_print_formatted_line(const char *input, size_t inplen)
Print a formatted string to the console with a line break.
Definition consoleutils.c:540
QSC_EXPORT_API size_t qsc_consoleutils_get_formatted_line(char *line, size_t maxlen)
Get a formatted line of text from the console.
Definition consoleutils.c:148
qsc_console_font_color
The console font color choices.
Definition consoleutils.h:92
@ green
Definition consoleutils.h:95
@ blue
Definition consoleutils.h:94
@ red
Definition consoleutils.h:96
@ white
Definition consoleutils.h:93
QSC_EXPORT_API void qsc_consoleutils_print_safe(const char *input)
Print a string safely to the console.
Definition consoleutils.c:564
QSC_EXPORT_API size_t qsc_consoleutils_masked_password(char *output, size_t otplen)
Read a masked password from the console.
Definition consoleutils.c:314
QSC_EXPORT_API bool qsc_consoleutils_line_equals(const char *line1, const char *line2)
Compare two lines of text for equivalence.
Definition consoleutils.c:291
QSC_EXPORT_API void qsc_consoleutils_set_window_buffer(size_t width, size_t height)
Set the vertical scroll buffer size of the console window.
Definition consoleutils.c:626
QSC_EXPORT_API bool qsc_consoleutils_line_contains(const char *line, const char *token)
Check if a line of text contains a given token.
Definition consoleutils.c:274
QSC_EXPORT_API void qsc_consoleutils_hex_to_bin(const char *hexstr, uint8_t *output, size_t length)
Convert a hexadecimal string to a binary (byte) array.
Definition consoleutils.c:244
QSC_EXPORT_API void qsc_consoleutils_set_window_prompt(const char *prompt)
Set the console window prompt string.
Definition consoleutils.c:665
QSC_EXPORT_API void qsc_consoleutils_print_double(double digit)
Print a double-precision floating point number to the console.
Definition consoleutils.c:438
QSC_EXPORT_API char qsc_consoleutils_get_char(void)
Get a character from the console in a blocking manner.
Definition consoleutils.c:100
qsc_console_font_style
The console font style options.
Definition consoleutils.h:104
@ regular
Definition consoleutils.h:105
@ italic
Definition consoleutils.h:107
@ bold
Definition consoleutils.h:106
@ bolditalic
Definition consoleutils.h:108
QSC_EXPORT_API void qsc_consoleutils_set_window_title(const char *title)
Set the title of the console window.
Definition consoleutils.c:693
QSC_EXPORT_API void qsc_consoleutils_colored_message(const char *message, qsc_console_font_color color)
Print a colored console message.
Definition consoleutils.c:63