diff --git a/Makefile b/Makefile index 90179de..6d53816 100644 --- a/Makefile +++ b/Makefile @@ -3,12 +3,3 @@ all: bundle exec jekyll build #bash deploy_benchmarking.sh -doxyjinj: - cd _doxygen_pretty && python3 doxyjinj.py struct_file.html ../_includes/liboqs/build/docs/xml/struct_o_q_s___k_e_m.xml 'https://github.com/open-quantum-safe/liboqs/tree/main/' > ../liboqs/api/oqskem.html - cd _doxygen_pretty && python3 doxyjinj.py struct_file.html ../_includes/liboqs/build/docs/xml/struct_o_q_s___s_i_g.xml 'https://github.com/open-quantum-safe/liboqs/tree/main/' > ../liboqs/api/oqssig.html - cd _doxygen_pretty && python3 doxyjinj.py struct_file.html ../_includes/liboqs/build/docs/xml/struct_o_q_s___s_i_g___s_t_f_l___s_e_c_r_e_t___k_e_y.xml 'https://github.com/open-quantum-safe/liboqs/tree/main/' > ../liboqs/api/oqssig_stfl_secret_key.html - cd _doxygen_pretty && python3 doxyjinj.py header_file.html ../_includes/liboqs/build/docs/xml/common_8h.xml 'https://github.com/open-quantum-safe/liboqs/tree/main/' > ../liboqs/api/common.html - cd _doxygen_pretty && python3 doxyjinj.py header_file.html ../_includes/liboqs/build/docs/xml/kem_8h.xml 'https://github.com/open-quantum-safe/liboqs/tree/main/' > ../liboqs/api/kem.html - cd _doxygen_pretty && python3 doxyjinj.py header_file.html ../_includes/liboqs/build/docs/xml/rand_8h.xml 'https://github.com/open-quantum-safe/liboqs/tree/main/' > ../liboqs/api/rand.html - cd _doxygen_pretty && python3 doxyjinj.py header_file.html ../_includes/liboqs/build/docs/xml/sig_8h.xml 'https://github.com/open-quantum-safe/liboqs/tree/main/' > ../liboqs/api/sig.html - cd _doxygen_pretty && python3 doxyjinj.py header_file.html ../_includes/liboqs/build/docs/xml/sig__stfl_8h.xml 'https://github.com/open-quantum-safe/liboqs/tree/main/' > ../liboqs/api/sig_stfl.html diff --git a/README.md b/README.md index dfbae47..44314c5 100644 --- a/README.md +++ b/README.md @@ -36,9 +36,6 @@ git commit ``` ## Rebuilding API documentation - -```bash -make doxyjinj -``` - -Then clean up the diffs so that they have the YML header and don't have their own HTML header / footer. +API documentation is generated by Doxygen and served under the path `/liboqs/api/doxygen`. +A simple page is served at `/liboqs/api` to provide an explicit link to the documentation. +See [`gen-c-api-docs.sh`](./gen-c-api-docs.sh) for details. diff --git a/_doxygen_pretty/doxyjinj.py b/_doxygen_pretty/doxyjinj.py deleted file mode 100644 index b7566c8..0000000 --- a/_doxygen_pretty/doxyjinj.py +++ /dev/null @@ -1,194 +0,0 @@ -import jinja2 -from lxml import etree -import os -import sys - -def render_text_and_children(element): - global env - s = '' - if element.text: s += element.text - for child in element: - if child.tag == 'ndash': s += '–' - elif child.tag == 'ref': s += child.text - elif child.tag == 'computeroutput': s += env.get_template('base/computeroutput').render(t = child.text) - elif child.tag == 'para': s += env.get_template('base/para').render(t = render_text_and_children(child)) - elif child.tag == 'verbatim': s += env.get_template('base/verbatim').render(t = render_text_and_children(child)) - elif child.tag == 'parameterlist': pass - elif child.tag == 'simplesect': pass - else: raise NotImplementedError("Unknown node type: " + child.tag) - if child.tail: s += child.tail - return s - -def render_text_and_children_or_empty(element, path): - a = element.xpath(path) - if len(a) > 0: return render_text_and_children(a[0]) - return '' - -def element_text_or_empty(element, path): - a = element.xpath(path) - if len(a) > 0: return a[0].text - return '' - -def attribute_or_empty(element, path): - a = element.xpath(path) - if len(a) > 0: return a[0] - return '' - -def object_or_empty(element, path): - a = element.xpath(path) - if len(a) > 0: return a[0] - return '' - -class DXFunctionDescriptionParam(object): - def __init__(self, element, function): - self.element = element - self.function = function - def name(self): - return render_text_and_children_or_empty(self.element, 'parameternamelist/parametername') - def description(self): - return render_text_and_children_or_empty(self.element, 'parameterdescription') - def type(self): - for p in self.function.args(): - if self.name() == p.declname(): return p.type() - return '' - -class DXFunctionParam(object): - def __init__(self, element): - self.element = element - def type(self): - return render_text_and_children_or_empty(self.element, 'type') - def declname(self): - return render_text_and_children_or_empty(self.element, 'declname') - def defname(self): - return render_text_and_children_or_empty(self.element, 'defname') - def tostring(self): - return (self.type() + ' ' + self.declname() + ' ' + self.defname()).strip() - -class DXMember(object): - def name(self): - return element_text_or_empty(self.element, 'name') - def uniqid(self): - return attribute_or_empty(self.element, '@id') - def src_filename(self): - return attribute_or_empty(self.element, 'location/@file') - def src_linenumber(self): - return attribute_or_empty(self.element, 'location/@line') - def type(self): - return render_text_and_children_or_empty(self.element, 'type') - def definition(self): - return render_text_and_children_or_empty(self.element, 'definition') - def args(self): - return [DXFunctionParam(p) for p in self.element.xpath('param')] - def argsstring(self): - return render_text_and_children_or_empty(self.element, 'argsstring') - def description_brief(self): - return render_text_and_children_or_empty(self.element, 'briefdescription') - def description_detailed(self): - return render_text_and_children_or_empty(self.element, 'detaileddescription') - def description_parameter_list(self): - a = self.element.xpath('detaileddescription//parameterlist') - if len(a) == 0: return [] - else: return [DXFunctionDescriptionParam(p, self) for p in a[0]] - def return_description(self): - return render_text_and_children_or_empty(self.element, 'detaileddescription//simplesect[@kind="return"]') - def initializer(self): - return render_text_and_children_or_empty(self.element, 'initializer') - -class DXDefine(DXMember): - def __init__(self, element): - self.element = element - -class DXEnumValue(DXMember): - def __init__(self, element): - self.element = element - -class DXEnum(DXMember): - def __init__(self, element): - self.element = element - def values(self): - return [DXEnumValue(v) for v in self.element.xpath('enumvalue')] - -class DXFunction(DXMember): - def __init__(self, element): - self.element = element - -class DXIncludes(object): - def __init__(self, element): - self.element = element - def local(self): - a = attribute_or_empty(self.element, '@local') - return not(a == '' or a == 'no') - def filename(self): - return self.element.text - -class DXTypedef(DXMember): - def __init__(self, element): - self.element = element - -class DXVariable(DXMember): - def __init__(self, element): - self.element = element - def definition(self): - return render_text_and_children_or_empty(self.element, 'definition') - -class DXCompound(object): - @staticmethod - def factory(element): - kind = attribute_or_empty(element, 'compounddef/@kind') - if kind == 'file': return DXFile(element) - elif kind == 'struct': return DXStruct(element) - raise TypeError('Unknown kind: ' + kind) - def name(self): - return element_text_or_empty(self.element, 'compounddef/compoundname') - def path(self): - a = attribute_or_empty(self.element, 'compounddef/location/@file') - if len(a) > 0: - if len(os.path.dirname(a)) > 0: return os.path.dirname(a) + '/' - return '' - def src_filename(self): - return attribute_or_empty(self.element, 'location/@file') - def description_brief(self): - return render_text_and_children_or_empty(self.element, 'compounddef/briefdescription') - def description_detailed(self): - return render_text_and_children_or_empty(self.element, 'compounddef/detaileddescription') - def includes(self): - return [DXIncludes(f) for f in self.element.xpath('compounddef/includes')] - -class DXFile(DXCompound): - def __init__(self, element): - self.element = element - def defines(self): - return [DXDefine(f) for f in self.element.xpath('//memberdef[@kind="define"]')] - def enums(self): - return [DXEnum(f) for f in self.element.xpath('//memberdef[@kind="enum"]')] - def functions(self): - return [DXFunction(f) for f in self.element.xpath('//memberdef[@kind="function"]')] - def typedefs(self): - return [DXTypedef(f) for f in self.element.xpath('//memberdef[@kind="typedef"]')] - -class DXStruct(DXCompound): - def __init__(self, element): - self.element = element - def src_linenumber(self): - return attribute_or_empty(self.element, 'location/@line') - def variables(self): - return [DXVariable(f) for f in self.element.xpath('//memberdef[@kind="variable"]')] - -def render(templatefilename, xmlfilename, srcbaseurl=''): - global env - env = jinja2.Environment( - loader = jinja2.FileSystemLoader('templates') - ) - template = env.get_template(templatefilename) - tree = etree.parse(xmlfilename) - return template.render(file = DXCompound.factory(tree), srcbaseurl=srcbaseurl) - -if __name__ == "__main__": - if len(sys.argv) < 3 or len(sys.argv) > 4: - print("Usage: python3 jinja_doxygen_xml.py template xmlfile [srcbaseurl]") - exit(1) - - templatefilename = sys.argv[1] - xmlfilename = sys.argv[2] - srcbaseurl = '' if len(sys.argv) < 4 else sys.argv[3] - print(render(templatefilename, xmlfilename, srcbaseurl)) diff --git a/_doxygen_pretty/templates/base/computeroutput b/_doxygen_pretty/templates/base/computeroutput deleted file mode 100644 index b5fe204..0000000 --- a/_doxygen_pretty/templates/base/computeroutput +++ /dev/null @@ -1 +0,0 @@ -{{ t }} \ No newline at end of file diff --git a/_doxygen_pretty/templates/base/para b/_doxygen_pretty/templates/base/para deleted file mode 100644 index 48e72ef..0000000 --- a/_doxygen_pretty/templates/base/para +++ /dev/null @@ -1 +0,0 @@ -

{{ t }}

\ No newline at end of file diff --git a/_doxygen_pretty/templates/base/verbatim b/_doxygen_pretty/templates/base/verbatim deleted file mode 100644 index 4fbe53c..0000000 --- a/_doxygen_pretty/templates/base/verbatim +++ /dev/null @@ -1,3 +0,0 @@ -
-
{{ t }}
-
\ No newline at end of file diff --git a/_doxygen_pretty/templates/components/enums_card.html b/_doxygen_pretty/templates/components/enums_card.html deleted file mode 100644 index f14fa1b..0000000 --- a/_doxygen_pretty/templates/components/enums_card.html +++ /dev/null @@ -1,20 +0,0 @@ -
-
- -

enum {{ e.name() }}

-
- {{ e.description_detailed() }} -
- {% if e.values()|length > 0 %} -

Enumeration values

- - {% for v in e.values() %} - - - - - {% endfor %} -
{{ v.name() }} {{ v.initializer() }}{{ v.description_detailed() }}
- {% endif %} -
-
diff --git a/_doxygen_pretty/templates/components/enums_table.html b/_doxygen_pretty/templates/components/enums_table.html deleted file mode 100644 index 4d3b08b..0000000 --- a/_doxygen_pretty/templates/components/enums_table.html +++ /dev/null @@ -1,6 +0,0 @@ -{%- for e in file.enums() %} - - enum {{ e.name() }} - - {% if not(loop.last) %}
{% endif %} -{%- endfor %} diff --git a/_doxygen_pretty/templates/components/functions_card.html b/_doxygen_pretty/templates/components/functions_card.html deleted file mode 100644 index 974513f..0000000 --- a/_doxygen_pretty/templates/components/functions_card.html +++ /dev/null @@ -1,26 +0,0 @@ -
-
- -

{{ f.name() }}

-
{{ f.type() }} {{ f.name() }}{{ f.argsstring() }}
-
- {{ f.description_detailed() }} -
- {% if f.description_parameter_list()|length > 0 %} -

Parameters

- - {% for p in f.description_parameter_list() %} - - - - - - {% endfor %} -
{{ p.type() }}{{ p.name() }}{{ p.description() }}
- {% endif %} - {% if f.return_description()|length > 0 %} -

Returns

-
{{ f.return_description() }}
- {% endif %} -
-
diff --git a/_doxygen_pretty/templates/components/functions_table.html b/_doxygen_pretty/templates/components/functions_table.html deleted file mode 100644 index 7a2248a..0000000 --- a/_doxygen_pretty/templates/components/functions_table.html +++ /dev/null @@ -1,8 +0,0 @@ - - {% for f in file.functions() %} - - - - - {% endfor %} -
{{ f.type() }}{{ f.name() }}{{ f.argsstring() }}
diff --git a/_doxygen_pretty/templates/components/includes.html b/_doxygen_pretty/templates/components/includes.html deleted file mode 100644 index aaaa104..0000000 --- a/_doxygen_pretty/templates/components/includes.html +++ /dev/null @@ -1,6 +0,0 @@ -{%- for i in file.includes() %} - - #include {{ '"' if i.local() else '<' }}{{ i.filename() }}{{ '"' if i.local() else '>' }} - - {% if not(loop.last) %}
{% endif %} -{%- endfor %} diff --git a/_doxygen_pretty/templates/components/macros.html b/_doxygen_pretty/templates/components/macros.html deleted file mode 100644 index e76cff0..0000000 --- a/_doxygen_pretty/templates/components/macros.html +++ /dev/null @@ -1,22 +0,0 @@ - - {%- for m in file.defines() %} - - {%- endfor %} -
- -

- #define - {{ m.name() }} - {% if m.args()|length > 0 %} - ({% for arg in m.args() %}{{ arg.tostring() }}{% if not(loop.last) %}, {% endif %}{% endfor %}) - {% endif %} - {% if m.initializer()|length <= 100 and not('\n' in m.initializer()) %} - {{ m.initializer() }} - {% endif %} -

- {{ m.description_detailed() }} - {% if m.initializer()|length > 100 or '\n' in m.initializer() %} - {% set t = m.initializer() %} - {% include "base/verbatim" %} - {% endif %} -
diff --git a/_doxygen_pretty/templates/components/typedefs.html b/_doxygen_pretty/templates/components/typedefs.html deleted file mode 100644 index 6d12962..0000000 --- a/_doxygen_pretty/templates/components/typedefs.html +++ /dev/null @@ -1,9 +0,0 @@ - - {%- for t in file.typedefs() %} - - {%- endfor %} -
- -

typedef {{ t.type() }} {{ t.name() }}

- {{ t.description_detailed() }} -
diff --git a/_doxygen_pretty/templates/components/variables_table.html b/_doxygen_pretty/templates/components/variables_table.html deleted file mode 100644 index 474e069..0000000 --- a/_doxygen_pretty/templates/components/variables_table.html +++ /dev/null @@ -1,8 +0,0 @@ - - {% for v in file.variables() %} - - - - - {% endfor %} -
{{ v.type() }}{{ v.name() }}{{ v.argsstring() }}
diff --git a/_doxygen_pretty/templates/header_file.html b/_doxygen_pretty/templates/header_file.html deleted file mode 100644 index 1922819..0000000 --- a/_doxygen_pretty/templates/header_file.html +++ /dev/null @@ -1,57 +0,0 @@ -{% extends "html.html" %} - -{% block title %}{{ file.name() }}{% endblock %} - -{% block content %} -

{{ file.path() }}{{ file.name() }}

- -
- {{ file.description_brief() }} -
-{{ file.description_detailed() }} - -{% if file.includes()|length > 0 %} -

-

Includes

-
- {% include "components/includes.html" %} -{% endif %} - -{% if file.typedefs()|length > 0 %} -

-

Typedefs

- {% include "components/typedefs.html" %} -{% endif %} - -{% if file.enums()|length > 0 %} -

-

-

Enumeration Types

- {% if file.enums()|length > 1 %} - {% include "components/enums_table.html" %} - {% endif %} - {%- for e in file.enums() %} - {% include "components/enums_card.html" %} -
- {%- endfor %} -{% endif %} - -{% if file.functions()|length > 0 %} -

-

Functions

- {% if file.functions()|length > 1 %} - {% include "components/functions_table.html" %} - {% endif %} - {%- for f in file.functions() %} - {% include "components/functions_card.html" %} -
- {%- endfor %} -{% endif %} - -{% if file.defines()|length > 0 %} -

-

Macros

- {% include "components/macros.html" %} -{% endif %} - -{% endblock %} \ No newline at end of file diff --git a/_doxygen_pretty/templates/html.html b/_doxygen_pretty/templates/html.html deleted file mode 100644 index d640f4c..0000000 --- a/_doxygen_pretty/templates/html.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - {% block title %}{% endblock %} - - - - - - -
- {% block content %}{% endblock %} -

-
- - - - - - - - - - \ No newline at end of file diff --git a/_doxygen_pretty/templates/struct_file.html b/_doxygen_pretty/templates/struct_file.html deleted file mode 100644 index 850633f..0000000 --- a/_doxygen_pretty/templates/struct_file.html +++ /dev/null @@ -1,30 +0,0 @@ -{% extends "html.html" %} - -{% block title %}{{ file.name() }}{% endblock %} - -{% block content %} -

struct {{ file.name() }}

- -
- {{ file.description_brief() }} -
-{{ file.description_detailed() }} - -{% if file.includes()|length > 0 %} -

-

Includes

-
- {% include "components/includes.html" %} -{% endif %} - -{% if file.variables()|length > 0 %} -

-

Members

- {% include "components/variables_table.html" %} - {%- for f in file.variables() %} - {% include "components/functions_card.html" %} -
- {%- endfor %} -{% endif %} - -{% endblock %} \ No newline at end of file diff --git a/gen-c-api-docs.sh b/gen-c-api-docs.sh new file mode 100755 index 0000000..a72370c --- /dev/null +++ b/gen-c-api-docs.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +set -e + +www_dir=$(pwd) +liboqs_dir="$(pwd)/_includes/liboqs" +echo "Using www_dir=${www_dir}" +echo "Using liboqs_dir=${liboqs_dir}" +cd $liboqs_dir + +if [[ -d $liboqs_dir/build/docs ]]; then + echo "Found existing $liboqs_dir/build/docs" + read -p "Press enter to delete or ctrl+c to exit: " + rm -rf $liboqs_dir/build/docs + mkdir -p $liboqs_dir/build/docs +fi + +$liboqs_dir/scripts/run_doxygen.sh $(which doxygen) $liboqs_dir/docs/.Doxyfile $liboqs_dir/build + +if [[ -d $www_dir/liboqs/api/doxygen ]]; then + echo "Found existing $www_dir/liboqs/api/doxygen" + read -p "Press enter to delete or ctrl+c to exit: " + rm -rf $www_dir/liboqs/api/doxygen +fi +cp -r $liboqs_dir/build/docs/html $www_dir/liboqs/api/doxygen diff --git a/liboqs/api/common.html b/liboqs/api/common.html deleted file mode 100644 index 9ac75cc..0000000 --- a/liboqs/api/common.html +++ /dev/null @@ -1,795 +0,0 @@ ---- -layout: default -parent: C API documentation -grand_parent: liboqs -title: common.h ---- - -

src/common/common.h

- -
- -

Utility functions for use in liboqs.

- -
- -

SPDX-License-Identifier: MIT

- - - -

-

Includes

-
- - - #include <limits.h> - -
- - #include <stdint.h> - -
- - #include <stdio.h> - -
- - #include <stdlib.h> - -
- - #include <oqs/oqsconfig.h> - - - - - - - -

-

-

Enumeration Types

- - - - enum OQS_STATUS - -
- - enum OQS_CPU_EXT - - - -
-
- -

enum OQS_STATUS

-
- -

Represents return values from functions.

-

Callers should compare with the symbol rather than the individual value. For example,

-
ret = OQS_KEM_encaps(...);
-if (ret == OQS_SUCCESS) { ... }
-
-

-

rather than

-
if (!OQS_KEM_encaps(...) { ... }
-
-

- -
- -

Enumeration values

- - - - - - - - - - - - - - - - - -
OQS_ERROR = -1 -

Used to indicate that some undefined error occurred.

-
OQS_SUCCESS = 0 -

Used to indicate successful return from function.

-
OQS_EXTERNAL_LIB_ERROR_OPENSSL = 50 -

Used to indicate failures in external libraries (e.g., OpenSSL).

-
- -
-
-
-
-
- -

enum OQS_CPU_EXT

-
- -

CPU runtime detection flags

- -
- -

Enumeration values

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OQS_CPU_EXT_INIT -
OQS_CPU_EXT_ADX -
OQS_CPU_EXT_AES -
OQS_CPU_EXT_AVX -
OQS_CPU_EXT_AVX2 -
OQS_CPU_EXT_AVX512 -
OQS_CPU_EXT_BMI1 -
OQS_CPU_EXT_BMI2 -
OQS_CPU_EXT_PCLMULQDQ -
OQS_CPU_EXT_VPCLMULQDQ -
OQS_CPU_EXT_POPCNT -
OQS_CPU_EXT_SSE -
OQS_CPU_EXT_SSE2 -
OQS_CPU_EXT_SSE3 -
OQS_CPU_EXT_ARM_AES -
OQS_CPU_EXT_ARM_SHA2 -
OQS_CPU_EXT_ARM_SHA3 -
OQS_CPU_EXT_ARM_NEON -
OQS_CPU_EXT_COUNT -
- -
-
-
- - - -

-

Functions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OQS_API intOQS_CPU_has_extension(OQS_CPU_EXT ext)
OQS_API voidOQS_init(void)
OQS_API voidOQS_thread_stop(void)
OQS_API voidOQS_destroy(void)
OQS_API const char *OQS_version(void)
OQS_API void *OQS_MEM_malloc(size_t size)
OQS_API void *OQS_MEM_calloc(size_t num_elements, size_t element_size)
OQS_API char *OQS_MEM_strdup(const char *str)
OQS_API intOQS_MEM_secure_bcmp(const void *a, const void *b, size_t len)
OQS_API voidOQS_MEM_cleanse(void *ptr, size_t len)
OQS_API voidOQS_MEM_secure_free(void *ptr, size_t len)
OQS_API voidOQS_MEM_insecure_free(void *ptr)
void *OQS_MEM_aligned_alloc(size_t alignment, size_t size)
voidOQS_MEM_aligned_free(void *ptr)
- -
-
- -

OQS_CPU_has_extension

-
OQS_API int OQS_CPU_has_extension(OQS_CPU_EXT ext)
-
- -

Checks if the CPU supports a given extension

-

-

- -
- - -

Returns

-

1 if the given CPU extension is available, 0 otherwise.

-
- -
-
-
-
-
- -

OQS_init

-
OQS_API void OQS_init(void)
-
- -

This currently sets the values in the OQS_CPU_EXTENSIONS and prefetches the OpenSSL objects if necessary.

- -
- - -
-
-
-
-
- -

OQS_thread_stop

-
OQS_API void OQS_thread_stop(void)
-
- -

This function stops OpenSSL threads, which allows resources to be cleaned up in the correct order. -

- -
- - -
-
-
-
-
- -

OQS_destroy

-
OQS_API void OQS_destroy(void)
-
- -

This function frees prefetched OpenSSL objects

- -
- - -
-
-
-
-
- -

OQS_version

-
OQS_API const char * OQS_version(void)
-
- -

Return library version string.

- -
- - -
-
-
-
-
- -

OQS_MEM_malloc

-
OQS_API void * OQS_MEM_malloc(size_t size)
-
- -

These functions provide a unified interface for memory operations, using OpenSSL functions when OQS_USE_OPENSSL is defined, and standard C library functions otherwise. Allocates memory of a given size. - -

- -
- -

Parameters

- - - - - - - - -
size_tsize -

The size of the memory to be allocated in bytes.

-
- - -

Returns

-

A pointer to the allocated memory.

-
- -
-
-
-
-
- -

OQS_MEM_calloc

-
OQS_API void * OQS_MEM_calloc(size_t num_elements, size_t element_size)
-
- -

Allocates memory for an array of elements of a given size. - -

- -
- -

Parameters

- - - - - - - - - - - - - - -
size_tnum_elements -

The number of elements to allocate.

-
size_telement_size -

The size of each element in bytes.

-
- - -

Returns

-

A pointer to the allocated memory.

-
- -
-
-
-
-
- -

OQS_MEM_strdup

-
OQS_API char * OQS_MEM_strdup(const char *str)
-
- -

Duplicates a string. - -

- -
- -

Parameters

- - - - - - - - -
const char *str -

The string to be duplicated.

-
- - -

Returns

-

A pointer to the newly allocated string.

-
- -
-
-
-
-
- -

OQS_MEM_secure_bcmp

-
OQS_API int OQS_MEM_secure_bcmp(const void *a, const void *b, size_t len)
-
- -

Constant time comparison of byte sequences a and b of length len. Returns 0 if the byte sequences are equal or if len=0. Returns 1 otherwise.

-

-

- -
- -

Parameters

- - - - - - - - - - - - - - - - - - - - -
const void *a -

A byte sequence of length at least len.

-
const void *b -

A byte sequence of length at least len.

-
size_tlen -

The number of bytes to compare.

-
- - -
-
-
-
-
- -

OQS_MEM_cleanse

-
OQS_API void OQS_MEM_cleanse(void *ptr, size_t len)
-
- -

Zeros out len bytes of memory starting at ptr.

-

Designed to be protected against optimizing compilers which try to remove "unnecessary" operations. Should be used for all buffers containing secret data.

-

-

- -
- -

Parameters

- - - - - - - - - - - - - - -
void *ptr -

The start of the memory to zero out.

-
size_tlen -

The number of bytes to zero out.

-
- - -
-
-
-
-
- -

OQS_MEM_secure_free

-
OQS_API void OQS_MEM_secure_free(void *ptr, size_t len)
-
- -

Zeros out len bytes of memory starting at ptr, then frees ptr.

-

Can be called with ptr = NULL, in which case no operation is performed.

-

Designed to be protected against optimizing compilers which try to remove "unnecessary" operations. Should be used for all buffers containing secret data.

-

-

- -
- -

Parameters

- - - - - - - - - - - - - - -
void *ptr -

The start of the memory to zero out and free.

-
size_tlen -

The number of bytes to zero out.

-
- - -
-
-
-
-
- -

OQS_MEM_insecure_free

-
OQS_API void OQS_MEM_insecure_free(void *ptr)
-
- -

Frees ptr.

-

Can be called with ptr = NULL, in which case no operation is performed.

-

Should only be used on non-secret data.

-

-

- -
- -

Parameters

- - - - - - - - -
void *ptr -

The start of the memory to free.

-
- - -
-
-
-
-
- -

OQS_MEM_aligned_alloc

-
void * OQS_MEM_aligned_alloc(size_t alignment, size_t size)
-
- -

Internal implementation of C11 aligned_alloc to work around compiler quirks.

-

Allocates size bytes of uninitialized memory with a base pointer that is a multiple of alignment. Alignment must be a power of two and a multiple of sizeof(void *). Size must be a multiple of alignment. -

- -
- - -
-
-
-
-
- -

OQS_MEM_aligned_free

-
void OQS_MEM_aligned_free(void *ptr)
-
- -

Free memory allocated with OQS_MEM_aligned_alloc.

- -
- - -
-
-
- - - -

-

Macros

- - - - -
- -

- #define - OQS_EXIT_IF_NULLPTR - - (x, loc) - - -

- -

Macro for terminating the program if x is a null pointer.

- - - -
-
  do {                                                                         \
-    if ((x) == (void *)0) {                                                    \
-      fprintf(stderr, "Unexpected NULL returned from %s API. Exiting.\n",      \
-              loc);                                                            \
-      exit(EXIT_FAILURE);                                                      \
-    }                                                                          \
-  } while (0)
-
- -
- -

- #define - SIZE_T_TO_INT_OR_EXIT - - (size_t_var_name, int_var_name) - - -

- -

This macro is intended to replace those assert()s involving side-effecting statements in aes/aes_ossl.c.

-

assert() becomes a no-op when -DNDEBUG is defined, which causes compilation failures when the statement being checked also results in side-effects.

-

This is a temporary workaround until a better error handling strategy is developed. Certain functions (such as OQS_randombytes_openssl in src/rand/rand.c) take in a size_t parameter, but can only handle values up to INT_MAX for those parameters. This macro is a temporary workaround for such functions.

- - - -
-
  int int_var_name = 0;                                                        \
-  if (size_t_var_name <= INT_MAX) {                                            \
-    int_var_name = (int)size_t_var_name;                                       \
-  } else {                                                                     \
-    exit(EXIT_FAILURE);                                                        \
-  }
-
- -
- -

- #define - OQS_API - - - __attribute__((visibility("default"))) - -

- -

Defines which functions should be exposed outside the LibOQS library

-

By default the visibility of all the symbols is defined to "hidden" Only the library API should be marked as default

-

Example: OQS_API return_value function_name(void);

- - -
- - - -

- - - - - - - - - - - diff --git a/liboqs/api/doxygen/aes__ops_8h.html b/liboqs/api/doxygen/aes__ops_8h.html new file mode 100644 index 0000000..f2dafa6 --- /dev/null +++ b/liboqs/api/doxygen/aes__ops_8h.html @@ -0,0 +1,144 @@ + + + + + + + +liboqs: src/common/aes/aes_ops.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+ +
aes_ops.h File Reference
+
+
+ +

Header defining the callback API for OQS AES. +More...

+
#include <stdint.h>
+#include <stdlib.h>
+#include <oqs/common.h>
+
+

Go to the source code of this file.

+ + + +

+Data Structures

struct  OQS_AES_callbacks
+ + +

+Functions

OQS_API void OQS_AES_set_callbacks (struct OQS_AES_callbacks *new_callbacks)
+

Detailed Description

+

Header defining the callback API for OQS AES.

+

SPDX-License-Identifier: MIT

+

Function Documentation

+ +

◆ OQS_AES_set_callbacks()

+ +
+
+ + + + + + + +
OQS_API void OQS_AES_set_callbacks (struct OQS_AES_callbacks * new_callbacks)
+
+

Set callback functions for AES operations.

+

This function may be called before OQS_init to switch the cryptographic provider for AES operations. If it is not called, the default provider determined at build time will be used.

+
Parameters
+ + +
[in]new_callbacksCallback functions defined in OQS_AES_callbacks
+
+
+ +
+
+
+ + +
+ + diff --git a/liboqs/api/doxygen/aes__ops_8h_source.html b/liboqs/api/doxygen/aes__ops_8h_source.html new file mode 100644 index 0000000..c37561f --- /dev/null +++ b/liboqs/api/doxygen/aes__ops_8h_source.html @@ -0,0 +1,174 @@ + + + + + + + +liboqs: src/common/aes/aes_ops.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
aes_ops.h
+
+
+Go to the documentation of this file.
1
+
7
+
8#ifndef OQS_AES_OPS_H
+
9#define OQS_AES_OPS_H
+
10
+
11#include <stdint.h>
+
12#include <stdlib.h>
+
13
+
14#include <oqs/common.h>
+
15
+
16#if defined(__cplusplus)
+
17extern "C" {
+
18#endif
+
19
+
+ +
26 void (*AES128_ECB_load_schedule)(const uint8_t *key, void **ctx);
+
27
+
31 void (*AES128_CTR_inc_init)(const uint8_t *key, void **ctx);
+
32
+
36 void (*AES128_CTR_inc_iv)(const uint8_t *iv, size_t iv_len, void *ctx);
+
37
+
41 void (*AES128_CTR_inc_ivu64)(uint64_t iv, void *ctx);
+
42
+
46 void (*AES128_free_schedule)(void *ctx);
+
47
+
51 void (*AES128_ECB_enc)(const uint8_t *plaintext, const size_t plaintext_len, const uint8_t *key, uint8_t *ciphertext);
+
52
+
56 void (*AES128_ECB_enc_sch)(const uint8_t *plaintext, const size_t plaintext_len, const void *schedule, uint8_t *ciphertext);
+
57
+
61 void (*AES128_CTR_inc_stream_iv)(const uint8_t *iv, size_t iv_len, const void *ctx, uint8_t *out, size_t out_len);
+
62
+
66 void (*AES256_ECB_load_schedule)(const uint8_t *key, void **ctx);
+
67
+
71 void (*AES256_CTR_inc_init)(const uint8_t *key, void **ctx);
+
72
+
76 void (*AES256_CTR_inc_iv)(const uint8_t *iv, size_t iv_len, void *ctx);
+
77
+
81 void (*AES256_CTR_inc_ivu64)(uint64_t iv, void *ctx);
+
82
+
86 void (*AES256_free_schedule)(void *ctx);
+
87
+
91 void (*AES256_ECB_enc)(const uint8_t *plaintext, const size_t plaintext_len, const uint8_t *key, uint8_t *ciphertext);
+
92
+
96 void (*AES256_ECB_enc_sch)(const uint8_t *plaintext, const size_t plaintext_len, const void *schedule, uint8_t *ciphertext);
+
97
+
101 void (*AES256_CTR_inc_stream_iv)(const uint8_t *iv, size_t iv_len, const void *ctx, uint8_t *out, size_t out_len);
+
102
+
106 void (*AES256_CTR_inc_stream_blks)(void *ctx, uint8_t *out, size_t out_blks);
+
107};
+
+
108
+ +
119
+
120#if defined(__cplusplus)
+
121} // extern "C"
+
122#endif
+
123
+
124#endif // OQS_AES_OPS_H
+
OQS_API void OQS_AES_set_callbacks(struct OQS_AES_callbacks *new_callbacks)
+
#define OQS_API
Definition common.h:94
+
Definition aes_ops.h:22
+
void(* AES256_CTR_inc_stream_blks)(void *ctx, uint8_t *out, size_t out_blks)
Definition aes_ops.h:106
+
void(* AES256_free_schedule)(void *ctx)
Definition aes_ops.h:86
+
void(* AES128_free_schedule)(void *ctx)
Definition aes_ops.h:46
+
void(* AES256_CTR_inc_stream_iv)(const uint8_t *iv, size_t iv_len, const void *ctx, uint8_t *out, size_t out_len)
Definition aes_ops.h:101
+
void(* AES256_ECB_load_schedule)(const uint8_t *key, void **ctx)
Definition aes_ops.h:66
+
void(* AES256_CTR_inc_init)(const uint8_t *key, void **ctx)
Definition aes_ops.h:71
+
void(* AES256_ECB_enc)(const uint8_t *plaintext, const size_t plaintext_len, const uint8_t *key, uint8_t *ciphertext)
Definition aes_ops.h:91
+
void(* AES128_CTR_inc_stream_iv)(const uint8_t *iv, size_t iv_len, const void *ctx, uint8_t *out, size_t out_len)
Definition aes_ops.h:61
+
void(* AES128_CTR_inc_ivu64)(uint64_t iv, void *ctx)
Definition aes_ops.h:41
+
void(* AES256_CTR_inc_ivu64)(uint64_t iv, void *ctx)
Definition aes_ops.h:81
+
void(* AES128_ECB_enc_sch)(const uint8_t *plaintext, const size_t plaintext_len, const void *schedule, uint8_t *ciphertext)
Definition aes_ops.h:56
+
void(* AES128_CTR_inc_iv)(const uint8_t *iv, size_t iv_len, void *ctx)
Definition aes_ops.h:36
+
void(* AES128_CTR_inc_init)(const uint8_t *key, void **ctx)
Definition aes_ops.h:31
+
void(* AES256_ECB_enc_sch)(const uint8_t *plaintext, const size_t plaintext_len, const void *schedule, uint8_t *ciphertext)
Definition aes_ops.h:96
+
void(* AES128_ECB_enc)(const uint8_t *plaintext, const size_t plaintext_len, const uint8_t *key, uint8_t *ciphertext)
Definition aes_ops.h:51
+
void(* AES128_ECB_load_schedule)(const uint8_t *key, void **ctx)
Definition aes_ops.h:26
+
void(* AES256_CTR_inc_iv)(const uint8_t *iv, size_t iv_len, void *ctx)
Definition aes_ops.h:76
+
+ + +
+ + diff --git a/liboqs/api/doxygen/annotated.html b/liboqs/api/doxygen/annotated.html new file mode 100644 index 0000000..29faaa1 --- /dev/null +++ b/liboqs/api/doxygen/annotated.html @@ -0,0 +1,113 @@ + + + + + + + +liboqs: Data Structures + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Data Structures
+
+
+
Here are the data structures with brief descriptions:
+
+ + +
+ + diff --git a/liboqs/api/doxygen/classes.html b/liboqs/api/doxygen/classes.html new file mode 100644 index 0000000..ea589c8 --- /dev/null +++ b/liboqs/api/doxygen/classes.html @@ -0,0 +1,97 @@ + + + + + + + +liboqs: Data Structure Index + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Data Structure Index
+
+
+ + +
+ + +
+ + diff --git a/liboqs/api/doxygen/clipboard.js b/liboqs/api/doxygen/clipboard.js new file mode 100644 index 0000000..9da9f3c --- /dev/null +++ b/liboqs/api/doxygen/clipboard.js @@ -0,0 +1,61 @@ +/** + +The code below is based on the Doxygen Awesome project, see +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +let clipboard_title = "Copy to clipboard" +let clipboard_icon = `` +let clipboard_successIcon = `` +let clipboard_successDuration = 1000 + +$(function() { + if(navigator.clipboard) { + const fragments = document.getElementsByClassName("fragment") + for(const fragment of fragments) { + const clipboard_div = document.createElement("div") + clipboard_div.classList.add("clipboard") + clipboard_div.innerHTML = clipboard_icon + clipboard_div.title = clipboard_title + $(clipboard_div).click(function() { + const content = this.parentNode.cloneNode(true) + // filter out line number and folded fragments from file listings + content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() }) + let text = content.textContent + // remove trailing newlines and trailing spaces from empty lines + text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'') + navigator.clipboard.writeText(text); + this.classList.add("success") + this.innerHTML = clipboard_successIcon + window.setTimeout(() => { // switch back to normal icon after timeout + this.classList.remove("success") + this.innerHTML = clipboard_icon + }, clipboard_successDuration); + }) + fragment.insertBefore(clipboard_div, fragment.firstChild) + } + } +}) diff --git a/liboqs/api/doxygen/common_8h.html b/liboqs/api/doxygen/common_8h.html new file mode 100644 index 0000000..717905d --- /dev/null +++ b/liboqs/api/doxygen/common_8h.html @@ -0,0 +1,646 @@ + + + + + + + +liboqs: src/common/common.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+ +
common.h File Reference
+
+
+ +

Utility functions for use in liboqs. +More...

+
#include <limits.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <oqs/oqsconfig.h>
+
+

Go to the source code of this file.

+ + + + + +

+Macros

#define OQS_EXIT_IF_NULLPTR(x, loc)
#define SIZE_T_TO_INT_OR_EXIT(size_t_var_name, int_var_name)
#define OQS_API   __attribute__((visibility("default")))
+ + + +

+Enumerations

enum  OQS_STATUS { OQS_ERROR = -1 +, OQS_SUCCESS = 0 +, OQS_EXTERNAL_LIB_ERROR_OPENSSL = 50 + }
enum  OQS_CPU_EXT {
+  OQS_CPU_EXT_INIT +, OQS_CPU_EXT_ADX +, OQS_CPU_EXT_AES +, OQS_CPU_EXT_AVX +,
+  OQS_CPU_EXT_AVX2 +, OQS_CPU_EXT_AVX512 +, OQS_CPU_EXT_BMI1 +, OQS_CPU_EXT_BMI2 +,
+  OQS_CPU_EXT_PCLMULQDQ +, OQS_CPU_EXT_VPCLMULQDQ +, OQS_CPU_EXT_POPCNT +, OQS_CPU_EXT_SSE +,
+  OQS_CPU_EXT_SSE2 +, OQS_CPU_EXT_SSE3 +, OQS_CPU_EXT_ARM_AES +, OQS_CPU_EXT_ARM_SHA2 +,
+  OQS_CPU_EXT_ARM_SHA3 +, OQS_CPU_EXT_ARM_NEON +, OQS_CPU_EXT_COUNT +
+ }
+ + + + + + + + + + + + + + + + + +

+Functions

OQS_API int OQS_CPU_has_extension (OQS_CPU_EXT ext)
OQS_API void OQS_init (void)
OQS_API void OQS_thread_stop (void)
OQS_API void OQS_destroy (void)
OQS_API const char * OQS_version (void)
OQS_API void * OQS_MEM_malloc (size_t size)
 Memory allocation and deallocation functions.
OQS_API void * OQS_MEM_calloc (size_t num_elements, size_t element_size)
OQS_API char * OQS_MEM_strdup (const char *str)
OQS_API int OQS_MEM_secure_bcmp (const void *a, const void *b, size_t len)
OQS_API void OQS_MEM_cleanse (void *ptr, size_t len)
OQS_API void OQS_MEM_secure_free (void *ptr, size_t len)
OQS_API void OQS_MEM_insecure_free (void *ptr)
void * OQS_MEM_aligned_alloc (size_t alignment, size_t size)
void OQS_MEM_aligned_free (void *ptr)
void OQS_MEM_aligned_secure_free (void *ptr, size_t len)
+

Detailed Description

+

Utility functions for use in liboqs.

+

SPDX-License-Identifier: MIT

+

Macro Definition Documentation

+ +

◆ OQS_API

+ +
+
+ + + + +
#define OQS_API   __attribute__((visibility("default")))
+
+

Defines which functions should be exposed outside the LibOQS library

+

By default the visibility of all the symbols is defined to "hidden" Only the library API should be marked as default

+

Example: OQS_API return_value function_name(void);

+ +
+
+ +

◆ OQS_EXIT_IF_NULLPTR

+ +
+
+ + + + + + + + + + + +
#define OQS_EXIT_IF_NULLPTR( x,
loc )
+
+Value:
do { \
+
if ((x) == (void *)0) { \
+
fprintf(stderr, "Unexpected NULL returned from %s API. Exiting.\n", \
+
loc); \
+
exit(EXIT_FAILURE); \
+
} \
+
} while (0)
+

Macro for terminating the program if x is a null pointer.

+ +
+
+ +

◆ SIZE_T_TO_INT_OR_EXIT

+ +
+
+ + + + + + + + + + + +
#define SIZE_T_TO_INT_OR_EXIT( size_t_var_name,
int_var_name )
+
+Value:
int int_var_name = 0; \
+
if (size_t_var_name <= INT_MAX) { \
+
int_var_name = (int)size_t_var_name; \
+
} else { \
+
exit(EXIT_FAILURE); \
+
}
+

This macro is intended to replace those assert()s involving side-effecting statements in aes/aes_ossl.c.

+

assert() becomes a no-op when -DNDEBUG is defined, which causes compilation failures when the statement being checked also results in side-effects.

+

This is a temporary workaround until a better error handling strategy is developed. Certain functions (such as OQS_randombytes_openssl in src/rand/rand.c) take in a size_t parameter, but can only handle values up to INT_MAX for those parameters. This macro is a temporary workaround for such functions.

+ +
+
+

Enumeration Type Documentation

+ +

◆ OQS_CPU_EXT

+ +
+
+ + + + +
enum OQS_CPU_EXT
+
+

CPU runtime detection flags

+ +
+
+ +

◆ OQS_STATUS

+ +
+
+ + + + +
enum OQS_STATUS
+
+

Represents return values from functions.

+

Callers should compare with the symbol rather than the individual value. For example,

ret = OQS_KEM_encaps(...);
+if (ret == OQS_SUCCESS) { ... }
+

rather than

if (!OQS_KEM_encaps(...) { ... }
+
+ + + +
Enumerator
OQS_ERROR 

Used to indicate that some undefined error occurred.

+
OQS_SUCCESS 

Used to indicate successful return from function.

+
OQS_EXTERNAL_LIB_ERROR_OPENSSL 

Used to indicate failures in external libraries (e.g., OpenSSL).

+
+ +
+
+

Function Documentation

+ +

◆ OQS_CPU_has_extension()

+ +
+
+ + + + + + + +
OQS_API int OQS_CPU_has_extension (OQS_CPU_EXT ext)
+
+

Checks if the CPU supports a given extension

+
Returns
1 if the given CPU extension is available, 0 otherwise.
+ +
+
+ +

◆ OQS_destroy()

+ +
+
+ + + + + + + +
OQS_API void OQS_destroy (void )
+
+

This function frees prefetched OpenSSL objects

+ +
+
+ +

◆ OQS_init()

+ +
+
+ + + + + + + +
OQS_API void OQS_init (void )
+
+

This currently sets the values in the OQS_CPU_EXTENSIONS and prefetches the OpenSSL objects if necessary.

+ +
+
+ +

◆ OQS_MEM_aligned_alloc()

+ +
+
+ + + + + + + + + + + +
void * OQS_MEM_aligned_alloc (size_t alignment,
size_t size )
+
+

Internal implementation of C11 aligned_alloc to work around compiler quirks.

+

Allocates size bytes of uninitialized memory with a base pointer that is a multiple of alignment. Alignment must be a power of two and a multiple of sizeof(void *). Size must be a multiple of alignment.

Note
The allocated memory should be freed with OQS_MEM_aligned_free when it is no longer needed.
+ +
+
+ +

◆ OQS_MEM_aligned_free()

+ +
+
+ + + + + + + +
void OQS_MEM_aligned_free (void * ptr)
+
+

Free memory allocated with OQS_MEM_aligned_alloc.

+ +
+
+ +

◆ OQS_MEM_aligned_secure_free()

+ +
+
+ + + + + + + + + + + +
void OQS_MEM_aligned_secure_free (void * ptr,
size_t len )
+
+

Free and zeroize memory allocated with OQS_MEM_aligned_alloc.

+ +
+
+ +

◆ OQS_MEM_calloc()

+ +
+
+ + + + + + + + + + + +
OQS_API void * OQS_MEM_calloc (size_t num_elements,
size_t element_size )
+
+

Allocates memory for an array of elements of a given size.

Parameters
+ + + +
num_elementsThe number of elements to allocate.
element_sizeThe size of each element in bytes.
+
+
+
Returns
A pointer to the allocated memory.
+ +
+
+ +

◆ OQS_MEM_cleanse()

+ +
+
+ + + + + + + + + + + +
OQS_API void OQS_MEM_cleanse (void * ptr,
size_t len )
+
+

Zeros out len bytes of memory starting at ptr.

+

Designed to be protected against optimizing compilers which try to remove "unnecessary" operations. Should be used for all buffers containing secret data.

+
Parameters
+ + + +
[in]ptrThe start of the memory to zero out.
[in]lenThe number of bytes to zero out.
+
+
+ +
+
+ +

◆ OQS_MEM_insecure_free()

+ +
+
+ + + + + + + +
OQS_API void OQS_MEM_insecure_free (void * ptr)
+
+

Frees ptr.

+

Can be called with ptr = NULL, in which case no operation is performed.

+

Should only be used on non-secret data.

+
Parameters
+ + +
[in]ptrThe start of the memory to free.
+
+
+ +
+
+ +

◆ OQS_MEM_malloc()

+ +
+
+ + + + + + + +
OQS_API void * OQS_MEM_malloc (size_t size)
+
+ +

Memory allocation and deallocation functions.

+

These functions provide a unified interface for memory operations, using OpenSSL functions when OQS_USE_OPENSSL is defined, and standard C library functions otherwise. Allocates memory of a given size.

Parameters
+ + +
sizeThe size of the memory to be allocated in bytes.
+
+
+
Returns
A pointer to the allocated memory.
+ +
+
+ +

◆ OQS_MEM_secure_bcmp()

+ +
+
+ + + + + + + + + + + + + + + + +
OQS_API int OQS_MEM_secure_bcmp (const void * a,
const void * b,
size_t len )
+
+

Constant time comparison of byte sequences a and b of length len. Returns 0 if the byte sequences are equal or if len=0. Returns 1 otherwise.

+
Parameters
+ + + + +
[in]aA byte sequence of length at least len.
[in]bA byte sequence of length at least len.
[in]lenThe number of bytes to compare.
+
+
+ +
+
+ +

◆ OQS_MEM_secure_free()

+ +
+
+ + + + + + + + + + + +
OQS_API void OQS_MEM_secure_free (void * ptr,
size_t len )
+
+

Zeros out len bytes of memory starting at ptr, then frees ptr.

+

Can be called with ptr = NULL, in which case no operation is performed.

+

Designed to be protected against optimizing compilers which try to remove "unnecessary" operations. Should be used for all buffers containing secret data.

+
Parameters
+ + + +
[in]ptrThe start of the memory to zero out and free.
[in]lenThe number of bytes to zero out.
+
+
+ +
+
+ +

◆ OQS_MEM_strdup()

+ +
+
+ + + + + + + +
OQS_API char * OQS_MEM_strdup (const char * str)
+
+

Duplicates a string.

Parameters
+ + +
strThe string to be duplicated.
+
+
+
Returns
A pointer to the newly allocated string.
+ +
+
+ +

◆ OQS_thread_stop()

+ +
+
+ + + + + + + +
OQS_API void OQS_thread_stop (void )
+
+

This function stops OpenSSL threads, which allows resources to be cleaned up in the correct order.

Note
When liboqs is used in a multithreaded application, each thread should call this function prior to stopping.
+ +
+
+ +

◆ OQS_version()

+ +
+
+ + + + + + + +
OQS_API const char * OQS_version (void )
+
+

Return library version string.

+ +
+
+
+ + +
+ + diff --git a/liboqs/api/doxygen/common_8h_source.html b/liboqs/api/doxygen/common_8h_source.html new file mode 100644 index 0000000..9688760 --- /dev/null +++ b/liboqs/api/doxygen/common_8h_source.html @@ -0,0 +1,257 @@ + + + + + + + +liboqs: src/common/common.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
common.h
+
+
+Go to the documentation of this file.
1
+
7
+
8#ifndef OQS_COMMON_H
+
9#define OQS_COMMON_H
+
10
+
11#include <limits.h>
+
12#include <stdint.h>
+
13#include <stdio.h>
+
14#include <stdlib.h>
+
15
+
16#include <oqs/oqsconfig.h>
+
17
+
18#if defined(__cplusplus)
+
19extern "C" {
+
20#endif
+
21
+
+
26#define OQS_EXIT_IF_NULLPTR(x, loc) \
+
27 do { \
+
28 if ((x) == (void *)0) { \
+
29 fprintf(stderr, "Unexpected NULL returned from %s API. Exiting.\n", \
+
30 loc); \
+
31 exit(EXIT_FAILURE); \
+
32 } \
+
33 } while (0)
+
+
34
+
46#ifdef OQS_USE_OPENSSL
+
47#ifdef OPENSSL_NO_STDIO
+
48#define OQS_OPENSSL_GUARD(x) \
+
49 do { \
+
50 if (1 != (x)) { \
+
51 fprintf(stderr, "Error return value from OpenSSL API: %d. Exiting.\n", \
+
52 x); \
+
53 exit(EXIT_FAILURE); \
+
54 } \
+
55 } while (0)
+
56#else // OPENSSL_NO_STDIO
+
57#define OQS_OPENSSL_GUARD(x) \
+
58 do { \
+
59 if (1 != (x)) { \
+
60 fprintf(stderr, "Error return value from OpenSSL API: %d. Exiting.\n", \
+
61 x); \
+
62 OSSL_FUNC(ERR_print_errors_fp)(stderr); \
+
63 exit(EXIT_FAILURE); \
+
64 } \
+
65 } while (0)
+
66#endif // OPENSSL_NO_STDIO
+
67#endif // OQS_USE_OPENSSL
+
68
+
+
75#define SIZE_T_TO_INT_OR_EXIT(size_t_var_name, int_var_name) \
+
76 int int_var_name = 0; \
+
77 if (size_t_var_name <= INT_MAX) { \
+
78 int_var_name = (int)size_t_var_name; \
+
79 } else { \
+
80 exit(EXIT_FAILURE); \
+
81 }
+
+
82
+
91#if defined(_WIN32)
+
92#define OQS_API __declspec(dllexport)
+
93#else
+
94#define OQS_API __attribute__((visibility("default")))
+
95#endif
+
96
+
97#if defined(OQS_SYS_UEFI)
+
98#undef OQS_API
+
99#define OQS_API
+
100#endif
+
101
+
+
116typedef enum {
+ + + +
123} OQS_STATUS;
+
+
124
+
+
128typedef enum {
+
129 OQS_CPU_EXT_INIT, /* Must be first */
+
130 /* Start extension list */
+
131 OQS_CPU_EXT_ADX,
+
132 OQS_CPU_EXT_AES,
+
133 OQS_CPU_EXT_AVX,
+
134 OQS_CPU_EXT_AVX2,
+
135 OQS_CPU_EXT_AVX512,
+
136 OQS_CPU_EXT_BMI1,
+
137 OQS_CPU_EXT_BMI2,
+
138 OQS_CPU_EXT_PCLMULQDQ,
+
139 OQS_CPU_EXT_VPCLMULQDQ,
+
140 OQS_CPU_EXT_POPCNT,
+
141 OQS_CPU_EXT_SSE,
+
142 OQS_CPU_EXT_SSE2,
+
143 OQS_CPU_EXT_SSE3,
+
144 OQS_CPU_EXT_ARM_AES,
+
145 OQS_CPU_EXT_ARM_SHA2,
+
146 OQS_CPU_EXT_ARM_SHA3,
+
147 OQS_CPU_EXT_ARM_NEON,
+
148 /* End extension list */
+
149 OQS_CPU_EXT_COUNT, /* Must be last */
+ +
+
151
+ +
158
+
163OQS_API void OQS_init(void);
+
164
+ +
172
+ +
177
+
181OQS_API const char *OQS_version(void);
+
182
+
190
+
196OQS_API void *OQS_MEM_malloc(size_t size);
+
197
+
204OQS_API void *OQS_MEM_calloc(size_t num_elements, size_t element_size);
+
205
+
211OQS_API char *OQS_MEM_strdup(const char *str);
+
212
+
222OQS_API int OQS_MEM_secure_bcmp(const void *a, const void *b, size_t len);
+
223
+
234OQS_API void OQS_MEM_cleanse(void *ptr, size_t len);
+
235
+
248OQS_API void OQS_MEM_secure_free(void *ptr, size_t len);
+
249
+ +
260
+
270void *OQS_MEM_aligned_alloc(size_t alignment, size_t size);
+
271
+
275void OQS_MEM_aligned_free(void *ptr);
+
276
+
280void OQS_MEM_aligned_secure_free(void *ptr, size_t len);
+
281
+
282#if defined(__cplusplus)
+
283} // extern "C"
+
284#endif
+
285
+
286#endif // OQS_COMMON_H
+
OQS_API void OQS_MEM_cleanse(void *ptr, size_t len)
+
OQS_API const char * OQS_version(void)
+
OQS_CPU_EXT
Definition common.h:128
+
void * OQS_MEM_aligned_alloc(size_t alignment, size_t size)
+
OQS_API int OQS_CPU_has_extension(OQS_CPU_EXT ext)
+
OQS_API void OQS_MEM_secure_free(void *ptr, size_t len)
+
OQS_API int OQS_MEM_secure_bcmp(const void *a, const void *b, size_t len)
+
void OQS_MEM_aligned_free(void *ptr)
+
#define OQS_API
Definition common.h:94
+
OQS_STATUS
Definition common.h:116
+
@ OQS_EXTERNAL_LIB_ERROR_OPENSSL
Definition common.h:122
+
@ OQS_ERROR
Definition common.h:118
+
@ OQS_SUCCESS
Definition common.h:120
+
OQS_API void * OQS_MEM_malloc(size_t size)
Memory allocation and deallocation functions.
+
OQS_API void OQS_init(void)
+
OQS_API void * OQS_MEM_calloc(size_t num_elements, size_t element_size)
+
OQS_API void OQS_thread_stop(void)
+
OQS_API char * OQS_MEM_strdup(const char *str)
+
OQS_API void OQS_destroy(void)
+
OQS_API void OQS_MEM_insecure_free(void *ptr)
+
void OQS_MEM_aligned_secure_free(void *ptr, size_t len)
+
+ + +
+ + diff --git a/liboqs/api/doxygen/cookie.js b/liboqs/api/doxygen/cookie.js new file mode 100644 index 0000000..53ad21d --- /dev/null +++ b/liboqs/api/doxygen/cookie.js @@ -0,0 +1,58 @@ +/*! + Cookie helper functions + Copyright (c) 2023 Dimitri van Heesch + Released under MIT license. +*/ +let Cookie = { + cookie_namespace: 'doxygen_', + + readSetting(cookie,defVal) { + if (window.chrome) { + const val = localStorage.getItem(this.cookie_namespace+cookie) || + sessionStorage.getItem(this.cookie_namespace+cookie); + if (val) return val; + } else { + let myCookie = this.cookie_namespace+cookie+"="; + if (document.cookie) { + const index = document.cookie.indexOf(myCookie); + if (index != -1) { + const valStart = index + myCookie.length; + let valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + return document.cookie.substring(valStart, valEnd); + } + } + } + return defVal; + }, + + writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete + if (window.chrome) { + if (days==0) { + sessionStorage.setItem(this.cookie_namespace+cookie,val); + } else { + localStorage.setItem(this.cookie_namespace+cookie,val); + } + } else { + let date = new Date(); + date.setTime(date.getTime()+(days*24*60*60*1000)); + const expiration = days!=0 ? "expires="+date.toGMTString()+";" : ""; + document.cookie = this.cookie_namespace + cookie + "=" + + val + "; SameSite=Lax;" + expiration + "path=/"; + } + }, + + eraseSetting(cookie) { + if (window.chrome) { + if (localStorage.getItem(this.cookie_namespace+cookie)) { + localStorage.removeItem(this.cookie_namespace+cookie); + } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) { + sessionStorage.removeItem(this.cookie_namespace+cookie); + } + } else { + this.writeSetting(cookie,'',-1); + } + }, +} diff --git a/liboqs/api/doxygen/dir_1fb065b469fd1f35526294de1a9f2412.html b/liboqs/api/doxygen/dir_1fb065b469fd1f35526294de1a9f2412.html new file mode 100644 index 0000000..d19cad6 --- /dev/null +++ b/liboqs/api/doxygen/dir_1fb065b469fd1f35526294de1a9f2412.html @@ -0,0 +1,101 @@ + + + + + + + +liboqs: src/common/rand Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
rand Directory Reference
+
+
+ + + + +

+Files

 
rand.h
 Random number generator.
+
+ + +
+ + diff --git a/liboqs/api/doxygen/dir_3ba721d52d6d7ce9dc88eded4c452d90.html b/liboqs/api/doxygen/dir_3ba721d52d6d7ce9dc88eded4c452d90.html new file mode 100644 index 0000000..e96e758 --- /dev/null +++ b/liboqs/api/doxygen/dir_3ba721d52d6d7ce9dc88eded4c452d90.html @@ -0,0 +1,101 @@ + + + + + + + +liboqs: src/common/aes Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
aes Directory Reference
+
+
+ + + + +

+Files

 
aes_ops.h
 Header defining the callback API for OQS AES.
+
+ + +
+ + diff --git a/liboqs/api/doxygen/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/liboqs/api/doxygen/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 0000000..b3c7e01 --- /dev/null +++ b/liboqs/api/doxygen/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,103 @@ + + + + + + + +liboqs: src Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
src Directory Reference
+
+
+ + + + + + +

+Directories

 
common
 
kem
 
sig
 
sig_stfl
+
+ + +
+ + diff --git a/liboqs/api/doxygen/dir_7b1720742aeb48ca268b2ebb947d8841.html b/liboqs/api/doxygen/dir_7b1720742aeb48ca268b2ebb947d8841.html new file mode 100644 index 0000000..53a0c5d --- /dev/null +++ b/liboqs/api/doxygen/dir_7b1720742aeb48ca268b2ebb947d8841.html @@ -0,0 +1,101 @@ + + + + + + + +liboqs: src/sig_stfl Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
sig_stfl Directory Reference
+
+
+ + + + +

+Files

 
sig_stfl.h
 Stateful Signature schemes.
+
+ + +
+ + diff --git a/liboqs/api/doxygen/dir_8274e06554404aecec999692d3665e84.html b/liboqs/api/doxygen/dir_8274e06554404aecec999692d3665e84.html new file mode 100644 index 0000000..44d9f71 --- /dev/null +++ b/liboqs/api/doxygen/dir_8274e06554404aecec999692d3665e84.html @@ -0,0 +1,101 @@ + + + + + + + +liboqs: src/kem Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
kem Directory Reference
+
+
+ + + + +

+Files

 
kem.h
 Key encapsulation mechanisms.
+
+ + +
+ + diff --git a/liboqs/api/doxygen/dir_89e507d8b812c58d5f6b9705a467cd91.html b/liboqs/api/doxygen/dir_89e507d8b812c58d5f6b9705a467cd91.html new file mode 100644 index 0000000..06e3e9f --- /dev/null +++ b/liboqs/api/doxygen/dir_89e507d8b812c58d5f6b9705a467cd91.html @@ -0,0 +1,101 @@ + + + + + + + +liboqs: src/common/sha2 Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
sha2 Directory Reference
+
+
+ + + + +

+Files

 
sha2_ops.h
 Header defining the callback API for OQS SHA2.
+
+ + +
+ + diff --git a/liboqs/api/doxygen/dir_bc26c2b317f255daffe9683f2cc0df0d.html b/liboqs/api/doxygen/dir_bc26c2b317f255daffe9683f2cc0df0d.html new file mode 100644 index 0000000..6b9aff7 --- /dev/null +++ b/liboqs/api/doxygen/dir_bc26c2b317f255daffe9683f2cc0df0d.html @@ -0,0 +1,101 @@ + + + + + + + +liboqs: src/sig Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
sig Directory Reference
+
+
+ + + + +

+Files

 
sig.h
 Signature schemes.
+
+ + +
+ + diff --git a/liboqs/api/doxygen/dir_c9d3e5b498f4054a308a5221a78984a9.html b/liboqs/api/doxygen/dir_c9d3e5b498f4054a308a5221a78984a9.html new file mode 100644 index 0000000..f080ff9 --- /dev/null +++ b/liboqs/api/doxygen/dir_c9d3e5b498f4054a308a5221a78984a9.html @@ -0,0 +1,103 @@ + + + + + + + +liboqs: src/common/sha3 Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
sha3 Directory Reference
+
+
+ + + + + + +

+Files

 
sha3_ops.h
 Header defining the callback API for OQS SHA3 and SHAKE.
 
sha3x4_ops.h
 Header defining the callback API for OQS SHA3 and SHAKE.
+
+ + +
+ + diff --git a/liboqs/api/doxygen/dir_fdedb0aba14d44ce9d99bc100e026e6a.html b/liboqs/api/doxygen/dir_fdedb0aba14d44ce9d99bc100e026e6a.html new file mode 100644 index 0000000..ed321c4 --- /dev/null +++ b/liboqs/api/doxygen/dir_fdedb0aba14d44ce9d99bc100e026e6a.html @@ -0,0 +1,108 @@ + + + + + + + +liboqs: src/common Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
common Directory Reference
+
+
+ + + + + + +

+Directories

 
aes
 
rand
 
sha2
 
sha3
+ + + +

+Files

 
common.h
 Utility functions for use in liboqs.
+
+ + +
+ + diff --git a/liboqs/api/doxygen/doxygen.css b/liboqs/api/doxygen/doxygen.css new file mode 100644 index 0000000..5d2eecd --- /dev/null +++ b/liboqs/api/doxygen/doxygen.css @@ -0,0 +1,2461 @@ +/* The standard CSS for doxygen 1.14.0*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #3D578C; +--page-external-link-color: #334975; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--group-header-separator-color: #D9E0EE; +--group-header-color: #354C7B; +--inherit-header-color: gray; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 75px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #C4CFE5; +--directory-separator-color: #9CAFD4; +--separator-color: #4A6AAA; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #C4CFE5; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +/* +--icon-doc-image: url('doc.svg'); +--icon-folder-open-image: url('folderopen.svg'); +--icon-folder-closed-image: url('folderclosed.svg');*/ +--icon-folder-open-fill-color: #C4CFE5; +--icon-folder-fill-color: #D8DFEE; +--icon-folder-border-color: #4665A2; +--icon-doc-fill-color: #D8DFEE; +--icon-doc-border-color: #4665A2; + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-separator-color: #DEE4F0; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; +--memdecl-border-color: #D5DDEC; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-proto-background-color: #EEF1F7; +--memdef-proto-text-color: #253555; +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-border-color: #C4CFE5; +--nav-breadcrumb-separator-color: #C4CFE5; +--nav-breadcrumb-active-bg: #EEF1F7; +--nav-breadcrumb-color: #354C7B; +--nav-breadcrumb-border-color: #E1E7F2; +--nav-splitbar-bg-color: #DCE2EF; +--nav-splitbar-handle-color: #9CAFD4; +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-active-bg: #DCE2EF; +--nav-menu-active-color: #9CAFD4; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #B6C4DF; +--nav-arrow-selected-color: #90A5CE; + +/* sync icon */ +--sync-icon-border-color: #C4CFE5; +--sync-icon-background-color: #F9FAFC; +--sync-icon-selected-background-color: #EEF1F7; +--sync-icon-color: #C4CFE5; +--sync-icon-selected-color: #6884BD; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-active-color: black; +--search-filter-background-color: rgba(255,255,255,.7); +--search-filter-backdrop-filter: blur(4px); +--search-filter-foreground-color: black; +--search-filter-border-color: rgba(150,150,150,.4); +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: rgba(255,255,255,.8); +--search-results-backdrop-filter: blur(4px); +--search-results-border-color: rgba(150,150,150,.4); +--search-box-border-color: #B6C4DF; +--search-close-icon-bg-color: #A0A0A0; +--search-close-icon-fg-color: white; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-xml-cdata-color: black; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #4665A2; +--code-external-link-color: #4665A2; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--fragment-copy-ok-color: #2EC82E; +--tooltip-foreground-color: black; +--tooltip-background-color: rgba(255,255,255,0.8); +--tooltip-arrow-background-color: white; +--tooltip-border-color: rgba(150,150,150,0.7); +--tooltip-backdrop-filter: blur(3px); +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 0 4px 8px 0 rgba(0,0,0,.25); +--fold-line-color: #808080; + +/** font-family */ +--font-family-normal: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #f8d1cc; +--warning-color-hl: #b61825; +--warning-color-text: #75070f; +--note-color-bg: #faf3d8; +--note-color-hl: #f3a600; +--note-color-text: #5f4204; +--todo-color-bg: #e4f3ff; +--todo-color-hl: #1879C4; +--todo-color-text: #274a5c; +--test-color-bg: #e8e8ff; +--test-color-hl: #3939C4; +--test-color-text: #1a1a5c; +--deprecated-color-bg: #ecf0f3; +--deprecated-color-hl: #5b6269; +--deprecated-color-text: #43454a; +--bug-color-bg: #e4dafd; +--bug-color-hl: #5b2bdd; +--bug-color-text: #2a0d72; +--invariant-color-bg: #d8f1e3; +--invariant-color-hl: #44b86f; +--invariant-color-text: #265532; +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #90A5CE; +--page-external-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--group-header-separator-color: #1D2A43; +--group-header-color: #90A5CE; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #212F4B; +--directory-separator-color: #283A5D; +--separator-color: #283A5D; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #2C3F65; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-folder-open-fill-color: #4665A2; +--icon-folder-fill-color: #5373B4; +--icon-folder-border-color: #C4CFE5; +--icon-doc-fill-color: #6884BD; +--icon-doc-border-color: #C4CFE5; + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-separator-color: #2C3F65; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; +--memdecl-border-color: #233250; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-border-color: #212F4B; +--nav-breadcrumb-separator-color: #212F4B; +--nav-breadcrumb-active-bg: #1D2A43; +--nav-breadcrumb-color: #90A5CE; +--nav-breadcrumb-border-color: #2A3D61; +--nav-splitbar-bg-color: #283A5D; +--nav-splitbar-handle-color: #4665A2; +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-text-hover-color: #DCE2EF; +--nav-text-active-color: #DCE2EF; +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-active-bg: #1D2A43; +--nav-menu-active-color: #C9D3E7; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #4665A2; +--nav-arrow-selected-color: #6884BD; + +/* sync icon */ +--sync-icon-border-color: #212F4B; +--sync-icon-background-color: #101826; +--sync-icon-selected-background-color: #1D2A43; +--sync-icon-color: #4665A2; +--sync-icon-selected-color: #5373B4; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-active-color: #F5F5F5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-backdrop-filter: none; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: black; +--search-results-foreground-color: #90A5CE; +--search-results-backdrop-filter: none; +--search-results-border-color: #334975; +--search-box-border-color: #334975; +--search-close-icon-bg-color: #909090; +--search-close-icon-fg-color: black; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #C0C0C0; +--code-vhdl-keyword-color: #CF53C9; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: #090D16; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--fragment-copy-ok-color: #0EA80E; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-arrow-background-color: #202020; +--tooltip-backdrop-filter: none; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; +--fold-line-color: #808080; + +/** font-family */ +--font-family-normal: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #2e1917; +--warning-color-hl: #ad2617; +--warning-color-text: #f5b1aa; +--note-color-bg: #3b2e04; +--note-color-hl: #f1b602; +--note-color-text: #ceb670; +--todo-color-bg: #163750; +--todo-color-hl: #1982D2; +--todo-color-text: #dcf0fa; +--test-color-bg: #121258; +--test-color-hl: #4242cf; +--test-color-text: #c0c0da; +--deprecated-color-bg: #2e323b; +--deprecated-color-hl: #738396; +--deprecated-color-text: #abb0bd; +--bug-color-bg: #2a2536; +--bug-color-hl: #7661b3; +--bug-color-text: #ae9ed6; +--invariant-color-bg: #303a35; +--invariant-color-hl: #76ce96; +--invariant-color-text: #cceed5; +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +body.resizing { + user-select: none; + -webkit-user-select: none; +} + +#doc-content { + scrollbar-width: thin; +} + +/* @group Heading Levels */ + +.title { + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 160%; + font-weight: 400; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + box-shadow: 12px 0 var(--page-background-color), + -12px 0 var(--page-background-color), + 12px 1px var(--group-header-separator-color), + -12px 1px var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +td h2.groupheader { + box-shadow: 13px 0 var(--page-background-color), + -13px 0 var(--page-background-color), + 13px 1px var(--group-header-separator-color), + -13px 1px var(--group-header-separator-color); +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + margin-right: 6px; + padding-right: 6px; + text-align: right; + line-height: 110%; + background-color: var(--nav-background-color); +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + padding-right: 6px; + padding-left: 6px; + border-radius: 0 6px 6px 0; + background-color: var(--nav-menu-active-bg); +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +span.label a:hover { + text-decoration: none; + background: linear-gradient(to bottom, transparent 0,transparent calc(100% - 1px), currentColor 100%); +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.el, a.el:visited, a.code, a.code:visited, a.line, a.line:visited { + color: var(--page-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--page-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul.check { + list-style:none; + text-indent: -16px; + padding-left: 38px; +} +li.unchecked:before { + content: "\2610\A0"; +} +li.checked:before { + content: "\2611\A0"; +} + +ol { + text-indent: 0px; +} + +ul { + text-indent: 0px; + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; + overflow-y: hidden; + position: relative; + min-height: 12px; + margin: 10px 0px; + padding: 10px 10px; + border: 1px solid var(--fragment-border-color); + border-radius: 4px; + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); +} + +pre.fragment { + word-wrap: break-word; + font-size: 10pt; + line-height: 125%; + font-family: var(--font-family-monospace); +} + +span.tt { + white-space: pre; + font-family: var(--font-family-monospace); +} + +.clipboard { + width: 24px; + height: 24px; + right: 5px; + top: 5px; + opacity: 0; + position: absolute; + display: inline; + overflow: hidden; + justify-content: center; + align-items: center; + cursor: pointer; +} + +.clipboard.success { + border: 1px solid var(--fragment-foreground-color); + border-radius: 4px; +} + +.fragment:hover .clipboard, .clipboard.success { + opacity: .4; +} + +.clipboard:hover, .clipboard.success { + opacity: 1 !important; +} + +.clipboard:active:not([class~=success]) svg { + transform: scale(.91); +} + +.clipboard.success svg { + fill: var(--fragment-copy-ok-color); +} + +.clipboard.success { + border-color: var(--fragment-copy-ok-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.2; + text-wrap: wrap; + word-break: break-all; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -62px; + padding-left: 62px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); +} + +span.fold { + display: inline-block; + width: 12px; + height: 12px; + margin-left: 4px; + margin-right: 1px; +} + +span.foldnone { + display: inline-block; + position: relative; + cursor: pointer; + user-select: none; +} + +span.fold.plus, span.fold.minus { + width: 10px; + height: 10px; + background-color: var(--fragment-background-color); + position: relative; + border: 1px solid var(--fold-line-color); + margin-right: 1px; +} + +span.fold.plus::before, span.fold.minus::before { + content: ''; + position: absolute; + background-color: var(--fold-line-color); +} + +span.fold.plus::before { + width: 2px; + height: 6px; + top: 2px; + left: 4px; +} + +span.fold.plus::after { + content: ''; + position: absolute; + width: 6px; + height: 2px; + top: 4px; + left: 2px; + background-color: var(--fold-line-color); +} + +span.fold.minus::before { + width: 6px; + height: 2px; + top: 4px; + left: 2px; +} + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + box-shadow: 13px 0 var(--page-background-color), + -13px 0 var(--page-background-color), + 13px 1px var(--group-header-separator-color), + -13px 1px var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 110%; + font-weight: 500; + margin-left: 0px; + margin-top: 0em; + margin-bottom: 6px; + padding-top: 8px; + padding-bottom: 4px; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 12px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.xmlcdata { + color: var(--code-xml-cdata-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + border: none; + margin-top: 16px; + margin-bottom: 16px; + height: 1px; + box-shadow: 13px 0 var(--page-background-color), + -13px 0 var(--page-background-color), + 13px 1px var(--group-header-separator-color), + -13px 1px var(--group-header-separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.memberdecls tr[class^='memitem'] { + font-family: var(--font-family-monospace); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight { + padding-top: 2px; + padding-bottom: 2px; +} + +.memTemplParams { + padding-left: 10px; + padding-top: 5px; +} + +.memItemLeft, .memItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +tr[class^='memdesc'] { + box-shadow: inset 0px 1px 3px 0px rgba(0,0,0,.075); +} + +.mdescLeft { + border-left: 1px solid var(--memdecl-border-color); + border-bottom: 1px solid var(--memdecl-border-color); +} + +.mdescRight { + border-right: 1px solid var(--memdecl-border-color); + border-bottom: 1px solid var(--memdecl-border-color); +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; + border-left: 1px solid var(--memdecl-border-color); + border-right: 1px solid var(--memdecl-border-color); +} + +td.ititle { + border: 1px solid var(--memdecl-border-color); + border-top-left-radius: 4px; + border-top-right-radius: 4px; + padding-left: 10px; +} + +tr:not(:first-child) > td.ititle { + border-top: 0; + border-radius: 0; +} + +.memItemLeft { + white-space: nowrap; + border-left: 1px solid var(--memdecl-border-color); + border-bottom: 1px solid var(--memdecl-border-color); + padding-left: 10px; + transition: none; +} + +.memItemRight { + width: 100%; + border-right: 1px solid var(--memdecl-border-color); + border-bottom: 1px solid var(--memdecl-border-color); + padding-right: 10px; + transition: none; +} + +tr.heading + tr[class^='memitem'] td.memItemLeft, +tr.groupHeader + tr[class^='memitem'] td.memItemLeft, +tr.inherit_header + tr[class^='memitem'] td.memItemLeft { + border-top: 1px solid var(--memdecl-border-color); + border-top-left-radius: 4px; +} + +tr.heading + tr[class^='memitem'] td.memItemRight, +tr.groupHeader + tr[class^='memitem'] td.memItemRight, +tr.inherit_header + tr[class^='memitem'] td.memItemRight { + border-top: 1px solid var(--memdecl-border-color); + border-top-right-radius: 4px; +} + +tr.heading + tr[class^='memitem'] td.memTemplParams, +tr.heading + tr td.ititle, +tr.groupHeader + tr[class^='memitem'] td.memTemplParams, +tr.groupHeader + tr td.ititle, +tr.inherit_header + tr[class^='memitem'] td.memTemplParams { + border-top: 1px solid var(--memdecl-border-color); + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +table.memberdecls tr:last-child td.memItemLeft, +table.memberdecls tr:last-child td.mdescLeft, +table.memberdecls tr[class^='memitem']:has(+ tr.groupHeader) td.memItemLeft, +table.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemLeft, +table.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader) td.mdescLeft, +table.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescLeft { + border-bottom-left-radius: 4px; +} + +table.memberdecls tr:last-child td.memItemRight, +table.memberdecls tr:last-child td.mdescRight, +table.memberdecls tr[class^='memitem']:has(+ tr.groupHeader) td.memItemRight, +table.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemRight, +table.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader) td.mdescRight, +table.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescRight { + border-bottom-right-radius: 4px; +} + +tr.template .memItemLeft, tr.template .memItemRight { + border-top: none; + padding-top: 0; +} + + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-color: var(--memdef-proto-background-color); + line-height: 1.25; + font-family: var(--font-family-monospace); + font-weight: 500; + font-size: 16px; + float:left; + box-shadow: 0 10px 0 -1px var(--memdef-proto-background-color), + 0 2px 8px 0 rgba(0,0,0,.075); + position: relative; +} + +.memtitle:after { + content: ''; + display: block; + background: var(--memdef-proto-background-color); + height: 10px; + bottom: -10px; + left: 0px; + right: -14px; + position: absolute; + border-top-right-radius: 6px; +} + +.permalink +{ + font-family: var(--font-family-monospace); + font-weight: 500; + line-height: 1.25; + font-size: 16px; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-family: var(--font-family-monospace); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + display: table !important; + width: 100%; + box-shadow: 0 2px 8px 0 rgba(0,0,0,.075); + border-radius: 4px; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-family: var(--font-family-monospace); + font-size: 13px; + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + background-color: var(--memdef-proto-background-color); + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; + padding: 0px; + padding-bottom: 1px; +} + +.paramname { + white-space: nowrap; + padding: 0px; + padding-bottom: 1px; + margin-left: 2px; +} + +.paramname em { + color: var(--memdef-param-name-color); + font-style: normal; + margin-right: 1px; +} + +.paramname .paramdefval { + font-family: var(--font-family-monospace); +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-background-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 14px; + transition: opacity 0.3s ease; +} + +span.arrowhead { + position: relative; + padding: 0; + margin: 0 0 0 2px; + display: inline-block; + width: 5px; + height: 5px; + border-right: 2px solid var(--nav-arrow-color); + border-bottom: 2px solid var(--nav-arrow-color); + transform: rotate(-45deg); + transition: transform 0.3s ease; +} + +span.arrowhead.opened { + transform: rotate(45deg); +} + +.selected span.arrowhead { + border-right: 2px solid var(--nav-arrow-selected-color); + border-bottom: 2px solid var(--nav-arrow-selected-color); +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfolder { + width: 24px; + height: 18px; + margin-top: 6px; + vertical-align:top; + display: inline-block; + position: relative; +} + +.icondoc { + width: 24px; + height: 18px; + margin-top: 3px; + vertical-align:top; + display: inline-block; + position: relative; +} + +.folder-icon { + width: 16px; + height: 11px; + background-color: var(--icon-folder-fill-color); + border: 1px solid var(--icon-folder-border-color); + border-radius: 0 2px 2px 2px; + position: relative; + box-sizing: content-box; +} + +.folder-icon::after { + content: ''; + position: absolute; + top: 2px; + left: -1px; + width: 16px; + height: 7px; + background-color: var(--icon-folder-open-fill-color); + border: 1px solid var(--icon-folder-border-color); + border-radius: 7px 7px 2px 2px; + transform-origin: top left; + opacity: 0; + transition: all 0.3s linear; +} + +.folder-icon::before { + content: ''; + position: absolute; + top: -3px; + left: -1px; + width: 6px; + height: 2px; + background-color: var(--icon-folder-fill-color); + border-top: 1px solid var(--icon-folder-border-color); + border-left: 1px solid var(--icon-folder-border-color); + border-right: 1px solid var(--icon-folder-border-color); + border-radius: 2px 2px 0 0; +} + +.folder-icon.open::after { + top: 3px; + opacity: 1; +} + +.doc-icon { + left: 6px; + width: 12px; + height: 16px; + background-color: var(--icon-doc-border-color); + clip-path: polygon(0 0, 66% 0, 100% 25%, 100% 100%, 0 100%); + position: relative; + display: inline-block; +} +.doc-icon::before { + content: ""; + left: 1px; + top: 1px; + width: 10px; + height: 14px; + background-color: var(--icon-doc-fill-color); + clip-path: polygon(0 0, 66% 0, 100% 25%, 100% 100%, 0 100%); + position: absolute; + box-sizing: border-box; +} +.doc-icon::after { + content: ""; + left: 7px; + top: 0px; + width: 3px; + height: 3px; + background-color: transparent; + position: absolute; + border: 1px solid var(--icon-doc-border-color); +} + + + + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +span.dynarrow { + position: relative; + display: inline-block; + width: 12px; + bottom: 1px; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fieldinit { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fieldinit { + padding-top: 3px; + text-align: right; +} + + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + +/* ----------- navigation breadcrumb styling ----------- */ + +#nav-path ul { + height: 30px; + line-height: 30px; + color: var(--nav-text-normal-color); + overflow: hidden; + margin: 0px; + padding-left: 4px; + background-image: none; + background: var(--page-background-color); + border-bottom: 1px solid var(--nav-breadcrumb-separator-color); + font-size: var(--nav-font-size-level1); + font-family: var(--font-family-nav); + position: relative; + z-index: 100; +} + +#main-nav { + border-bottom: 1px solid var(--nav-border-color); +} + +.navpath li { + list-style-type:none; + float:left; + color: var(--nav-foreground-color); +} + +.navpath li.footer { + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + font-size: 8pt; + color: var(--footer-foreground-color); +} + +#nav-path li.navelem { + background-image: none; + display: flex; + align-items: center; + padding-left: 15px; +} + +.navpath li.navelem a { + text-shadow: none; + display: inline-block; + color: var(--nav-breadcrumb-color); + position: relative; + top: 0px; + height: 30px; + margin-right: -20px; +} + +#nav-path li.navelem:after { + content: ''; + display: inline-block; + position: relative; + top: 0; + right: -15px; + width: 30px; + height: 30px; + transform: scaleX(0.5) scale(0.707) rotate(45deg); + z-index: 10; + background: var(--page-background-color); + box-shadow: 2px -2px 0 2px var(--nav-breadcrumb-separator-color); + border-radius: 0 5px 0 50px; +} + +#nav-path li.navelem:first-child { + margin-left: -6px; +} + +#nav-path li.navelem:hover, +#nav-path li.navelem:hover:after { + background-color: var(--nav-breadcrumb-active-bg); +} + +/* ---------------------- */ + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + margin: 0px; + background-color: var(--header-background-color); + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl { + padding: 0 0 0 0; +} + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.important, dl.note, dl.deprecated, dl.bug, +dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark { + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; + border-radius: 4px; +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention, dl.important { + background: var(--warning-color-bg); + border-left: 8px solid var(--warning-color-hl); + color: var(--warning-color-text); +} + +dl.warning dt, dl.attention dt, dl.important dt { + color: var(--warning-color-hl); +} + +dl.note, dl.remark { + background: var(--note-color-bg); + border-left: 8px solid var(--note-color-hl); + color: var(--note-color-text); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-hl); +} + +dl.todo { + background: var(--todo-color-bg); + border-left: 8px solid var(--todo-color-hl); + color: var(--todo-color-text); +} + +dl.todo dt { + color: var(--todo-color-hl); +} + +dl.test { + background: var(--test-color-bg); + border-left: 8px solid var(--test-color-hl); + color: var(--test-color-text); +} + +dl.test dt { + color: var(--test-color-hl); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.bug { + background: var(--bug-color-bg); + border-left: 8px solid var(--bug-color-hl); + color: var(--bug-color-text); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.deprecated { + background: var(--deprecated-color-bg); + border-left: 8px solid var(--deprecated-color-hl); + color: var(--deprecated-color-text); +} + +dl.deprecated dt a { + color: var(--deprecated-color-hl) !important; +} + +dl.note dd, dl.warning dd, dl.pre dd, dl.post dd, +dl.remark dd, dl.attention dd, dl.important dd, dl.invariant dd, +dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { + margin-inline-start: 0px; +} + +dl.invariant, dl.pre, dl.post { + background: var(--invariant-color-bg); + border-left: 8px solid var(--invariant-color-hl); + color: var(--invariant-color-text); +} + +dl.invariant dt, dl.pre dt, dl.post dt { + color: var(--invariant-color-hl); +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0; + padding: 0; +} + +#side-nav #projectname +{ + font-size: 130%; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0 0 0 5px; + margin: 0px; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li[class^='level'] { + margin-left: 15px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.empty { + background-image: none; + margin-top: 0px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: 400; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0 2px 0; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 12px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + backdrop-filter: var(--tooltip-backdrop-filter); + -webkit-backdrop-filter: var(--tooltip-backdrop-filter); + border: 1px solid var(--tooltip-border-color); + border-radius: 4px; + box-shadow: var(--tooltip-shadow); + display: none; + font-size: smaller; + max-width: 80%; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: var(--tooltip-doc-color); + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: var(--tooltip-link-color); +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: var(--tooltip-declaration-color); +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: var(--tooltip-arrow-background-color); + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: var(--tooltip-arrow-background-color); + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd +{ + display: inline-block; +} +tt, code, kbd +{ + vertical-align: top; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + +:root { + scrollbar-width: thin; + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 12px; + width: 12px; +} +::-webkit-scrollbar-thumb { + border-radius: 6px; + box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); + border: solid 2px transparent; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); +} + diff --git a/liboqs/api/doxygen/doxygen.svg b/liboqs/api/doxygen/doxygen.svg new file mode 100644 index 0000000..79a7635 --- /dev/null +++ b/liboqs/api/doxygen/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/liboqs/api/doxygen/doxygen_crawl.html b/liboqs/api/doxygen/doxygen_crawl.html new file mode 100644 index 0000000..f17fef5 --- /dev/null +++ b/liboqs/api/doxygen/doxygen_crawl.html @@ -0,0 +1,699 @@ + + + +Validator / crawler helper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/liboqs/api/doxygen/dynsections.js b/liboqs/api/doxygen/dynsections.js new file mode 100644 index 0000000..0e15bd4 --- /dev/null +++ b/liboqs/api/doxygen/dynsections.js @@ -0,0 +1,191 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +function toggleVisibility(linkObj) { + return dynsection.toggleVisibility(linkObj); +} + +let dynsection = { + // helper function + updateStripes : function() { + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); + }, + + toggleVisibility : function(linkObj) { + const base = $(linkObj).attr('id'); + const summary = $('#'+base+'-summary'); + const content = $('#'+base+'-content'); + const trigger = $('#'+base+'-trigger'); + const src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.slideUp('fast'); + summary.show(); + $(linkObj).find('.arrowhead').addClass('closed').removeClass('opened'); + } else { + content.slideDown('fast'); + summary.hide(); + $(linkObj).find('.arrowhead').removeClass('closed').addClass('opened'); + } + return false; + }, + + toggleLevel : function(level) { + $('table.directory tr').each(function() { + const l = this.id.split('_').length-1; + const i = $('#img'+this.id.substring(3)); + const a = $('#arr'+this.id.substring(3)); + if (l'); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + const id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + const start = $(this).attr('data-start'); + const end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + const line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').addClass('plus').removeClass('minus'); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); + }, +}; +/* @license-end */ diff --git a/liboqs/api/doxygen/files.html b/liboqs/api/doxygen/files.html new file mode 100644 index 0000000..910a164 --- /dev/null +++ b/liboqs/api/doxygen/files.html @@ -0,0 +1,113 @@ + + + + + + + +liboqs: File List + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 1234]
+ + + + + + + + + + + + + + + + + + +
 
src
 
common
 
aes
 
aes_ops.h
Header defining the callback API for OQS AES
 
rand
 
rand.h
Random number generator
 
sha2
 
sha2_ops.h
Header defining the callback API for OQS SHA2
 
sha3
 
sha3_ops.h
Header defining the callback API for OQS SHA3 and SHAKE
 
sha3x4_ops.h
Header defining the callback API for OQS SHA3 and SHAKE
 
common.h
Utility functions for use in liboqs
 
kem
 
kem.h
Key encapsulation mechanisms
 
sig
 
sig.h
Signature schemes
 
sig_stfl
 
sig_stfl.h
Stateful Signature schemes
+
+
+ + +
+ + diff --git a/liboqs/api/doxygen/functions.html b/liboqs/api/doxygen/functions.html new file mode 100644 index 0000000..3114d81 --- /dev/null +++ b/liboqs/api/doxygen/functions.html @@ -0,0 +1,261 @@ + + + + + + + +liboqs: Data Fields + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- a -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- i -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- s -

+ + +

- u -

+ + +

- v -

+
+ + +
+ + diff --git a/liboqs/api/doxygen/functions_vars.html b/liboqs/api/doxygen/functions_vars.html new file mode 100644 index 0000000..8e028fd --- /dev/null +++ b/liboqs/api/doxygen/functions_vars.html @@ -0,0 +1,261 @@ + + + + + + + +liboqs: Data Fields - Variables + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented variables with links to the struct/union documentation for each field:
+ +

- a -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- i -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- s -

+ + +

- u -

+ + +

- v -

+
+ + +
+ + diff --git a/liboqs/api/doxygen/globals.html b/liboqs/api/doxygen/globals.html new file mode 100644 index 0000000..5d4af06 --- /dev/null +++ b/liboqs/api/doxygen/globals.html @@ -0,0 +1,93 @@ + + + + + + + +liboqs: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:
+ +

- l -

+
+ + +
+ + diff --git a/liboqs/api/doxygen/globals_defs.html b/liboqs/api/doxygen/globals_defs.html new file mode 100644 index 0000000..92b901e --- /dev/null +++ b/liboqs/api/doxygen/globals_defs.html @@ -0,0 +1,427 @@ + + + + + + + +liboqs: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented macros with links to the documentation:
+ +

- o -

+
+ + +
+ + diff --git a/liboqs/api/doxygen/globals_defs_s.html b/liboqs/api/doxygen/globals_defs_s.html new file mode 100644 index 0000000..05dfba7 --- /dev/null +++ b/liboqs/api/doxygen/globals_defs_s.html @@ -0,0 +1,93 @@ + + + + + + + +liboqs: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented macros with links to the documentation:
+ +

- s -

+
+ + +
+ + diff --git a/liboqs/api/doxygen/globals_enum.html b/liboqs/api/doxygen/globals_enum.html new file mode 100644 index 0000000..20299ec --- /dev/null +++ b/liboqs/api/doxygen/globals_enum.html @@ -0,0 +1,92 @@ + + + + + + + +liboqs: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented enums with links to the documentation:
+
+ + +
+ + diff --git a/liboqs/api/doxygen/globals_eval.html b/liboqs/api/doxygen/globals_eval.html new file mode 100644 index 0000000..b1469b6 --- /dev/null +++ b/liboqs/api/doxygen/globals_eval.html @@ -0,0 +1,93 @@ + + + + + + + +liboqs: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented enum values with links to the documentation:
+
+ + +
+ + diff --git a/liboqs/api/doxygen/globals_func.html b/liboqs/api/doxygen/globals_func.html new file mode 100644 index 0000000..bd7d336 --- /dev/null +++ b/liboqs/api/doxygen/globals_func.html @@ -0,0 +1,155 @@ + + + + + + + +liboqs: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented functions with links to the documentation:
+ +

- o -

+
+ + +
+ + diff --git a/liboqs/api/doxygen/globals_o.html b/liboqs/api/doxygen/globals_o.html new file mode 100644 index 0000000..f557e97 --- /dev/null +++ b/liboqs/api/doxygen/globals_o.html @@ -0,0 +1,498 @@ + + + + + + + +liboqs: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:
+ +

- o -

+
+ + +
+ + diff --git a/liboqs/api/doxygen/globals_s.html b/liboqs/api/doxygen/globals_s.html new file mode 100644 index 0000000..14bafa1 --- /dev/null +++ b/liboqs/api/doxygen/globals_s.html @@ -0,0 +1,94 @@ + + + + + + + +liboqs: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:
+ +

- s -

+
+ + +
+ + diff --git a/liboqs/api/doxygen/globals_type.html b/liboqs/api/doxygen/globals_type.html new file mode 100644 index 0000000..1aae556 --- /dev/null +++ b/liboqs/api/doxygen/globals_type.html @@ -0,0 +1,96 @@ + + + + + + + +liboqs: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented typedefs with links to the documentation:
+
+ + +
+ + diff --git a/liboqs/api/doxygen/globals_u.html b/liboqs/api/doxygen/globals_u.html new file mode 100644 index 0000000..05021f1 --- /dev/null +++ b/liboqs/api/doxygen/globals_u.html @@ -0,0 +1,93 @@ + + + + + + + +liboqs: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:
+ +

- u -

+
+ + +
+ + diff --git a/liboqs/api/doxygen/index.html b/liboqs/api/doxygen/index.html new file mode 100644 index 0000000..8b71eda --- /dev/null +++ b/liboqs/api/doxygen/index.html @@ -0,0 +1,314 @@ + + + + + + + +liboqs: liboqs + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
liboqs
+
+
+

+

Main Branch Tests Weekly Tests Coverage Status

+

liboqs is an open source C library for quantum-safe cryptographic algorithms.

+ +

+Overview

+

liboqs provides:

+
    +
  • a collection of open source implementations of quantum-safe key encapsulation mechanisms (KEMs) and digital signature algorithms; the full list can be found below
  • +
  • a common API for these algorithms
  • +
  • a test harness and benchmarking routines
  • +
+

liboqs is part of the Open Quantum Safe (OQS) project, which aims to develop and integrate into applications quantum-safe cryptography to facilitate deployment and testing in real world contexts. In particular, OQS provides prototype integrations of liboqs into protocols like TLS, X.509, and S/MIME, through our OpenSSL 3 Provider and we provide a variety of other post-quantum-enabled demos.

+

The OQS project is supported by the Post-Quantum Cryptography Alliance as part of the Linux Foundation. More information about the Open Quantum Safe project can be found at openquantumsafe.org.

+

OQS is running a survey to better understand our community. We would like to hear from organizations and individuals about their interest in and use of the Open Quantum Safe project. Please take a few minutes to fill out the survey: https://linuxfoundation.surveymonkey.com/r/oqssurvey

+

+Status

+

+Supported Algorithms

+

Details on each supported algorithm can be found in the docs/algorithms folder.

+

The list below indicates all algorithms currently supported by liboqs, including experimental algorithms and already excluding algorithm variants pruned during the NIST competition, such as Kyber-90s or Dilithium-AES.

+

The only algorithms in liboqs that implement NIST standards are the ML-KEM (final standard) and ML-DSA (final standard) variants with their respective different bit strengths. liboqs will retain these algorithm names selected by NIST throughout the finishing stages of the standardization process, so users can rely on their presence going forward. If NIST changes the implementation details of these algorithms, liboqs will adjust the implementation so that users are protected from such potential changes.

+

Falcon and SPHINCS+ have also been selected for standardization, but the liboqs implementations of these algorithms are currently tracking Round 3 submissions and not NIST standards drafts.

+

All names other than ML-KEM and ML-DSA are subject to change. liboqs makes available a selection mechanism for algorithms on the NIST standards track, continued NIST competition, or purely experimental nature by way of the configuration variable OQS_ALGS_ENABLED. By default liboqs is built supporting all, incl. experimental, PQ algorithms listed below.

+

+Key encapsulation mechanisms

+ + + + + + + + + + + + + + + + + + + +
Algorithm family Standardization status Primary implementation
BIKE Not selected by NIST awslabs/bike-kem
Classic McEliece Under ISO consideration PQClean/PQClean@1eacfda
FrodoKEM Under ISO consideration microsoft/PQCrypto-LWEKE@b6609d3
HQC Selected by NIST for upcoming standardization PQClean/PQClean@1eacfda
Kyber Selected by NIST as basis for ML-KEM (FIPS 203) pq-crystals/kyber@441c051
ML-KEM Standardized by NIST pq-code-package/mlkem-native@048fc2a
NTRU Not selected by NIST, under standardization consideration by NTT PQClean/PQClean@4c9e5a3
NTRU-Prime Not selected by NIST PQClean/PQClean@4c9e5a3
+

+Signature schemes

+ + + + + + + + + + + + + + + + + + + +
Algorithm family Standardization status Primary implementation
CROSS Under NIST consideration CROSS-signature/CROSS-lib-oqs@c8f7411
Falcon Selected by NIST for upcoming standardization PQClean/PQClean@1eacfda
MAYO Under NIST consideration PQCMayo/MAYO-C@4b7cd94
ML-DSA Standardized by NIST pq-crystals/dilithium@444cdcc
SLH-DSA Standardized by NIST pq-code-package/slhdsa-c@a0fc1ff
SNOVA Under NIST consideration vacuas/SNOVA@1c3ca6f
SPHINCS+ Selected by NIST as basis for SLH-DSA (FIPS 205) PQClean/PQClean@1eacfda
UOV Under NIST consideration pqov/pqov@33fa527
+

+Stateful signature schemes

+ + + + + + + +
Algorithm family Standardization status Primary implementation
LMS Standardized by IRTF, approved by NIST cisco/hash-sigs
XMSS Standardized by IRTF, approved by NIST XMSS/xmss-reference
+

Note that for algorithms marked with a dagger (†), liboqs contains at least one implementation that uses a large amount of stack space; this may cause failures when run in threads or in constrained environments. For more information, consult the algorithm information sheets in the docs/algorithms folder.

+

+Limitations and Security

+

While at the time of this writing there are no vulnerabilities known in any of the quantum-safe algorithms used in this library, caution is advised when deploying quantum-safe algorithms as most of the algorithms and software have not been subject to the same degree of scrutiny as for currently deployed algorithms. Particular attention should be paid to guidance provided by the standards community, especially from the NIST Post-Quantum Cryptography Standardization project. As research advances, the supported algorithms may see rapid changes in their security, and may even prove insecure against both classical and quantum computers. Moreover, note that the sntrup761 is only included for interop testing.

+

liboqs does not intend to "pick winners": algorithm support is informed by the NIST PQC standardization project. We strongly recommend that applications and protocols rely on the outcomes of this effort when deploying post-quantum cryptography.

+

We realize some parties may want to deploy quantum-safe cryptography prior to the conclusion of the NIST PQC standardization project. We strongly recommend such attempts make use of so-called hybrid cryptography, in which quantum-safe public-key algorithms are used alongside traditional public key algorithms (like RSA or elliptic curves) so that the solution is at least no less secure than existing traditional cryptography.

+

WE DO NOT CURRENTLY RECOMMEND RELYING ON THIS LIBRARY IN A PRODUCTION ENVIRONMENT OR TO PROTECT ANY SENSITIVE DATA. This library is meant to help with research and prototyping. While we make a best-effort approach to avoid security bugs, this library has not received the level of auditing and analysis that would be necessary to rely on it for high security use.

+

Please see SECURITY.md for details on how to report a vulnerability and the OQS vulnerability response process.

+

+Platform limitations

+

In order to optimize support effort,

    +
  • not all algorithms are equally well supported on all platforms. In case of questions, it is first advised to review the documentation files for each algorithm.
  • +
  • not all compilers are equally well supported. For example, at least v7.1.0 of the GNU compiler is required.
  • +
+

+Support limitations

+

This project is not commercially supported. All guidelines and goals for liboqs are reflections of current practices, executed by a community of academic, part-time, and/or voluntary contributors on a best-effort basis and may change at any time. Any entity seeking more reliable commitments is strongly encouraged to join the OQS community and thus enhance the code and support that the community can provide.

+

+Quickstart

+

+Linux and Mac

+
    +
  1. Install dependencies:

    +

    On Ubuntu:

     sudo apt install astyle cmake gcc ninja-build libssl-dev python3-pytest python3-pytest-xdist unzip xsltproc doxygen graphviz python3-yaml valgrind
    +

    On macOS, using a package manager of your choice (we've picked Homebrew):

    brew install cmake ninja openssl@3 wget doxygen graphviz astyle valgrind
    +pip3 install pytest pytest-xdist pyyaml
    +

    Using Nix:

    nix develop
    +

    Note that, if you want liboqs to use OpenSSL for various symmetric crypto algorithms (AES, SHA-2, etc.) then you must have OpenSSL installed (version 3.x recommended; EOL version 1.1.1 also still possible).

    +
  2. +
  3. Get the source:

     git clone -b main https://github.com/open-quantum-safe/liboqs.git
    + cd liboqs
    +

    and build:

    mkdir build && cd build
    +cmake -GNinja ..
    +ninja
    +
  4. +
+

Various cmake build options to customize the resultant artifacts are available and are documented in CONFIGURE.md. All supported options are also listed in the .CMake/alg-support.cmake file, and can be viewed by running cmake -LAH -N .. in the build directory.

+

The following instructions assume we are in build.

+
    +
  1. By default the main build result is lib/liboqs.a, a static library. If you want to build a shared/dynamic library, append `-DBUILD_SHARED_LIBS=ON` to the cmake -GNinja .. command above and the result will be lib/liboqs.so|dylib|dll. The public headers are located in the include directory. There are also a variety of programs built under the tests directory:

      +
    • test_kem: Simple test harness for key encapsulation mechanisms
    • +
    • test_sig: Simple test harness for signature schemes
    • +
    • test_sig_stfl: Simple test harness for stateful signature schemes
    • +
    • test_kem_mem: Simple test harness for checking memory consumption of key encapsulation mechanisms
    • +
    • test_sig_mem: Simple test harness for checking memory consumption of signature schemes
    • +
    • kat_kem: Program that generates known answer test (KAT) values for key encapsulation mechanisms using the same procedure as the NIST submission requirements, for checking against submitted KAT values using tests/test_kat.py
    • +
    • kat_sig: Program that generates known answer test (KAT) values for signature schemes using the same procedure as the NIST submission requirements, for checking against submitted KAT values using tests/test_kat.py
    • +
    • kat_sig_stfl: Program for checking results against submitted KAT values using tests/test_kat.py
    • +
    • speed_kem: Benchmarking program for key encapsulation mechanisms; see ./speed_kem --help for usage instructions
    • +
    • speed_sig: Benchmarking program for signature mechanisms; see ./speed_sig --help for usage instructions
    • +
    • speed_sig_stfl: Benchmarking program for stateful signature mechanisms; see ./speed_sig_stfl --help for usage instructions
    • +
    • example_kem: Minimal runnable example showing the usage of the KEM API
    • +
    • example_sig: Minimal runnable example showing the usage of the signature API
    • +
    • example_sig_stfl: Minimal runnable example showing the usage of the stateful signature API
    • +
    • test_aes, test_sha3: Simple test harnesses for crypto sub-components
    • +
    • test_portability: Simple test harnesses for checking cross-CPU code portability; requires presence of qemu; proper operation validated only on Ubuntu
    • +
    +

    The complete test suite can be run using

    ninja run_tests
    +
  2. +
+
    +
  1. To generate HTML documentation of the API, run:

     ninja gen_docs
    +

    Then open docs/html/index.html in your web browser.

    +
  2. +
+
    +
  1. ninja install can be run to install the built library and include files to a location of choice, which can be specified by passing the -DCMAKE_INSTALL_PREFIX=<dir> option to cmake at configure time. Alternatively, ninja package can be run to create an install package.
  2. +
  3. ninja uninstall can be run to remove all installation files.
  4. +
+

+Windows

+

Binaries can be generated using Visual Studio 2019 with the CMake Tools extension installed. The same options as explained above for Linux/macOS can be used and build artifacts are generated in the specified build folders.

+

If you want to create Visual Studio build files, e.g., if not using ninja, be sure to not pass the parameter -GNinja to the cmake command as exemplified above. You can then build all components using msbuild, e.g. as follows: msbuild ALL_BUILD.vcxproj and install all artifacts e.g. using this command msbuild INSTALL.vcxproj.

+

+Cross compilation

+

You can cross compile liboqs for various platforms. Detailed information is available in the Wiki.

+

+Documentation

+

More detailed information on building, optional build parameters, example applications, coding conventions and more can be found in the wiki.

+

+Contributing

+

Contributions that meet the acceptance criteria are gratefully welcomed. See our Contributing Guide for more details.

+

+License

+

liboqs is licensed under the MIT License; see LICENSE.txt for details.

+

liboqs includes some third party libraries or modules that are licensed differently; the corresponding subfolder contains the license that applies in that case. In particular:

+
    +
  • .CMake/CMakeDependentOption.cmake: BSD 3-Clause License
  • +
  • src/common/common.c: includes portions which are Apache License v2.0
  • +
  • src/common/crypto/aes/aes_c.c: public domain or any OSI-approved license
  • +
  • src/common/crypto/aes/aes*_ni.c: public domain
  • +
  • src/common/crypto/sha2/sha2_c.c: public domain
  • +
  • src/common/crypto/sha3/xkcp_low : CC0 (public domain), except brg_endian.h and KeccakP-1600-AVX2.s
  • +
  • src/common/crypto/sha3/xkcp_low/.../brg_endian.h : BSD 3-Clause License
  • +
  • src/common/crypto/sha3/xkcp_low/.../KeccakP-1600-AVX2.s : BSD-like CRYPTOGAMS license
  • +
  • src/common/rand/rand_nist.c: See file
  • +
  • src/kem/bike/additional: Apache License v2.0
  • +
  • src/kem/classic_mceliece/pqclean_*: public domain
  • +
  • src/kem/kyber/pqcrystals-*: public domain (CC0) or Apache License v2.0
  • +
  • src/kem/kyber/pqclean_*: public domain (CC0), and public domain (CC0) or Apache License v2.0, and public domain (CC0) or MIT, and MIT
  • +
  • src/kem/kyber/libjade_* public domain (CC0) or Apache License v2.
  • +
  • src/kem/ml_kem/mlkem-native_*: MIT or Apache License v2.0 or ISC License
  • +
  • src/kem/ntru/pqclean_*: public domain (CC0)
  • +
  • src/sig/falcon/pqclean_*_aarch64 : Apache License v2.0
  • +
  • src/sig/mayo/*: Apache License v2.0
  • +
  • src/sig/ml_dsa/pqcrystals-*: public domain (CC0) or Apache License v2.0
  • +
  • src/sig/sphincs/pqclean_*: CC0 (public domain)
  • +
+

+Acknowledgements

+

The OQS project is supported by the Post-Quantum Cryptography Alliance as part of the Linux Foundation.

+

The OQS project was founded by Douglas Stebila and Michele Mosca at the University of Waterloo. Contributors to liboqs include individual contributors, academics and researchers, and various companies, including Amazon Web Services, Cisco Systems, evolutionQ, IBM Research, Microsoft Research, SandboxAQ, and softwareQ.

+

Financial support for the development of Open Quantum Safe has been provided by Amazon Web Services, the Canadian Centre for Cyber Security, Cisco, the Unitary Fund, the NGI Assure Fund, and VeriSign Inc.

+

Research projects which developed specific components of OQS have been supported by various research grants, including funding from the Natural Sciences and Engineering Research Council of Canada (NSERC); see the source papers for funding acknowledgments.

+
+ +
+ + +
+ + diff --git a/liboqs/api/doxygen/jquery.js b/liboqs/api/doxygen/jquery.js new file mode 100644 index 0000000..875ada7 --- /dev/null +++ b/liboqs/api/doxygen/jquery.js @@ -0,0 +1,204 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e} +var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp( +"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType +}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c +)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){ +return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll( +":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id") +)&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push( +"\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test( +a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null, +null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne +).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for( +var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n; +return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0, +r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r] +,C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each( +function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r, +"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})} +),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each( +"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t +){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t +]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i}, +getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within, +s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})), +this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t +).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split( +","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add( +this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{ +width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(), +!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){ +this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height +,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e, +i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left +)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e +){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0), +i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth( +)-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e, +function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0 +]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){ +targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se", +"n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if( +session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)} +closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if( +session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE, +function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset); +tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList, +finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight())); +return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")} +function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(), +elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight, +viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b, +"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery); +/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)), +mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend( +$.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy( +this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData( +"smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id" +).indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?( +this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for( +var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){ +return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if(( +!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&( +this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0 +]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass( +"highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){ +t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]" +)||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){ +t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"), +a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i, +downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2) +)&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t +)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0), +canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}}, +rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})} +return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1, +bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); diff --git a/liboqs/api/doxygen/kem_8h.html b/liboqs/api/doxygen/kem_8h.html new file mode 100644 index 0000000..b151e1d --- /dev/null +++ b/liboqs/api/doxygen/kem_8h.html @@ -0,0 +1,1070 @@ + + + + + + + +liboqs: src/kem/kem.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+ +
kem.h File Reference
+
+
+ +

Key encapsulation mechanisms. +More...

+
#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <oqs/oqs.h>
+
+

Go to the source code of this file.

+ + + +

+Data Structures

struct  OQS_KEM
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define OQS_KEM_alg_bike_l1   "BIKE-L1"
#define OQS_KEM_alg_bike_l3   "BIKE-L3"
#define OQS_KEM_alg_bike_l5   "BIKE-L5"
#define OQS_KEM_alg_classic_mceliece_348864   "Classic-McEliece-348864"
#define OQS_KEM_alg_classic_mceliece_348864f   "Classic-McEliece-348864f"
#define OQS_KEM_alg_classic_mceliece_460896   "Classic-McEliece-460896"
#define OQS_KEM_alg_classic_mceliece_460896f   "Classic-McEliece-460896f"
#define OQS_KEM_alg_classic_mceliece_6688128   "Classic-McEliece-6688128"
#define OQS_KEM_alg_classic_mceliece_6688128f   "Classic-McEliece-6688128f"
#define OQS_KEM_alg_classic_mceliece_6960119   "Classic-McEliece-6960119"
#define OQS_KEM_alg_classic_mceliece_6960119f   "Classic-McEliece-6960119f"
#define OQS_KEM_alg_classic_mceliece_8192128   "Classic-McEliece-8192128"
#define OQS_KEM_alg_classic_mceliece_8192128f   "Classic-McEliece-8192128f"
#define OQS_KEM_alg_hqc_128   "HQC-128"
#define OQS_KEM_alg_hqc_192   "HQC-192"
#define OQS_KEM_alg_hqc_256   "HQC-256"
#define OQS_KEM_alg_kyber_512   "Kyber512"
#define OQS_KEM_alg_kyber_768   "Kyber768"
#define OQS_KEM_alg_kyber_1024   "Kyber1024"
#define OQS_KEM_alg_ml_kem_512   "ML-KEM-512"
#define OQS_KEM_alg_ml_kem_768   "ML-KEM-768"
#define OQS_KEM_alg_ml_kem_1024   "ML-KEM-1024"
#define OQS_KEM_alg_ntru_hps2048509   "NTRU-HPS-2048-509"
#define OQS_KEM_alg_ntru_hps2048677   "NTRU-HPS-2048-677"
#define OQS_KEM_alg_ntru_hps4096821   "NTRU-HPS-4096-821"
#define OQS_KEM_alg_ntru_hps40961229   "NTRU-HPS-4096-1229"
#define OQS_KEM_alg_ntru_hrss701   "NTRU-HRSS-701"
#define OQS_KEM_alg_ntru_hrss1373   "NTRU-HRSS-1373"
#define OQS_KEM_alg_ntruprime_sntrup761   "sntrup761"
#define OQS_KEM_alg_frodokem_640_aes   "FrodoKEM-640-AES"
#define OQS_KEM_alg_frodokem_640_shake   "FrodoKEM-640-SHAKE"
#define OQS_KEM_alg_frodokem_976_aes   "FrodoKEM-976-AES"
#define OQS_KEM_alg_frodokem_976_shake   "FrodoKEM-976-SHAKE"
#define OQS_KEM_alg_frodokem_1344_aes   "FrodoKEM-1344-AES"
#define OQS_KEM_alg_frodokem_1344_shake   "FrodoKEM-1344-SHAKE"
#define OQS_KEM_algs_length   35
+ + +

+Typedefs

typedef struct OQS_KEM OQS_KEM
+ + + + + + + + + + + +

+Functions

OQS_API const char * OQS_KEM_alg_identifier (size_t i)
OQS_API int OQS_KEM_alg_count (void)
OQS_API int OQS_KEM_alg_is_enabled (const char *method_name)
OQS_API OQS_KEMOQS_KEM_new (const char *method_name)
OQS_API OQS_STATUS OQS_KEM_keypair_derand (const OQS_KEM *kem, uint8_t *public_key, uint8_t *secret_key, const uint8_t *seed)
OQS_API OQS_STATUS OQS_KEM_keypair (const OQS_KEM *kem, uint8_t *public_key, uint8_t *secret_key)
OQS_API OQS_STATUS OQS_KEM_encaps_derand (const OQS_KEM *kem, uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key, const uint8_t *seed)
OQS_API OQS_STATUS OQS_KEM_encaps (const OQS_KEM *kem, uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key)
OQS_API OQS_STATUS OQS_KEM_decaps (const OQS_KEM *kem, uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key)
OQS_API void OQS_KEM_free (OQS_KEM *kem)
+

Detailed Description

+

Key encapsulation mechanisms.

+

The file tests/example_kem.c contains two examples on using the OQS_KEM API.

+

The first example uses the individual scheme's algorithms directly and uses no dynamic memory allocation – all buffers are allocated on the stack, with sizes indicated using preprocessor macros. Since algorithms can be disabled at compile-time, the programmer should wrap the code in #ifdefs.

+

The second example uses an OQS_KEM object to use an algorithm specified at runtime. Therefore it uses dynamic memory allocation – all buffers must be malloc'ed by the programmer, with sizes indicated using the corresponding length member of the OQS_KEM object in question. Since algorithms can be disabled at compile-time, the programmer should check that the OQS_KEM object is not NULL.

+

SPDX-License-Identifier: MIT

+

Macro Definition Documentation

+ +

◆ OQS_KEM_alg_bike_l1

+ +
+
+ + + + +
#define OQS_KEM_alg_bike_l1   "BIKE-L1"
+
+

Algorithm identifier for BIKE-L1 KEM (Round-4).

+ +
+
+ +

◆ OQS_KEM_alg_bike_l3

+ +
+
+ + + + +
#define OQS_KEM_alg_bike_l3   "BIKE-L3"
+
+

Algorithm identifier for BIKE-L3 KEM (Round-4).

+ +
+
+ +

◆ OQS_KEM_alg_bike_l5

+ +
+
+ + + + +
#define OQS_KEM_alg_bike_l5   "BIKE-L5"
+
+

Algorithm identifier for BIKE-L5 KEM (Round-4).

+ +
+
+ +

◆ OQS_KEM_alg_classic_mceliece_348864

+ +
+
+ + + + +
#define OQS_KEM_alg_classic_mceliece_348864   "Classic-McEliece-348864"
+
+

Algorithm identifier for Classic-McEliece-348864 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_classic_mceliece_348864f

+ +
+
+ + + + +
#define OQS_KEM_alg_classic_mceliece_348864f   "Classic-McEliece-348864f"
+
+

Algorithm identifier for Classic-McEliece-348864f KEM.

+ +
+
+ +

◆ OQS_KEM_alg_classic_mceliece_460896

+ +
+
+ + + + +
#define OQS_KEM_alg_classic_mceliece_460896   "Classic-McEliece-460896"
+
+

Algorithm identifier for Classic-McEliece-460896 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_classic_mceliece_460896f

+ +
+
+ + + + +
#define OQS_KEM_alg_classic_mceliece_460896f   "Classic-McEliece-460896f"
+
+

Algorithm identifier for Classic-McEliece-460896f KEM.

+ +
+
+ +

◆ OQS_KEM_alg_classic_mceliece_6688128

+ +
+
+ + + + +
#define OQS_KEM_alg_classic_mceliece_6688128   "Classic-McEliece-6688128"
+
+

Algorithm identifier for Classic-McEliece-6688128 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_classic_mceliece_6688128f

+ +
+
+ + + + +
#define OQS_KEM_alg_classic_mceliece_6688128f   "Classic-McEliece-6688128f"
+
+

Algorithm identifier for Classic-McEliece-6688128f KEM.

+ +
+
+ +

◆ OQS_KEM_alg_classic_mceliece_6960119

+ +
+
+ + + + +
#define OQS_KEM_alg_classic_mceliece_6960119   "Classic-McEliece-6960119"
+
+

Algorithm identifier for Classic-McEliece-6960119 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_classic_mceliece_6960119f

+ +
+
+ + + + +
#define OQS_KEM_alg_classic_mceliece_6960119f   "Classic-McEliece-6960119f"
+
+

Algorithm identifier for Classic-McEliece-6960119f KEM.

+ +
+
+ +

◆ OQS_KEM_alg_classic_mceliece_8192128

+ +
+
+ + + + +
#define OQS_KEM_alg_classic_mceliece_8192128   "Classic-McEliece-8192128"
+
+

Algorithm identifier for Classic-McEliece-8192128 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_classic_mceliece_8192128f

+ +
+
+ + + + +
#define OQS_KEM_alg_classic_mceliece_8192128f   "Classic-McEliece-8192128f"
+
+

Algorithm identifier for Classic-McEliece-8192128f KEM.

+ +
+
+ +

◆ OQS_KEM_alg_frodokem_1344_aes

+ +
+
+ + + + +
#define OQS_KEM_alg_frodokem_1344_aes   "FrodoKEM-1344-AES"
+
+

Algorithm identifier for FrodoKEM-1344-AES KEM.

+ +
+
+ +

◆ OQS_KEM_alg_frodokem_1344_shake

+ +
+
+ + + + +
#define OQS_KEM_alg_frodokem_1344_shake   "FrodoKEM-1344-SHAKE"
+
+

Algorithm identifier for FrodoKEM-1344-SHAKE KEM.

+ +
+
+ +

◆ OQS_KEM_alg_frodokem_640_aes

+ +
+
+ + + + +
#define OQS_KEM_alg_frodokem_640_aes   "FrodoKEM-640-AES"
+
+

Algorithm identifier for FrodoKEM-640-AES KEM.

+ +
+
+ +

◆ OQS_KEM_alg_frodokem_640_shake

+ +
+
+ + + + +
#define OQS_KEM_alg_frodokem_640_shake   "FrodoKEM-640-SHAKE"
+
+

Algorithm identifier for FrodoKEM-640-SHAKE KEM.

+ +
+
+ +

◆ OQS_KEM_alg_frodokem_976_aes

+ +
+
+ + + + +
#define OQS_KEM_alg_frodokem_976_aes   "FrodoKEM-976-AES"
+
+

Algorithm identifier for FrodoKEM-976-AES KEM.

+ +
+
+ +

◆ OQS_KEM_alg_frodokem_976_shake

+ +
+
+ + + + +
#define OQS_KEM_alg_frodokem_976_shake   "FrodoKEM-976-SHAKE"
+
+

Algorithm identifier for FrodoKEM-976-SHAKE KEM.

+ +
+
+ +

◆ OQS_KEM_alg_hqc_128

+ +
+
+ + + + +
#define OQS_KEM_alg_hqc_128   "HQC-128"
+
+

Algorithm identifier for HQC-128 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_hqc_192

+ +
+
+ + + + +
#define OQS_KEM_alg_hqc_192   "HQC-192"
+
+

Algorithm identifier for HQC-192 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_hqc_256

+ +
+
+ + + + +
#define OQS_KEM_alg_hqc_256   "HQC-256"
+
+

Algorithm identifier for HQC-256 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_kyber_1024

+ +
+
+ + + + +
#define OQS_KEM_alg_kyber_1024   "Kyber1024"
+
+

Algorithm identifier for Kyber1024 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_kyber_512

+ +
+
+ + + + +
#define OQS_KEM_alg_kyber_512   "Kyber512"
+
+

Algorithm identifier for Kyber512 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_kyber_768

+ +
+
+ + + + +
#define OQS_KEM_alg_kyber_768   "Kyber768"
+
+

Algorithm identifier for Kyber768 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_ml_kem_1024

+ +
+
+ + + + +
#define OQS_KEM_alg_ml_kem_1024   "ML-KEM-1024"
+
+

Algorithm identifier for ML-KEM-1024 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_ml_kem_512

+ +
+
+ + + + +
#define OQS_KEM_alg_ml_kem_512   "ML-KEM-512"
+
+

Algorithm identifier for ML-KEM-512 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_ml_kem_768

+ +
+
+ + + + +
#define OQS_KEM_alg_ml_kem_768   "ML-KEM-768"
+
+

Algorithm identifier for ML-KEM-768 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_ntru_hps2048509

+ +
+
+ + + + +
#define OQS_KEM_alg_ntru_hps2048509   "NTRU-HPS-2048-509"
+
+

Algorithm identifier for NTRU-HPS-2048-509 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_ntru_hps2048677

+ +
+
+ + + + +
#define OQS_KEM_alg_ntru_hps2048677   "NTRU-HPS-2048-677"
+
+

Algorithm identifier for NTRU-HPS-2048-677 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_ntru_hps40961229

+ +
+
+ + + + +
#define OQS_KEM_alg_ntru_hps40961229   "NTRU-HPS-4096-1229"
+
+

Algorithm identifier for NTRU-HPS-4096-1229 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_ntru_hps4096821

+ +
+
+ + + + +
#define OQS_KEM_alg_ntru_hps4096821   "NTRU-HPS-4096-821"
+
+

Algorithm identifier for NTRU-HPS-4096-821 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_ntru_hrss1373

+ +
+
+ + + + +
#define OQS_KEM_alg_ntru_hrss1373   "NTRU-HRSS-1373"
+
+

Algorithm identifier for NTRU-HRSS-1373 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_ntru_hrss701

+ +
+
+ + + + +
#define OQS_KEM_alg_ntru_hrss701   "NTRU-HRSS-701"
+
+

Algorithm identifier for NTRU-HRSS-701 KEM.

+ +
+
+ +

◆ OQS_KEM_alg_ntruprime_sntrup761

+ +
+
+ + + + +
#define OQS_KEM_alg_ntruprime_sntrup761   "sntrup761"
+
+

Algorithm identifier for sntrup761 KEM.

+ +
+
+ +

◆ OQS_KEM_algs_length

+ +
+
+ + + + +
#define OQS_KEM_algs_length   35
+
+

Number of algorithm identifiers above.

+ +
+
+

Typedef Documentation

+ +

◆ OQS_KEM

+ +
+
+ + + + +
typedef struct OQS_KEM OQS_KEM
+
+

Key encapsulation mechanism object

+ +
+
+

Function Documentation

+ +

◆ OQS_KEM_alg_count()

+ +
+
+ + + + + + + +
OQS_API int OQS_KEM_alg_count (void )
+
+

Returns the number of key encapsulation mechanisms in liboqs. They can be enumerated with OQS_KEM_alg_identifier.

+

Note that some mechanisms may be disabled at compile time.

+
Returns
The number of key encapsulation mechanisms.
+ +
+
+ +

◆ OQS_KEM_alg_identifier()

+ +
+
+ + + + + + + +
OQS_API const char * OQS_KEM_alg_identifier (size_t i)
+
+

Returns identifiers for available key encapsulation mechanisms in liboqs. Used with OQS_KEM_new.

+

Note that algorithm identifiers are present in this list even when the algorithm is disabled at compile time.

+
Parameters
+ + +
[in]iIndex of the algorithm identifier to return, 0 <= i < OQS_KEM_algs_length
+
+
+
Returns
Algorithm identifier as a string, or NULL.
+ +
+
+ +

◆ OQS_KEM_alg_is_enabled()

+ +
+
+ + + + + + + +
OQS_API int OQS_KEM_alg_is_enabled (const char * method_name)
+
+

Indicates whether the specified algorithm was enabled at compile-time or not.

+
Parameters
+ + +
[in]method_nameName of the desired algorithm; one of the names in OQS_KEM_algs.
+
+
+
Returns
1 if enabled, 0 if disabled or not found
+ +
+
+ +

◆ OQS_KEM_decaps()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
OQS_API OQS_STATUS OQS_KEM_decaps (const OQS_KEM * kem,
uint8_t * shared_secret,
const uint8_t * ciphertext,
const uint8_t * secret_key )
+
+

Decapsulation algorithm.

+

Caller is responsible for allocating sufficient memory for shared_secret, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

+
Parameters
+ + + + + +
[in]kemThe OQS_KEM object representing the KEM.
[out]shared_secretThe shared secret represented as a byte string.
[in]ciphertextThe ciphertext (encapsulation) represented as a byte string.
[in]secret_keyThe secret key represented as a byte string.
+
+
+
Returns
OQS_SUCCESS or OQS_ERROR
+ +
+
+ +

◆ OQS_KEM_encaps()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
OQS_API OQS_STATUS OQS_KEM_encaps (const OQS_KEM * kem,
uint8_t * ciphertext,
uint8_t * shared_secret,
const uint8_t * public_key )
+
+

Encapsulation algorithm.

+

Caller is responsible for allocating sufficient memory for ciphertext and shared_secret, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

+
Parameters
+ + + + + +
[in]kemThe OQS_KEM object representing the KEM.
[out]ciphertextThe ciphertext (encapsulation) represented as a byte string.
[out]shared_secretThe shared secret represented as a byte string.
[in]public_keyThe public key represented as a byte string.
+
+
+
Returns
OQS_SUCCESS or OQS_ERROR
+ +
+
+ +

◆ OQS_KEM_encaps_derand()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
OQS_API OQS_STATUS OQS_KEM_encaps_derand (const OQS_KEM * kem,
uint8_t * ciphertext,
uint8_t * shared_secret,
const uint8_t * public_key,
const uint8_t * seed )
+
+

Derandomized encapsulation algorithm.

+

Caller is responsible for allocating sufficient memory for ciphertext and shared_secret, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

+
Parameters
+ + + + + + +
[in]kemThe OQS_KEM object representing the KEM.
[out]ciphertextThe ciphertext (encapsulation) represented as a byte string.
[out]shared_secretThe shared secret represented as a byte string.
[in]public_keyThe public key represented as a byte string.
[in]seedThe input randomness represented as a byte string.
+
+
+
Returns
OQS_SUCCESS or OQS_ERROR
+ +
+
+ +

◆ OQS_KEM_free()

+ +
+
+ + + + + + + +
OQS_API void OQS_KEM_free (OQS_KEM * kem)
+
+

Frees an OQS_KEM object that was constructed by OQS_KEM_new.

+
Parameters
+ + +
[in]kemThe OQS_KEM object to free.
+
+
+ +
+
+ +

◆ OQS_KEM_keypair()

+ +
+
+ + + + + + + + + + + + + + + + +
OQS_API OQS_STATUS OQS_KEM_keypair (const OQS_KEM * kem,
uint8_t * public_key,
uint8_t * secret_key )
+
+

Keypair generation algorithm.

+

Caller is responsible for allocating sufficient memory for public_key and secret_key, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

+
Parameters
+ + + + +
[in]kemThe OQS_KEM object representing the KEM.
[out]public_keyThe public key represented as a byte string.
[out]secret_keyThe secret key represented as a byte string.
+
+
+
Returns
OQS_SUCCESS or OQS_ERROR
+ +
+
+ +

◆ OQS_KEM_keypair_derand()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
OQS_API OQS_STATUS OQS_KEM_keypair_derand (const OQS_KEM * kem,
uint8_t * public_key,
uint8_t * secret_key,
const uint8_t * seed )
+
+

Derandomized keypair generation algorithm.

+

Caller is responsible for allocating sufficient memory for public_key and secret_key, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

+
Parameters
+ + + + + +
[in]kemThe OQS_KEM object representing the KEM.
[out]public_keyThe public key represented as a byte string.
[out]secret_keyThe secret key represented as a byte string.
[in]seedThe input randomness represented as a byte string.
+
+
+
Returns
OQS_SUCCESS or OQS_ERROR
+ +
+
+ +

◆ OQS_KEM_new()

+ +
+
+ + + + + + + +
OQS_API OQS_KEM * OQS_KEM_new (const char * method_name)
+
+

Constructs an OQS_KEM object for a particular algorithm.

+

Callers should always check whether the return value is NULL, which indicates either than an invalid algorithm name was provided, or that the requested algorithm was disabled at compile-time.

+
Parameters
+ + +
[in]method_nameName of the desired algorithm; one of the names in OQS_KEM_algs.
+
+
+
Returns
An OQS_KEM for the particular algorithm, or NULL if the algorithm has been disabled at compile-time.
+ +
+
+
+ + +
+ + diff --git a/liboqs/api/doxygen/kem_8h_source.html b/liboqs/api/doxygen/kem_8h_source.html new file mode 100644 index 0000000..0855fac --- /dev/null +++ b/liboqs/api/doxygen/kem_8h_source.html @@ -0,0 +1,261 @@ + + + + + + + +liboqs: src/kem/kem.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
liboqs +
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+
kem.h
+
+
+Go to the documentation of this file.
1
+
20
+
21#ifndef OQS_KEM_H
+
22#define OQS_KEM_H
+
23
+
24#include <stdbool.h>
+
25#include <stddef.h>
+
26#include <stdint.h>
+
27
+
28#include <oqs/oqs.h>
+
29
+
30#if defined(__cplusplus)
+
31extern "C" {
+
32#endif
+
33
+
35#define OQS_KEM_alg_bike_l1 "BIKE-L1"
+
37#define OQS_KEM_alg_bike_l3 "BIKE-L3"
+
39#define OQS_KEM_alg_bike_l5 "BIKE-L5"
+
41
+
42#define OQS_KEM_alg_classic_mceliece_348864 "Classic-McEliece-348864"
+
44#define OQS_KEM_alg_classic_mceliece_348864f "Classic-McEliece-348864f"
+
46#define OQS_KEM_alg_classic_mceliece_460896 "Classic-McEliece-460896"
+
48#define OQS_KEM_alg_classic_mceliece_460896f "Classic-McEliece-460896f"
+
50#define OQS_KEM_alg_classic_mceliece_6688128 "Classic-McEliece-6688128"
+
52#define OQS_KEM_alg_classic_mceliece_6688128f "Classic-McEliece-6688128f"
+
54#define OQS_KEM_alg_classic_mceliece_6960119 "Classic-McEliece-6960119"
+
56#define OQS_KEM_alg_classic_mceliece_6960119f "Classic-McEliece-6960119f"
+
58#define OQS_KEM_alg_classic_mceliece_8192128 "Classic-McEliece-8192128"
+
60#define OQS_KEM_alg_classic_mceliece_8192128f "Classic-McEliece-8192128f"
+
62#define OQS_KEM_alg_hqc_128 "HQC-128"
+
64#define OQS_KEM_alg_hqc_192 "HQC-192"
+
66#define OQS_KEM_alg_hqc_256 "HQC-256"
+
68#define OQS_KEM_alg_kyber_512 "Kyber512"
+
70#define OQS_KEM_alg_kyber_768 "Kyber768"
+
72#define OQS_KEM_alg_kyber_1024 "Kyber1024"
+
74#define OQS_KEM_alg_ml_kem_512 "ML-KEM-512"
+
76#define OQS_KEM_alg_ml_kem_768 "ML-KEM-768"
+
78#define OQS_KEM_alg_ml_kem_1024 "ML-KEM-1024"
+
80
+
81#define OQS_KEM_alg_ntru_hps2048509 "NTRU-HPS-2048-509"
+
83#define OQS_KEM_alg_ntru_hps2048677 "NTRU-HPS-2048-677"
+
85#define OQS_KEM_alg_ntru_hps4096821 "NTRU-HPS-4096-821"
+
87#define OQS_KEM_alg_ntru_hps40961229 "NTRU-HPS-4096-1229"
+
89#define OQS_KEM_alg_ntru_hrss701 "NTRU-HRSS-701"
+
91#define OQS_KEM_alg_ntru_hrss1373 "NTRU-HRSS-1373"
+
93#define OQS_KEM_alg_ntruprime_sntrup761 "sntrup761"
+
95#define OQS_KEM_alg_frodokem_640_aes "FrodoKEM-640-AES"
+
97#define OQS_KEM_alg_frodokem_640_shake "FrodoKEM-640-SHAKE"
+
99#define OQS_KEM_alg_frodokem_976_aes "FrodoKEM-976-AES"
+
101#define OQS_KEM_alg_frodokem_976_shake "FrodoKEM-976-SHAKE"
+
103#define OQS_KEM_alg_frodokem_1344_aes "FrodoKEM-1344-AES"
+
105#define OQS_KEM_alg_frodokem_1344_shake "FrodoKEM-1344-SHAKE"
+
106// EDIT-WHEN-ADDING-KEM
+
108
+
110#define OQS_KEM_algs_length 35
+
112
+
122OQS_API const char *OQS_KEM_alg_identifier(size_t i);
+
123
+ +
133
+
140OQS_API int OQS_KEM_alg_is_enabled(const char *method_name);
+
141
+
+
145typedef struct OQS_KEM {
+
146
+
148 const char *method_name;
+
149
+
156 const char *alg_version;
+
157
+ +
160
+ +
163
+ + + + + + +
176
+
189 OQS_STATUS (*keypair_derand)(uint8_t *public_key, uint8_t *secret_key, const uint8_t *seed);
+
190
+
202 OQS_STATUS (*keypair)(uint8_t *public_key, uint8_t *secret_key);
+
203
+
217 OQS_STATUS (*encaps_derand)(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key, const uint8_t *seed);
+
218
+
231 OQS_STATUS (*encaps)(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key);
+
232
+
245 OQS_STATUS (*decaps)(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key);
+
246
+ +
+
248
+
258OQS_API OQS_KEM *OQS_KEM_new(const char *method_name);
+
259
+
273OQS_API OQS_STATUS OQS_KEM_keypair_derand(const OQS_KEM *kem, uint8_t *public_key, uint8_t *secret_key, const uint8_t *seed);
+
274
+
287OQS_API OQS_STATUS OQS_KEM_keypair(const OQS_KEM *kem, uint8_t *public_key, uint8_t *secret_key);
+
288
+
303OQS_API OQS_STATUS OQS_KEM_encaps_derand(const OQS_KEM *kem, uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key, const uint8_t *seed);
+
304
+
318OQS_API OQS_STATUS OQS_KEM_encaps(const OQS_KEM *kem, uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key);
+
319
+
333OQS_API OQS_STATUS OQS_KEM_decaps(const OQS_KEM *kem, uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key);
+
334
+ +
341
+
342#ifdef OQS_ENABLE_KEM_BIKE
+
343#include <oqs/kem_bike.h>
+
344#endif /* OQS_ENABLE_KEM_BIKE */
+
346#ifdef OQS_ENABLE_KEM_CLASSIC_MCELIECE
+
347#include <oqs/kem_classic_mceliece.h>
+
348#endif /* OQS_ENABLE_KEM_CLASSIC_MCELIECE */
+
349#ifdef OQS_ENABLE_KEM_HQC
+
350#include <oqs/kem_hqc.h>
+
351#endif /* OQS_ENABLE_KEM_HQC */
+
352#ifdef OQS_ENABLE_KEM_KYBER
+
353#include <oqs/kem_kyber.h>
+
354#endif /* OQS_ENABLE_KEM_KYBER */
+
355#ifdef OQS_ENABLE_KEM_ML_KEM
+
356#include <oqs/kem_ml_kem.h>
+
357#endif /* OQS_ENABLE_KEM_ML_KEM */
+
359#ifdef OQS_ENABLE_KEM_NTRU
+
360#include <oqs/kem_ntru.h>
+
361#endif /* OQS_ENABLE_KEM_NTRU */
+
362#ifdef OQS_ENABLE_KEM_NTRUPRIME
+
363#include <oqs/kem_ntruprime.h>
+
364#endif /* OQS_ENABLE_KEM_NTRUPRIME */
+
365#ifdef OQS_ENABLE_KEM_FRODOKEM
+
366#include <oqs/kem_frodokem.h>
+
367#endif /* OQS_ENABLE_KEM_FRODOKEM */
+
368// EDIT-WHEN-ADDING-KEM
+
369
+
370#if defined(__cplusplus)
+
371} // extern "C"
+
372#endif
+
373
+
374#endif // OQS_KEM_H
+
#define OQS_API
Definition common.h:94
+
OQS_STATUS
Definition common.h:116
+
OQS_API OQS_STATUS OQS_KEM_decaps(const OQS_KEM *kem, uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key)
+
OQS_API OQS_STATUS OQS_KEM_keypair(const OQS_KEM *kem, uint8_t *public_key, uint8_t *secret_key)
+
OQS_API OQS_STATUS OQS_KEM_keypair_derand(const OQS_KEM *kem, uint8_t *public_key, uint8_t *secret_key, const uint8_t *seed)
+
OQS_API OQS_KEM * OQS_KEM_new(const char *method_name)
+
OQS_API const char * OQS_KEM_alg_identifier(size_t i)
+
OQS_API int OQS_KEM_alg_count(void)
+
OQS_API OQS_STATUS OQS_KEM_encaps(const OQS_KEM *kem, uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key)
+
OQS_API int OQS_KEM_alg_is_enabled(const char *method_name)
+
OQS_API void OQS_KEM_free(OQS_KEM *kem)
+
OQS_API OQS_STATUS OQS_KEM_encaps_derand(const OQS_KEM *kem, uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key, const uint8_t *seed)
+
Definition kem.h:145
+
const char * method_name
Definition kem.h:148
+
size_t length_shared_secret
Definition kem.h:171
+
size_t length_ciphertext
Definition kem.h:169
+
size_t length_secret_key
Definition kem.h:167
+
uint8_t claimed_nist_level
Definition kem.h:159
+
size_t length_keypair_seed
Definition kem.h:173
+
OQS_STATUS(* decaps)(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key)
Definition kem.h:245
+
OQS_STATUS(* keypair_derand)(uint8_t *public_key, uint8_t *secret_key, const uint8_t *seed)
Definition kem.h:189
+
OQS_STATUS(* encaps)(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key)
Definition kem.h:231
+
const char * alg_version
Definition kem.h:156
+
size_t length_public_key
Definition kem.h:165
+
OQS_STATUS(* encaps_derand)(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key, const uint8_t *seed)
Definition kem.h:217
+
size_t length_encaps_seed
Definition kem.h:175
+
bool ind_cca
Definition kem.h:162
+
OQS_STATUS(* keypair)(uint8_t *public_key, uint8_t *secret_key)
Definition kem.h:202
+
+ + +
+ + diff --git a/liboqs/api/doxygen/menu.js b/liboqs/api/doxygen/menu.js new file mode 100644 index 0000000..15f9c52 --- /dev/null +++ b/liboqs/api/doxygen/menu.js @@ -0,0 +1,131 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search,treeview) { + function makeTree(data,relPath) { + let result=''; + if ('children' in data) { + result+='
    '; + for (let i in data.children) { + let url; + const link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
  • '+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+'
  • '; + } + result+='
'; + } + return result; + } + let searchBoxHtml; + if (searchEnabled) { + if (serverSide) { + searchBoxHtml='
'+ + '
'+ + '
'+ + ''+ + '
'+ + '
'+ + '
'+ + '
'; + } else { + searchBoxHtml='
'+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
'+ + '
'+ + '
'; + } + } + + $('#main-nav').before('
'+ + ''+ + ''+ + '
'); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + $('#main-menu').append('
  • '); + const $mainMenuState = $('#main-menu-state'); + let prevWidth = 0; + if ($mainMenuState.length) { + const initResizableIfExists = function() { + if (typeof initResizable==='function') initResizable(treeview); + } + // animate mobile menu + $mainMenuState.change(function() { + const $menu = $('#main-menu'); + let options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = () => $menu.css('display', 'block'); + $menu.hide().slideDown(options); + } else { + options['complete'] = () => $menu.css('display', 'none'); + $menu.show().slideUp(options); + } + }); + // set default menu visibility + const resetState = function() { + const $menu = $('#main-menu'); + const newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/liboqs/api/doxygen/menudata.js b/liboqs/api/doxygen/menudata.js new file mode 100644 index 0000000..425d7cc --- /dev/null +++ b/liboqs/api/doxygen/menudata.js @@ -0,0 +1,73 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Related Pages",url:"pages.html"}, +{text:"Data Structures",url:"annotated.html",children:[ +{text:"Data Structures",url:"annotated.html"}, +{text:"Data Structure Index",url:"classes.html"}, +{text:"Data Fields",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"a",url:"functions.html#index_a"}, +{text:"c",url:"functions.html#index_c"}, +{text:"d",url:"functions.html#index_d"}, +{text:"e",url:"functions.html#index_e"}, +{text:"f",url:"functions.html#index_f"}, +{text:"i",url:"functions.html#index_i"}, +{text:"k",url:"functions.html#index_k"}, +{text:"l",url:"functions.html#index_l"}, +{text:"m",url:"functions.html#index_m"}, +{text:"s",url:"functions.html#index_s"}, +{text:"u",url:"functions.html#index_u"}, +{text:"v",url:"functions.html#index_v"}]}, +{text:"Variables",url:"functions_vars.html",children:[ +{text:"a",url:"functions_vars.html#index_a"}, +{text:"c",url:"functions_vars.html#index_c"}, +{text:"d",url:"functions_vars.html#index_d"}, +{text:"e",url:"functions_vars.html#index_e"}, +{text:"f",url:"functions_vars.html#index_f"}, +{text:"i",url:"functions_vars.html#index_i"}, +{text:"k",url:"functions_vars.html#index_k"}, +{text:"l",url:"functions_vars.html#index_l"}, +{text:"m",url:"functions_vars.html#index_m"}, +{text:"s",url:"functions_vars.html#index_s"}, +{text:"u",url:"functions_vars.html#index_u"}, +{text:"v",url:"functions_vars.html#index_v"}]}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"Globals",url:"globals.html",children:[ +{text:"All",url:"globals.html",children:[ +{text:"l",url:"globals.html#index_l"}, +{text:"o",url:"globals_o.html#index_o"}, +{text:"s",url:"globals_s.html#index_s"}, +{text:"u",url:"globals_u.html#index_u"}]}, +{text:"Functions",url:"globals_func.html",children:[ +{text:"o",url:"globals_func.html#index_o"}]}, +{text:"Typedefs",url:"globals_type.html"}, +{text:"Enumerations",url:"globals_enum.html"}, +{text:"Enumerator",url:"globals_eval.html"}, +{text:"Macros",url:"globals_defs.html",children:[ +{text:"o",url:"globals_defs.html#index_o"}, +{text:"s",url:"globals_defs_s.html#index_s"}]}]}]}]} diff --git a/liboqs/api/doxygen/navtree.css b/liboqs/api/doxygen/navtree.css new file mode 100644 index 0000000..0ea3a07 --- /dev/null +++ b/liboqs/api/doxygen/navtree.css @@ -0,0 +1,327 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0; + padding:0; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + position: relative; + background-color: var(--nav-menu-active-bg); + border-radius: 0 6px 6px 0; + /*margin-right: 5px;*/ +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px var(--font-family-nav); + line-height: 22px; +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:var(--page-link-color); +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin: 0 6px 0 -5px; + padding: 0 0 0 5px; + height: 22px; +} + +#nav-tree { + padding: 0px 0px; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + overflow : hidden; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + transition: opacity 0.5s ease; + background-color: var(--nav-splitbar-bg-color); + opacity:0; + cursor:col-resize; + height:100%; + right:0; + top:0; + width:6px; + position: relative; +} + +.ui-resizable-e:after { + content: ''; + display: block; + top: 50%; + left: 1px; + width: 2px; + height: 15px; + border-left: 1px solid var(--nav-splitbar-handle-color); + border-right: 1px solid var(--nav-splitbar-handle-color); + position: absolute; +} + +.ui-resizable-e:hover { + opacity: 1; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-color: var(--nav-background-color); + -webkit-overflow-scrolling : touch; /* iOS 5+ */ + scrollbar-width: thin; + border-right: 1px solid var(--nav-border-color); + padding-left: 5px; +} + +#nav-sync { + position:absolute; + top:0px; + right:0px; + z-index:1; +} + +#nav-sync img { + opacity:0.3; +} + +div.nav-sync-icon { + position: relative; + width: 24px; + height: 17px; + left: -6px; + top: -1px; + opacity: 0.7; + display: inline-block; + background-color: var(--sync-icon-background-color); + border: 1px solid var(--sync-icon-border-color); + box-sizing: content-box; +} + +div.nav-sync-icon:hover { + background-color: var(--sync-icon-selected-background-color); + opacity: 1.0; +} + +div.nav-sync-icon.active:after { + content: ''; + background-color: var(--sync-icon-background-color); + border-top: 2px solid var(--sync-icon-color); + position: absolute; + width: 16px; + height: 0px; + top: 7px; + left: 4px; +} + +div.nav-sync-icon.active:hover:after { + border-top: 2px solid var(--sync-icon-selected-color); +} + +span.sync-icon-left { + position: absolute; + padding: 0; + margin: 0; + top: 3px; + left: 4px; + display: inline-block; + width: 8px; + height: 8px; + border-left: 2px solid var(--sync-icon-color); + border-top: 2px solid var(--sync-icon-color); + transform: rotate(-45deg); +} + +span.sync-icon-right { + position: absolute; + padding: 0; + margin: 0; + top: 3px; + left: 10px; + display: inline-block; + width: 8px; + height: 8px; + border-right: 2px solid var(--sync-icon-color); + border-bottom: 2px solid var(--sync-icon-color); + transform: rotate(-45deg); +} + +div.nav-sync-icon:hover span.sync-icon-left { + border-left: 2px solid var(--sync-icon-selected-color); + border-top: 2px solid var(--sync-icon-selected-color); +} + +div.nav-sync-icon:hover span.sync-icon-right { + border-right: 2px solid var(--sync-icon-selected-color); + border-bottom: 2px solid var(--sync-icon-selected-color); +} + +#nav-path ul { + border-top: 1px solid var(--nav-breadcrumb-separator-color); +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + +/*---------------------------*/ +#container { + display: grid; + grid-template-columns: auto auto; + overflow: hidden; +} + +#page-nav { + background: var(--nav-background-color); + display: block; + width: 250px; + box-sizing: content-box; + position: relative; + border-left: 1px solid var(--nav-border-color); +} + +#page-nav-tree { + display: inline-block; +} + +#page-nav-resize-handle { + transition: opacity 0.5s ease; + background-color: var(--nav-splitbar-bg-color); + opacity:0; + cursor:col-resize; + height:100%; + right:0; + top:0; + width:6px; + position: relative; + z-index: 1; + user-select: none; +} + +#page-nav-resize-handle:after { + content: ''; + display: block; + top: 50%; + left: 1px; + width: 2px; + height: 15px; + border-left: 1px solid var(--nav-splitbar-handle-color); + border-right: 1px solid var(--nav-splitbar-handle-color); + position: absolute; +} + +#page-nav-resize-handle.dragging, +#page-nav-resize-handle:hover { + opacity: 1; +} + +#page-nav-contents { + padding: 0; + margin: 0; + display: block; + top: 0; + left: 0; + height: 100%; + width: 100%; + position: absolute; + overflow: auto; + scrollbar-width: thin; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +ul.page-outline, +ul.page-outline ul { + text-indent: 0; + list-style: none outside none; + padding: 0 0 0 4px; +} + +ul.page-outline { + margin: 0 4px 4px 6px; +} + +ul.page-outline div.item { + font: 12px var(--font-family-nav); + line-height: 22px; +} + +ul.page-outline li { + white-space: nowrap; +} + +ul.page-outline li.vis { + background-color: var(--nav-breadcrumb-active-bg); +} + +#container.resizing { + cursor: col-resize; + user-select: none; +} diff --git a/liboqs/api/doxygen/options-for-configuring-liboqs-builds.html b/liboqs/api/doxygen/options-for-configuring-liboqs-builds.html new file mode 100644 index 0000000..dac6af7 --- /dev/null +++ b/liboqs/api/doxygen/options-for-configuring-liboqs-builds.html @@ -0,0 +1,280 @@ + + + + + + + +liboqs: Options for configuring liboqs builds + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    +
    Options for configuring liboqs builds
    +
    +
    +

    +

    The following options can be passed to CMake before the build file generation process to customize the way liboqs is built. The syntax for doing so is: cmake .. [ARGS] [-D<OPTION_NAME>=<OPTION_VALUE>]..., where <OPTON_NAME> is:

    + +

    +BUILD_SHARED_LIBS

    +

    Can be set to ON or OFF. When ON, liboqs is built as a shared library.

    +

    Default: OFF.

    +

    This means liboqs is built as a static library by default.

    +

    +CMAKE_BUILD_TYPE

    +

    Can be set to the following values:

    +
      +
    • Debug: This turns off all compiler optimizations and produces debugging information. This value only has effect when the compiler is GCC or Clang
        +
      • The USE_COVERAGE option can also be specified to enable code coverage testing.
      • +
      • When the compiler is Clang, the USE_SANITIZER option can also be specified to enable a Clang sanitizer.
      • +
      +
    • +
    • Release: This compiles code at the O3 optimization level, and sets other compiler flags that reduce the size of the binary.
    • +
    +

    Default: Release.

    +

    +CMAKE_INSTALL_PREFIX

    +

    See the CMake documentation.

    +

    +OQS_ENABLE_KEM_ALG/OQS_ENABLE_SIG_ALG/OQS_ENABLE_SIG_STFL_ALG

    +

    Note: ALG in OQS_ENABLE_KEM_ALG/OQS_ENABLE_SIG_ALG/OQS_ENABLE_SIG_STFL_ALG should be replaced with the specific algorithm name as demonstrated below.

    +

    This can be set to ON or OFF, and is ON by default. When OFF, ALG and its code are excluded from the build process. When ON, made available are additional options whereby individual variants of ALG can be excluded from the build process.

    +

    For example: if OQS_ENABLE_KEM_BIKE is set to ON, the options OQS_ENABLE_KEM_bike_l1, OQS_ENABLE_KEM_bike_l3, and OQS_ENABLE_KEM_bike_l5 are made available (and are set to be ON by default).

    +

    To enable XMSS stateful signature, set OQS_ENABLE_SIG_STFL_XMSS to ON, the options OQS_ENABLE_SIG_STFL_xmss_sha256_h10 and its variants are also set to be ON by default. Similarly, LMS stateful signature family can also be enabled by setting OQS_ENABLE_SIG_STFL_LMS to ON.

    +

    For a full list of such options and their default values, consult .CMake/alg_support.cmake.

    +

    Default: Unset.

    +

    +OQS_ALGS_ENABLED

    +

    A selected algorithm set is enabled. Possible values are "STD" selecting all algorithms standardized by NIST; "NIST_R4" selecting all algorithms evaluated in round 4 of the NIST PQC competition; "NIST_SIG_ONRAMP" selecting algorithms evaluated in the NIST PQC "onramp" standardization for additional signature schemes; "All" (or any other value) selecting all algorithms integrated into liboqs. Parameter setting "STD" minimizes library size but may require re-running code generator scripts in projects integrating liboqs; e.g., oqs-provider and oqs-boringssl.

    +

    Attention: If you use any predefined value (STD or NIST_R4 or NIST_SIG_ONRAMP as of now) for this variable, the values added via OQS_ENABLE_KEM_ALG/OQS_ENABLE_SIG_ALG/OQS_ENABLE_SIG_STFL_ALG variables will be ignored.

    +

    Default: All.

    +

    +OQS_BUILD_ONLY_LIB

    +

    Can be ON or OFF. When ON, only liboqs is built, and all the targets: run_tests, gen_docs, and prettyprint are excluded from the build system.

    +

    Default: OFF.

    +

    +OQS_MINIMAL_BUILD

    +

    If set, this defines a semicolon-delimited list of algorithms to be contained in a minimal build of liboqs: Only algorithms explicitly set here are included in a build: For example running cmake -DOQS_MINIMAL_BUILD="KEM_ml_kem_768;SIG_ml_dsa_44" .. will build a minimum-size liboqs library only containing support for ML-KEM-768 and ML-DSA-44.

    +

    The full list of identifiers that can be set is listed here for KEM algorithms and here for Signature algorithms. The default setting is empty, thus including all supported algorithms in the build.

    +

    Default: Unset.

    +

    +OQS_DIST_BUILD

    +

    Can be ON or OFF. When ON, build liboqs for distribution. When OFF, build liboqs for use on a single machine.

    +

    The library is always built for a particular architecture, either x86-64, ARM32v7, or ARM64v8, depending on the setting of CMAKE_SYSTEM_PROCESSOR. But liboqs contains code that is optimized for micro-architectures as well, e.g. x86-64 with the AVX2 extension.

    +

    When built for distribution, the library will run on any CPU of the target architecture. Function calls will be dispatched to micro-architecture optimized routines at run-time using CPU feature detection.

    +

    When built for use on a single machine, the library will only include the best available code for the target micro-architecture (see OQS_OPT_TARGET).

    +

    Default: ON.

    +

    +OQS_USE_CPUFEATURE_INSTRUCTIONS

    +

    Note: CPUFEATURE in OQS_USE_CPUFEATURE_INSTRUCTIONS should be replaced with the specific CPU feature as noted below.

    +

    These can be set to ON or OFF and take effect if liboqs is built for use on a single machine. By default, the CPU features are automatically determined and set to ON or OFF based on the CPU features available on the build system. The default values can be overridden by providing CMake build options. The available options on x86-64 are: OQS_USE_ADX_INSTRUCTIONS, OQS_USE_AES_INSTRUCTIONS, OQS_USE_AVX_INSTRUCTIONS, OQS_USE_AVX2_INSTRUCTIONS, OQS_USE_AVX512_INSTRUCTIONS, OQS_USE_BMI1_INSTRUCTIONS, OQS_USE_BMI2_INSTRUCTIONS, OQS_USE_PCLMULQDQ_INSTRUCTIONS, OQS_USE_VPCLMULQDQ_INSTRUCTIONS, OQS_USE_POPCNT_INSTRUCTIONS, OQS_USE_SSE_INSTRUCTIONS, OQS_USE_SSE2_INSTRUCTIONS and OQS_USE_SSE3_INSTRUCTIONS. The available options on ARM64v8 are OQS_USE_ARM_AES_INSTRUCTIONS, OQS_USE_ARM_SHA2_INSTRUCTIONS, OQS_USE_ARM_SHA3_INSTRUCTIONS and OQS_USE_ARM_NEON_INSTRUCTIONS.

    +

    Default: Options valid on the build machine.

    +

    +OQS_USE_OPENSSL

    +

    To save size and limit the amount of different cryptographic code bases, it is possible to use OpenSSL as a crypto code provider by setting this configuration option.

    +

    This can be set to ON or OFF. When ON, the additional options OQS_USE_AES_OPENSSL, OQS_USE_SHA2_OPENSSL, and OQS_USE_SHA3_OPENSSL are made available to control whether liboqs uses OpenSSL's AES, SHA-2, and SHA-3 implementations.

    +

    By default,

      +
    • OQS_USE_AES_OPENSSL is ON (on x86-64 only if OQS_DIST_BUILD and OQS_USE_AES_INSTRUCTIONS are not set)
    • +
    • OQS_USE_SHA2_OPENSSL is ON
    • +
    • OQS_USE_SHA3_OPENSSL is OFF.
    • +
    +

    These default choices have been made to optimize the default performance of all algorithms. Changing them implies performance penalties.

    +

    When OQS_USE_OPENSSL is ON, CMake also scans the filesystem to find the minimum version of OpenSSL required by liboqs (which happens to be 1.1.1). The OPENSSL_ROOT_DIR option can be set to aid CMake in its search.

    +

    Default: ON.

    +

    +OQS_DLOPEN_OPENSSL

    +

    Dynamically load OpenSSL through dlopen. When using liboqs from other cryptographic libraries, hard dependency on OpenSSL is sometimes undesirable. If this option is ON, loading of OpenSSL will be deferred until any of the OpenSSL functions is used.

    +

    Only has an effect if the system supports dlopen and ELF binary format, such as Linux or BSD family.

    +

    +OQS_USE_CUPQC

    +

    Can be ON or OFF. When ON, use NVIDIA's cuPQC library where able (currently just ML-KEM). When this option is enabled, liboqs may not run correctly on machines that lack supported GPUs. To download cuPQC follow the instructions at (https://developer.nvidia.com/cupqc-download/). Detailed descriptions of the API, requirements, and installation guide are in the cuPQC documentation (https://docs.nvidia.com/cuda/cupqc/index.html). While the code shipped by liboqs required to use cuPQC is licensed under Apache 2.0 the cuPQC SDK comes with its own license agreement (https://docs.nvidia.com/cuda/cupqc/license.html).

    +

    Default: OFF

    +

    +OQS_USE_ICICLE

    +

    This CMake option can be set to ON or OFF. When enabled (ON), it configures liboqs to use ICICLE as the backend for supported post-quantum cryptographic (PQC) algorithms — currently ML-KEM. ICICLE is a GPU-accelerated cryptographic library developed by Ingonyama. It provides CUDA-based implementations of PQC algorithms to boost the performance on systems with compatible NVIDIA GPUs. To use ICICLE, the user needs to build and install the icicle_pqc_package, which contains the necessary CUDA kernels and runtime support. This package must be compiled separately before configuring liboqs with OQS_USE_ICICLE enabled, and its installation path should be made available to CMake.

    +

    Enabling this option also automatically enables C++ support in CMake, as required by ICICLE’s implementations.

    +

    To build ICICLE with the required PQC package:

    +
    cmake -S icicle -B "$BUILD_DIR" \
    +
    -DCMAKE_INSTALL_PREFIX="$INSTALL_DIR" \
    +
    -DCPU_BACKEND=OFF \
    +
    -DDISABLE_ALL_FEATURES=ON \
    +
    -DPQC=ON \
    +
    -DCUDA_PQC_BACKEND=ON \
    +
    -DICICLE_STATIC_LINK=ON \
    +
    -DPQC_PACKAGE=ON
    +
    cmake --build "$BUILD_DIR"
    +
    cmake --install "$BUILD_DIR"
    +

    For full documentation, setup instructions, and backend support details, see the Ingonyama documentation

    +

    Default: OFF.

    +

    +Stateful Hash Based Signatures

    +

    XMSS and LMS are the two supported Hash-Based Signatures schemes. OQS_ENABLE_SIG_STFL_XMSS and OQS_ENABLE_SIG_STFL_LMS control these algorithms, which are disabled by default. A third variable, OQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN, also controls the ability to generate keys and signatures. This is also disabled by default. Each of these variables can be set to ON or OFF. When all three are ON, stateful signatures are fully functional and can generate key pairs, sign data, and verify signatures. If OQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN is OFF signature verification is the only functional operation.

    +

    Standards bodies, such as NIST, recommend that key and signature generation only by done in hardware in order to best enforce the one-time use of secret keys. Keys stored in a file system are extremely susceptible to simultaneous use. When enabled in this library a warning message will be generated by the config process. The name of the configuration variable has been chosen to make every user of this feature aware of its security risks. The OQS team explicitly discourages enabling this variable and reserves the right to remove this feature in future releases if its use causes actual harm. It remains present as long as it is responsibly used as per the stated warnings.

    +

    By default,

      +
    • OQS_ENABLE_SIG_STFL_XMSS is OFF
    • +
    • OQS_ENABLE_SIG_STFL_LMS is OFF
    • +
    • OQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN is OFF.
    • +
    +

    Default: OFF.

    +

    +OQS_OPT_TARGET

    +

    An optimization target. Only has an effect if the compiler is GCC or Clang and OQS_DIST_BUILD=OFF. Can take any valid input to the -march (on x86-64) or -mcpu (on ARM32v7 or ARM64v8) option for CMAKE_C_COMPILER. Can also be set to one of the following special values.

      +
    • auto: Use -march=native or -mcpu=native (if the compiler supports it).
    • +
    • generic: Use -march=x86-64 on x86-64, or -mcpu=cortex-a5 on ARM32v7, or -mcpu=cortex-a53 on ARM64v8.
    • +
    +

    Default: auto.

    +

    +OQS_SPEED_USE_ARM_PMU

    +

    Can be ON or OFF. When ON, the benchmarking script will try to use the ARMv8 Performance Monitoring Unit (PMU). This will make cycle counts on ARMv8 platforms significantly more accurate.

    +

    In order to use this option, user mode access to the PMU must be enabled via a kernel module. If user mode access is not enabled via the kernel module, benchmarking will throw an Illegal Instruction error. A kernel module that has been found to work on several platforms can be found here for Linux. Follow the instructions there (i.e., clone the repository, cd enable_ccr and make install) to load the kernel module, after which benchmarking should work. Superuser permissions are required. Linux header files must also be installed on your platform, which may not be present by default.

    +

    Note that this option is not known to work on Apple M1 chips.

    +

    Default: OFF.

    +

    +USE_COVERAGE

    +

    This has an effect when the compiler is GCC or Clang and when CMAKE_BUILD_TYPE is Debug. Can be ON or OFF. When ON, code coverage testing will be enabled.

    +

    Default: Unset.

    +

    +USE_SANITIZER

    +

    This has an effect when the compiler is Clang and when CMAKE_BUILD_TYPE is Debug. Then, it can be set to:

    +
      +
    • Address: This enables Clang's AddressSanitizer
    • +
    • Memory: This enables Clang's MemorySanitizer
    • +
    • MemoryWithOrigins: This enables Clang's MemorySanitizer with the added functionality of being able to track the origins of uninitialized values
    • +
    • Undefined: This enables Clang's UndefinedBehaviorSanitizer. The BLACKLIST_FILE option can be additionally set to a path to a file listing the entities Clang should ignore.
    • +
    • Thread: This enables Clang's ThreadSanitizer
    • +
    • Leak: This enables Clang's LeakSanitizer
    • +
    +

    Default: Unset.

    +

    +OQS_ENABLE_TEST_CONSTANT_TIME

    +

    This is used in conjunction with tests/test_constant_time.py to use Valgrind to look for instances of secret-dependent control flow. liboqs must also be compiled with CMAKE_BUILD_TYPE set to Debug.
    +

    +

    See the documentation in tests/test_constant_time.py for more usage information.

    +

    When this option is set to ON, the additional option OQS_ENABLE_TEST_CONSTANT_TIME_OPTIMIZED is made available to control whether liboqs is built using -O3 optimization, as in a release build, or using the default "Debug" profile. By default, OQS_ENABLE_TEST_CONSTANT_TIME_OPTIMIZED is OFF.

    +

    Default: OFF.

    +

    +OQS_STRICT_WARNINGS

    +

    Can be ON or OFF. When ON, all compiler warnings are enabled and treated as errors. This setting is recommended to be enabled prior to submission of a Pull Request as CI runs with this setting active. When OFF, significantly fewer compiler warnings are enabled such as to avoid undue build errors triggered by (future) compiler warning features/unknown at the development time of this library.

    +

    Default: OFF.

    +

    +OQS_EMBEDDED_BUILD

    +

    Can be ON or OFF. When ON, calls to standard library functions typically not present in a bare-metal embedded environment are excluded from compilation.

    +

    At the moment, this is only considered for random number generation, as both getentropy() and a file based /dev/urandom are not available on embedded targets (e.g. the Zephyr port).

    +

    Attention: When this option is enabled, you have to supply a custom callback for obtaining random numbers using the OQS_randombytes_custom_algorithm() API before accessing the cryptographic API. Otherwise, all key generation and signing operations will fail.

    +

    Default: OFF.

    +

    +OQS_LIBJADE_BUILD

    +

    Can be ON or OFF. When ON liboqs is built to use high assurance implementations of cryptographic algorithms from Libjade. The cryptographic primitives in Libjade are written using Jasmin and built using the Jasmin compiler. The Jasmin compiler is proven (in Coq) to preserve semantic correctness of a program, maintain secret-independence of control flow, and maintain secret independence of locations of memory access through compilation. Additionally, the Jasmin compiler guarantees thread safety because Jasmin doesn't support global variables.

    +

    At the moment, Libjade only provides Kyber512 and Kyber768 KEMs.

    +

    At the moment, libjade only supports Linux and Darwin based operating systems on x86_64 platforms.

    +

    Default OFF.

    +

    +OQS_ENABLE_LIBJADE_KEM_ALG/OQS_ENABLE_LIBJADE_SIG_ALG

    +

    Note: ALG in OQS_ENABLE_LIBJADE_KEM_ALG/OQS_ENABLE_LIBJADE_SIG_ALG should be replaced with the specific algorithm name as demonstrated in OQS_ENABLE_KEM_ALG/OQS_ENABLE_SIG_ALG.

    +

    Default: OFF if OQS_LIBJADE_BUILD is OFF else unset.

    +

    +OQS_BUILD_FUZZ_TESTS

    +

    Can be ON or OFF. When ON liboqs the fuzz test-suite will be enabled. This option is only available if the c compiler is set to clang i.e. -DCMAKE_C_COMPILER=clang.

    +

    Note: It is strongly recommended that this configuration be enabled with CFLAGS=-fsanitize=address,fuzzer-no-link LDFLAGS=-fsanitize=address. While fuzzing will run without these flags, enabling this instrumentation will make fuzzing performance much faster and catch potential memory related bugs.

    +

    Default OFF.

    +
    +
    + + +
    + + diff --git a/liboqs/api/doxygen/pages.html b/liboqs/api/doxygen/pages.html new file mode 100644 index 0000000..c2a05fe --- /dev/null +++ b/liboqs/api/doxygen/pages.html @@ -0,0 +1,97 @@ + + + + + + + +liboqs: Related Pages + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + +
    +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Related Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    +
    + + +
    + + diff --git a/liboqs/api/doxygen/rand_8h.html b/liboqs/api/doxygen/rand_8h.html new file mode 100644 index 0000000..baed4e3 --- /dev/null +++ b/liboqs/api/doxygen/rand_8h.html @@ -0,0 +1,236 @@ + + + + + + + +liboqs: src/common/rand/rand.h File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    + +
    rand.h File Reference
    +
    +
    + +

    Random number generator. +More...

    +
    #include <stdbool.h>
    +#include <stddef.h>
    +#include <stdint.h>
    +#include <oqs/common.h>
    +
    +

    Go to the source code of this file.

    + + + + +

    +Macros

    #define OQS_RAND_alg_system   "system"
    #define OQS_RAND_alg_openssl   "OpenSSL"
    + + + + +

    +Functions

    OQS_API OQS_STATUS OQS_randombytes_switch_algorithm (const char *algorithm)
    OQS_API void OQS_randombytes_custom_algorithm (void(*algorithm_ptr)(uint8_t *, size_t))
    OQS_API void OQS_randombytes (uint8_t *random_array, size_t bytes_to_read)
    +

    Detailed Description

    +

    Random number generator.

    +

    SPDX-License-Identifier: MIT

    +

    Macro Definition Documentation

    + +

    ◆ OQS_RAND_alg_openssl

    + +
    +
    + + + + +
    #define OQS_RAND_alg_openssl   "OpenSSL"
    +
    +

    Algorithm identifier for using OpenSSL's PRNG.

    + +
    +
    + +

    ◆ OQS_RAND_alg_system

    + +
    +
    + + + + +
    #define OQS_RAND_alg_system   "system"
    +
    +

    Algorithm identifier for system PRNG.

    + +
    +
    +

    Function Documentation

    + +

    ◆ OQS_randombytes()

    + +
    +
    + + + + + + + + + + + +
    OQS_API void OQS_randombytes (uint8_t * random_array,
    size_t bytes_to_read )
    +
    +

    Fills the given memory with the requested number of (pseudo)random bytes.

    +

    This implementation uses whichever algorithm has been selected by OQS_randombytes_switch_algorithm. The default is OQS_randombytes_system, which reads bytes from a system specific default source.

    +

    The caller is responsible for providing a buffer allocated with sufficient room.

    +
    Parameters
    + + + +
    [out]random_arrayPointer to the memory to fill with (pseudo)random bytes
    [in]bytes_to_readThe number of random bytes to read into memory
    +
    +
    + +
    +
    + +

    ◆ OQS_randombytes_custom_algorithm()

    + +
    +
    + + + + + + + +
    OQS_API void OQS_randombytes_custom_algorithm (void(* algorithm_ptr )(uint8_t *, size_t))
    +
    +

    Switches OQS_randombytes to use the given function.

    +

    This allows additional custom RNGs besides the provided ones. The provided RNG function must have the same signature as OQS_randombytes.

    +
    Parameters
    + + +
    [in]algorithm_ptrPointer to the RNG function to use.
    +
    +
    + +
    +
    + +

    ◆ OQS_randombytes_switch_algorithm()

    + +
    +
    + + + + + + + +
    OQS_API OQS_STATUS OQS_randombytes_switch_algorithm (const char * algorithm)
    +
    +

    Switches OQS_randombytes to use the specified algorithm.

    +
    Warning
    In case you have set a custom algorithm using OQS_randombytes_custom_algorithm before, this function will overwrite it again. Hence, you have to set your custom algorithm again after calling this function.
    +
    Parameters
    + + +
    [in]algorithmThe name of the algorithm to use.
    +
    +
    +
    Returns
    OQS_SUCCESS if algorithm is a supported algorithm name, OQS_ERROR otherwise.
    + +
    +
    +
    + + +
    + + diff --git a/liboqs/api/doxygen/rand_8h_source.html b/liboqs/api/doxygen/rand_8h_source.html new file mode 100644 index 0000000..ba9ebcb --- /dev/null +++ b/liboqs/api/doxygen/rand_8h_source.html @@ -0,0 +1,129 @@ + + + + + + + +liboqs: src/common/rand/rand.h Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    +
    rand.h
    +
    +
    +Go to the documentation of this file.
    1
    +
    7
    +
    8#ifndef OQS_RANDOM_H
    +
    9#define OQS_RANDOM_H
    +
    10
    +
    11#include <stdbool.h>
    +
    12#include <stddef.h>
    +
    13#include <stdint.h>
    +
    14
    +
    15#include <oqs/common.h>
    +
    16
    +
    17#if defined(__cplusplus)
    +
    18extern "C" {
    +
    19#endif
    +
    20
    +
    22#define OQS_RAND_alg_system "system"
    +
    24#define OQS_RAND_alg_openssl "OpenSSL"
    +
    25
    + +
    37
    +
    46OQS_API void OQS_randombytes_custom_algorithm(void (*algorithm_ptr)(uint8_t *, size_t));
    +
    47
    +
    60OQS_API void OQS_randombytes(uint8_t *random_array, size_t bytes_to_read);
    +
    61
    +
    62#if defined(__cplusplus)
    +
    63} // extern "C"
    +
    64#endif
    +
    65
    +
    66#endif // OQS_RANDOM_H
    +
    #define OQS_API
    Definition common.h:94
    +
    OQS_STATUS
    Definition common.h:116
    +
    OQS_API OQS_STATUS OQS_randombytes_switch_algorithm(const char *algorithm)
    +
    OQS_API void OQS_randombytes(uint8_t *random_array, size_t bytes_to_read)
    +
    OQS_API void OQS_randombytes_custom_algorithm(void(*algorithm_ptr)(uint8_t *, size_t))
    +
    + + +
    + + diff --git a/liboqs/api/doxygen/search/all_0.js b/liboqs/api/doxygen/search/all_0.js new file mode 100644 index 0000000..e1b6886 --- /dev/null +++ b/liboqs/api/doxygen/search/all_0.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['a_20vulnerability_0',['Reporting a Vulnerability',['../security-policy.html#reporting-a-vulnerability',1,'']]], + ['acknowledgements_1',['Acknowledgements',['../index.html#acknowledgements',1,'']]], + ['aes128_5fctr_5finc_5finit_2',['AES128_CTR_inc_init',['../struct_o_q_s___a_e_s__callbacks.html#ab55649e9a63473bfc4e93d78aadd4875',1,'OQS_AES_callbacks']]], + ['aes128_5fctr_5finc_5fiv_3',['AES128_CTR_inc_iv',['../struct_o_q_s___a_e_s__callbacks.html#aae59d7c479219243a6e9acdbc84bfcd6',1,'OQS_AES_callbacks']]], + ['aes128_5fctr_5finc_5fivu64_4',['AES128_CTR_inc_ivu64',['../struct_o_q_s___a_e_s__callbacks.html#a7d5d60f6bc62119363e68568160a9b2f',1,'OQS_AES_callbacks']]], + ['aes128_5fctr_5finc_5fstream_5fiv_5',['AES128_CTR_inc_stream_iv',['../struct_o_q_s___a_e_s__callbacks.html#a79748e4e85b20086ae5dab3be3882b16',1,'OQS_AES_callbacks']]], + ['aes128_5fecb_5fenc_6',['AES128_ECB_enc',['../struct_o_q_s___a_e_s__callbacks.html#ac838015e463a74b29d1516b3e9fb729d',1,'OQS_AES_callbacks']]], + ['aes128_5fecb_5fenc_5fsch_7',['AES128_ECB_enc_sch',['../struct_o_q_s___a_e_s__callbacks.html#a876efdb674286a8ea051f634804691ab',1,'OQS_AES_callbacks']]], + ['aes128_5fecb_5fload_5fschedule_8',['AES128_ECB_load_schedule',['../struct_o_q_s___a_e_s__callbacks.html#afa419bada36cb35760059ce77e661aeb',1,'OQS_AES_callbacks']]], + ['aes128_5ffree_5fschedule_9',['AES128_free_schedule',['../struct_o_q_s___a_e_s__callbacks.html#a32395225aa2ed29704dbe14eb2f5b56e',1,'OQS_AES_callbacks']]], + ['aes256_5fctr_5finc_5finit_10',['AES256_CTR_inc_init',['../struct_o_q_s___a_e_s__callbacks.html#a4d5edae1a75d603195107bf47189c05d',1,'OQS_AES_callbacks']]], + ['aes256_5fctr_5finc_5fiv_11',['AES256_CTR_inc_iv',['../struct_o_q_s___a_e_s__callbacks.html#afbfd2d9c88c871d28838f69401211125',1,'OQS_AES_callbacks']]], + ['aes256_5fctr_5finc_5fivu64_12',['AES256_CTR_inc_ivu64',['../struct_o_q_s___a_e_s__callbacks.html#a8403db58fa86c9ca066c8438a0721802',1,'OQS_AES_callbacks']]], + ['aes256_5fctr_5finc_5fstream_5fblks_13',['AES256_CTR_inc_stream_blks',['../struct_o_q_s___a_e_s__callbacks.html#a0ecc8530ea993ac5251a340faefa6fb4',1,'OQS_AES_callbacks']]], + ['aes256_5fctr_5finc_5fstream_5fiv_14',['AES256_CTR_inc_stream_iv',['../struct_o_q_s___a_e_s__callbacks.html#a45a5febf432c943510234b64894ca4a0',1,'OQS_AES_callbacks']]], + ['aes256_5fecb_5fenc_15',['AES256_ECB_enc',['../struct_o_q_s___a_e_s__callbacks.html#a75e741315f30de3e205f41f15fbd2454',1,'OQS_AES_callbacks']]], + ['aes256_5fecb_5fenc_5fsch_16',['AES256_ECB_enc_sch',['../struct_o_q_s___a_e_s__callbacks.html#abba5e0f95e03f8f116cdd26cb306dea9',1,'OQS_AES_callbacks']]], + ['aes256_5fecb_5fload_5fschedule_17',['AES256_ECB_load_schedule',['../struct_o_q_s___a_e_s__callbacks.html#a46553107497068c78e7f0155d16ed5fc',1,'OQS_AES_callbacks']]], + ['aes256_5ffree_5fschedule_18',['AES256_free_schedule',['../struct_o_q_s___a_e_s__callbacks.html#a2e28d451bbef2bab8847fbb1fcd739de',1,'OQS_AES_callbacks']]], + ['aes_5fops_2eh_19',['aes_ops.h',['../aes__ops_8h.html',1,'']]], + ['alg_5fversion_20',['alg_version',['../struct_o_q_s___k_e_m.html#a9e47e727de17dc76e287dd724544e647',1,'OQS_KEM::alg_version'],['../struct_o_q_s___s_i_g.html#a7c1325fef5db857b5fcbb185addcfdcc',1,'OQS_SIG::alg_version']]], + ['algorithms_21',['Supported Algorithms',['../index.html#supported-algorithms',1,'']]], + ['and_20mac_22',['Linux and Mac',['../index.html#linux-and-mac',1,'']]], + ['and_20security_23',['Limitations and Security',['../index.html#limitations-and-security',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/all_1.js b/liboqs/api/doxygen/search/all_1.js new file mode 100644 index 0000000..2129370 --- /dev/null +++ b/liboqs/api/doxygen/search/all_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['based_20signatures_0',['Stateful Hash Based Signatures',['../options-for-configuring-liboqs-builds.html#stateful-hash-based-signatures',1,'']]], + ['build_5fshared_5flibs_1',['BUILD_SHARED_LIBS',['../options-for-configuring-liboqs-builds.html#bUILD_SHARED_LIBS',1,'']]], + ['builds_2',['Options for configuring liboqs builds',['../options-for-configuring-liboqs-builds.html',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/all_10.js b/liboqs/api/doxygen/search/all_10.js new file mode 100644 index 0000000..2449b80 --- /dev/null +++ b/liboqs/api/doxygen/search/all_10.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['threat_20model_0',['Threat Model',['../security-policy.html#threat-model',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/all_11.js b/liboqs/api/doxygen/search/all_11.js new file mode 100644 index 0000000..48174b1 --- /dev/null +++ b/liboqs/api/doxygen/search/all_11.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['unlock_5fkey_0',['unlock_key',['../struct_o_q_s___s_i_g___s_t_f_l___s_e_c_r_e_t___k_e_y.html#a22c4581a0a281a12388e5e42bddeb49d',1,'OQS_SIG_STFL_SECRET_KEY::unlock_key'],['../sig__stfl_8h.html#a6d89957418dda352b307d4b036d12b77',1,'unlock_key: sig_stfl.h']]], + ['use_5fcoverage_1',['USE_COVERAGE',['../options-for-configuring-liboqs-builds.html#uSE_COVERAGE',1,'']]], + ['use_5fsanitizer_2',['USE_SANITIZER',['../options-for-configuring-liboqs-builds.html#uSE_SANITIZER',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/all_12.js b/liboqs/api/doxygen/search/all_12.js new file mode 100644 index 0000000..444bc27 --- /dev/null +++ b/liboqs/api/doxygen/search/all_12.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['verify_0',['verify',['../struct_o_q_s___s_i_g.html#a8b02ae883d9793b52754050f2b684d1c',1,'OQS_SIG']]], + ['verify_5fwith_5fctx_5fstr_1',['verify_with_ctx_str',['../struct_o_q_s___s_i_g.html#a6f4967aea092caeb41e8c82aceca09f5',1,'OQS_SIG']]], + ['versions_2',['Supported Versions',['../security-policy.html#supported-versions',1,'']]], + ['vulnerability_3',['Reporting a Vulnerability',['../security-policy.html#reporting-a-vulnerability',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/all_13.js b/liboqs/api/doxygen/search/all_13.js new file mode 100644 index 0000000..9f08099 --- /dev/null +++ b/liboqs/api/doxygen/search/all_13.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['windows_0',['Windows',['../index.html#windows',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/all_2.js b/liboqs/api/doxygen/search/all_2.js new file mode 100644 index 0000000..2aeda15 --- /dev/null +++ b/liboqs/api/doxygen/search/all_2.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['claimed_5fnist_5flevel_0',['claimed_nist_level',['../struct_o_q_s___k_e_m.html#a6e447d9628c08bfe6e38689c6f8c0ed4',1,'OQS_KEM::claimed_nist_level'],['../struct_o_q_s___s_i_g.html#af238a9d639b7dc14accfb60c2d530b9a',1,'OQS_SIG::claimed_nist_level']]], + ['cmake_5fbuild_5ftype_1',['CMAKE_BUILD_TYPE',['../options-for-configuring-liboqs-builds.html#cMAKE_BUILD_TYPE',1,'']]], + ['cmake_5finstall_5fprefix_2',['CMAKE_INSTALL_PREFIX',['../options-for-configuring-liboqs-builds.html#cMAKE_INSTALL_PREFIX',1,'']]], + ['common_2eh_3',['common.h',['../common_8h.html',1,'']]], + ['compilation_4',['Cross compilation',['../index.html#cross-compilation',1,'']]], + ['configuring_20liboqs_20builds_5',['Options for configuring liboqs builds',['../options-for-configuring-liboqs-builds.html',1,'']]], + ['context_6',['context',['../struct_o_q_s___s_i_g___s_t_f_l___s_e_c_r_e_t___k_e_y.html#ab565887329aaee3216ba0b747d16e946',1,'OQS_SIG_STFL_SECRET_KEY']]], + ['contributing_7',['Contributing',['../index.html#contributing',1,'']]], + ['cross_20compilation_8',['Cross compilation',['../index.html#cross-compilation',1,'']]], + ['ctx_9',['ctx',['../struct_o_q_s___s_h_a2__sha224__ctx.html#a831b732db6ba10fa4ca40d2c8ee9a7e0',1,'OQS_SHA2_sha224_ctx::ctx'],['../struct_o_q_s___s_h_a2__sha256__ctx.html#aa6e01b99eb8c76bd58a7a9a10ea1d48d',1,'OQS_SHA2_sha256_ctx::ctx'],['../struct_o_q_s___s_h_a2__sha384__ctx.html#aae9abec5dd4251b95116d871bd2c96f1',1,'OQS_SHA2_sha384_ctx::ctx'],['../struct_o_q_s___s_h_a2__sha512__ctx.html#ada8c4880ba528fd197ae613d09821145',1,'OQS_SHA2_sha512_ctx::ctx'],['../struct_o_q_s___s_h_a3__sha3__256__inc__ctx.html#a44f6844cf55dcc747b9799ea05e34be5',1,'OQS_SHA3_sha3_256_inc_ctx::ctx'],['../struct_o_q_s___s_h_a3__sha3__384__inc__ctx.html#acd71fdcccc64cf9b1c37022d515d8d41',1,'OQS_SHA3_sha3_384_inc_ctx::ctx'],['../struct_o_q_s___s_h_a3__sha3__512__inc__ctx.html#a4ea624baddf799d3c2072b19ca9baa7a',1,'OQS_SHA3_sha3_512_inc_ctx::ctx'],['../struct_o_q_s___s_h_a3__shake128__inc__ctx.html#a7f88f5fcf996c6893030e865bf6f63b5',1,'OQS_SHA3_shake128_inc_ctx::ctx'],['../struct_o_q_s___s_h_a3__shake256__inc__ctx.html#acccf07752a8f96dfb2c9d9e149d838e7',1,'OQS_SHA3_shake256_inc_ctx::ctx'],['../struct_o_q_s___s_h_a3__shake128__x4__inc__ctx.html#a8a549bd4b135cf30aa008fd21ea48582',1,'OQS_SHA3_shake128_x4_inc_ctx::ctx'],['../struct_o_q_s___s_h_a3__shake256__x4__inc__ctx.html#af09b964e24489418568308c31aa10585',1,'OQS_SHA3_shake256_x4_inc_ctx::ctx']]] +]; diff --git a/liboqs/api/doxygen/search/all_3.js b/liboqs/api/doxygen/search/all_3.js new file mode 100644 index 0000000..a2d600d --- /dev/null +++ b/liboqs/api/doxygen/search/all_3.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['data_0',['data',['../struct_o_q_s___s_h_a2__sha224__ctx.html#a6076d0d886f2d75387c7a055a41cf89c',1,'OQS_SHA2_sha224_ctx::data'],['../struct_o_q_s___s_h_a2__sha256__ctx.html#a7ab25d6a3f8a7a9857d3af8a972fe6f2',1,'OQS_SHA2_sha256_ctx::data'],['../struct_o_q_s___s_h_a2__sha384__ctx.html#a2ba7111068dadbfcf5c8bcf6c7c83e02',1,'OQS_SHA2_sha384_ctx::data'],['../struct_o_q_s___s_h_a2__sha512__ctx.html#a37d8ca19b95461ff441d97015bb0d313',1,'OQS_SHA2_sha512_ctx::data']]], + ['data_5flen_1',['data_len',['../struct_o_q_s___s_h_a2__sha224__ctx.html#a8291e4e4f7367b1e4df155c10b1af25b',1,'OQS_SHA2_sha224_ctx::data_len'],['../struct_o_q_s___s_h_a2__sha256__ctx.html#ab6cf7db5e798b4d51bdc037914c1b682',1,'OQS_SHA2_sha256_ctx::data_len'],['../struct_o_q_s___s_h_a2__sha384__ctx.html#a1c4baf7003d785e5f2333778b998eff9',1,'OQS_SHA2_sha384_ctx::data_len'],['../struct_o_q_s___s_h_a2__sha512__ctx.html#a202a6fb4aec94fb01b01bbf9ecb85834',1,'OQS_SHA2_sha512_ctx::data_len']]], + ['decaps_2',['decaps',['../struct_o_q_s___k_e_m.html#a829c4f103b2554e40652c5f02b2d592b',1,'OQS_KEM']]], + ['deserialize_5fkey_3',['deserialize_key',['../struct_o_q_s___s_i_g___s_t_f_l___s_e_c_r_e_t___k_e_y.html#a4868dc05acd46dfa4d4fcde013333e7b',1,'OQS_SIG_STFL_SECRET_KEY']]], + ['documentation_4',['Documentation',['../index.html#documentation',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/all_4.js b/liboqs/api/doxygen/search/all_4.js new file mode 100644 index 0000000..d06707d --- /dev/null +++ b/liboqs/api/doxygen/search/all_4.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['encaps_0',['encaps',['../struct_o_q_s___k_e_m.html#a8aaaaa79f1763d9113274d1f29a5f0aa',1,'OQS_KEM']]], + ['encaps_5fderand_1',['encaps_derand',['../struct_o_q_s___k_e_m.html#aedefeca29819ab3014ebad12c9c6ef1e',1,'OQS_KEM']]], + ['encapsulation_20mechanisms_2',['Key encapsulation mechanisms',['../index.html#key-encapsulation-mechanisms',1,'']]], + ['euf_5fcma_3',['euf_cma',['../struct_o_q_s___s_i_g.html#a23c206f5d72c8f94fdcebf9276456693',1,'OQS_SIG']]] +]; diff --git a/liboqs/api/doxygen/search/all_5.js b/liboqs/api/doxygen/search/all_5.js new file mode 100644 index 0000000..2b7442e --- /dev/null +++ b/liboqs/api/doxygen/search/all_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['for_20configuring_20liboqs_20builds_0',['Options for configuring liboqs builds',['../options-for-configuring-liboqs-builds.html',1,'']]], + ['free_5fkey_1',['free_key',['../struct_o_q_s___s_i_g___s_t_f_l___s_e_c_r_e_t___k_e_y.html#aa810d88f323e9cc0c4d019059153323d',1,'OQS_SIG_STFL_SECRET_KEY']]] +]; diff --git a/liboqs/api/doxygen/search/all_6.js b/liboqs/api/doxygen/search/all_6.js new file mode 100644 index 0000000..a8fc6e2 --- /dev/null +++ b/liboqs/api/doxygen/search/all_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['hash_20based_20signatures_0',['Stateful Hash Based Signatures',['../options-for-configuring-liboqs-builds.html#stateful-hash-based-signatures',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/all_7.js b/liboqs/api/doxygen/search/all_7.js new file mode 100644 index 0000000..a4e88b4 --- /dev/null +++ b/liboqs/api/doxygen/search/all_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ind_5fcca_0',['ind_cca',['../struct_o_q_s___k_e_m.html#af7d1d10e2ad38d4454b7f8cd07786042',1,'OQS_KEM']]] +]; diff --git a/liboqs/api/doxygen/search/all_8.js b/liboqs/api/doxygen/search/all_8.js new file mode 100644 index 0000000..a2539da --- /dev/null +++ b/liboqs/api/doxygen/search/all_8.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['kem_2eh_0',['kem.h',['../kem_8h.html',1,'']]], + ['key_20encapsulation_20mechanisms_1',['Key encapsulation mechanisms',['../index.html#key-encapsulation-mechanisms',1,'']]], + ['keypair_2',['keypair',['../struct_o_q_s___k_e_m.html#afcabcd83ecb1f34bca47aacc279e39c0',1,'OQS_KEM::keypair'],['../struct_o_q_s___s_i_g.html#a26135e78c43fd4d4c7a0cf69cd4fe74f',1,'OQS_SIG::keypair']]], + ['keypair_5fderand_3',['keypair_derand',['../struct_o_q_s___k_e_m.html#a871642e2e29b925d6d20df9d7357b447',1,'OQS_KEM']]] +]; diff --git a/liboqs/api/doxygen/search/all_9.js b/liboqs/api/doxygen/search/all_9.js new file mode 100644 index 0000000..90e2bd4 --- /dev/null +++ b/liboqs/api/doxygen/search/all_9.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['length_5fciphertext_0',['length_ciphertext',['../struct_o_q_s___k_e_m.html#a35353f8a763072d47eac6f522deb3b34',1,'OQS_KEM']]], + ['length_5fencaps_5fseed_1',['length_encaps_seed',['../struct_o_q_s___k_e_m.html#af63c5defc6f42c6047cba41cc7b3d452',1,'OQS_KEM']]], + ['length_5fkeypair_5fseed_2',['length_keypair_seed',['../struct_o_q_s___k_e_m.html#a7b13353aa58a23fcf237fbb64f8ab0e5',1,'OQS_KEM']]], + ['length_5fpublic_5fkey_3',['length_public_key',['../struct_o_q_s___k_e_m.html#ab5117825a4adc8a02507c070d685f020',1,'OQS_KEM::length_public_key'],['../struct_o_q_s___s_i_g.html#a3a59929903e56e4b30b9b5358d7afa67',1,'OQS_SIG::length_public_key']]], + ['length_5fsecret_5fkey_4',['length_secret_key',['../struct_o_q_s___k_e_m.html#a6e05a35b4970bb9206da808739afec12',1,'OQS_KEM::length_secret_key'],['../struct_o_q_s___s_i_g.html#a05466b7167722d6d94df8988e233112e',1,'OQS_SIG::length_secret_key'],['../struct_o_q_s___s_i_g___s_t_f_l___s_e_c_r_e_t___k_e_y.html#a420a4b0415d391e3b24bc522ff41d67b',1,'OQS_SIG_STFL_SECRET_KEY::length_secret_key']]], + ['length_5fshared_5fsecret_5',['length_shared_secret',['../struct_o_q_s___k_e_m.html#a2c4950cde0f80a1db2918a426ce44c13',1,'OQS_KEM']]], + ['length_5fsignature_6',['length_signature',['../struct_o_q_s___s_i_g.html#a14fa2c5cf1e6521fbeadabdaba21fe53',1,'OQS_SIG']]], + ['liboqs_7',['liboqs',['../index.html',1,'']]], + ['liboqs_20builds_8',['Options for configuring liboqs builds',['../options-for-configuring-liboqs-builds.html',1,'']]], + ['license_9',['License',['../index.html#license',1,'']]], + ['limitations_10',['limitations',['../index.html#platform-limitations',1,'Platform limitations'],['../index.html#support-limitations',1,'Support limitations']]], + ['limitations_20and_20security_11',['Limitations and Security',['../index.html#limitations-and-security',1,'']]], + ['linux_20and_20mac_12',['Linux and Mac',['../index.html#linux-and-mac',1,'']]], + ['lock_5fkey_13',['lock_key',['../struct_o_q_s___s_i_g___s_t_f_l___s_e_c_r_e_t___k_e_y.html#a23a70cdebb591e8a4204e7c171a75037',1,'OQS_SIG_STFL_SECRET_KEY::lock_key'],['../sig__stfl_8h.html#ac1f6fb06b169233a007f9cce118bc64a',1,'lock_key: sig_stfl.h']]] +]; diff --git a/liboqs/api/doxygen/search/all_a.js b/liboqs/api/doxygen/search/all_a.js new file mode 100644 index 0000000..7867eb7 --- /dev/null +++ b/liboqs/api/doxygen/search/all_a.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['mac_0',['Linux and Mac',['../index.html#linux-and-mac',1,'']]], + ['mechanisms_1',['Key encapsulation mechanisms',['../index.html#key-encapsulation-mechanisms',1,'']]], + ['method_5fname_2',['method_name',['../struct_o_q_s___k_e_m.html#a05b0519549aa1c6ba4854e98ba7d4eda',1,'OQS_KEM::method_name'],['../struct_o_q_s___s_i_g.html#a322b3ab6dbb71cc4b46856b644714499',1,'OQS_SIG::method_name']]], + ['model_3',['Threat Model',['../security-policy.html#threat-model',1,'']]], + ['mutex_4',['mutex',['../struct_o_q_s___s_i_g___s_t_f_l___s_e_c_r_e_t___k_e_y.html#a69c415ad44bb6ac714f7938331ba4ccb',1,'OQS_SIG_STFL_SECRET_KEY']]] +]; diff --git a/liboqs/api/doxygen/search/all_b.js b/liboqs/api/doxygen/search/all_b.js new file mode 100644 index 0000000..544d799 --- /dev/null +++ b/liboqs/api/doxygen/search/all_b.js @@ -0,0 +1,447 @@ +var searchData= +[ + ['options_20for_20configuring_20liboqs_20builds_0',['Options for configuring liboqs builds',['../options-for-configuring-liboqs-builds.html',1,'']]], + ['oqs_5faes_5fcallbacks_1',['OQS_AES_callbacks',['../struct_o_q_s___a_e_s__callbacks.html',1,'']]], + ['oqs_5faes_5fset_5fcallbacks_2',['OQS_AES_set_callbacks',['../aes__ops_8h.html#aef7ba14c51245dd2f24f4e361645d17f',1,'aes_ops.h']]], + ['oqs_5falgs_5fenabled_3',['OQS_ALGS_ENABLED',['../options-for-configuring-liboqs-builds.html#oQS_ALGS_ENABLED',1,'']]], + ['oqs_5fapi_4',['OQS_API',['../common_8h.html#a63a8270bf853669651b654aa1a700f62',1,'common.h']]], + ['oqs_5fbuild_5ffuzz_5ftests_5',['OQS_BUILD_FUZZ_TESTS',['../options-for-configuring-liboqs-builds.html#oQS_BUILD_FUZZ_TESTS',1,'']]], + ['oqs_5fbuild_5fonly_5flib_6',['OQS_BUILD_ONLY_LIB',['../options-for-configuring-liboqs-builds.html#oQS_BUILD_ONLY_LIB',1,'']]], + ['oqs_5fcpu_5fext_7',['OQS_CPU_EXT',['../common_8h.html#a30dcade5b6c22570e059174037346282',1,'common.h']]], + ['oqs_5fcpu_5fhas_5fextension_8',['OQS_CPU_has_extension',['../common_8h.html#a3b8d0c6a64664542abe8c4317453ad2e',1,'common.h']]], + ['oqs_5fdestroy_9',['OQS_destroy',['../common_8h.html#ac3bcccd70ad30be31815b6ebb4537b4a',1,'common.h']]], + ['oqs_5fdist_5fbuild_10',['OQS_DIST_BUILD',['../options-for-configuring-liboqs-builds.html#oQS_DIST_BUILD',1,'']]], + ['oqs_5fdlopen_5fopenssl_11',['OQS_DLOPEN_OPENSSL',['../options-for-configuring-liboqs-builds.html#oQS_DLOPEN_OPENSSL',1,'']]], + ['oqs_5fembedded_5fbuild_12',['OQS_EMBEDDED_BUILD',['../options-for-configuring-liboqs-builds.html#oQS_EMBEDDED_BUILD',1,'']]], + ['oqs_5fenable_5fkem_5falg_20oqs_5fenable_5fsig_5falg_20oqs_5fenable_5fsig_5fstfl_5falg_13',['OQS_ENABLE_KEM_ALG/OQS_ENABLE_SIG_ALG/OQS_ENABLE_SIG_STFL_ALG',['../options-for-configuring-liboqs-builds.html#oQS_ENABLE_KEM_ALGOQS_ENABLE_SIG_ALGOQS_ENABLE_SIG_STFL_ALG',1,'']]], + ['oqs_5fenable_5flibjade_5fkem_5falg_20oqs_5fenable_5flibjade_5fsig_5falg_14',['OQS_ENABLE_LIBJADE_KEM_ALG/OQS_ENABLE_LIBJADE_SIG_ALG',['../options-for-configuring-liboqs-builds.html#oQS_ENABLE_LIBJADE_KEM_ALGOQS_ENABLE_LIBJADE_SIG_ALG',1,'']]], + ['oqs_5fenable_5flibjade_5fsig_5falg_15',['OQS_ENABLE_LIBJADE_KEM_ALG/OQS_ENABLE_LIBJADE_SIG_ALG',['../options-for-configuring-liboqs-builds.html#oQS_ENABLE_LIBJADE_KEM_ALGOQS_ENABLE_LIBJADE_SIG_ALG',1,'']]], + ['oqs_5fenable_5fsig_5falg_20oqs_5fenable_5fsig_5fstfl_5falg_16',['OQS_ENABLE_KEM_ALG/OQS_ENABLE_SIG_ALG/OQS_ENABLE_SIG_STFL_ALG',['../options-for-configuring-liboqs-builds.html#oQS_ENABLE_KEM_ALGOQS_ENABLE_SIG_ALGOQS_ENABLE_SIG_STFL_ALG',1,'']]], + ['oqs_5fenable_5fsig_5fstfl_5falg_17',['OQS_ENABLE_KEM_ALG/OQS_ENABLE_SIG_ALG/OQS_ENABLE_SIG_STFL_ALG',['../options-for-configuring-liboqs-builds.html#oQS_ENABLE_KEM_ALGOQS_ENABLE_SIG_ALGOQS_ENABLE_SIG_STFL_ALG',1,'']]], + ['oqs_5fenable_5ftest_5fconstant_5ftime_18',['OQS_ENABLE_TEST_CONSTANT_TIME',['../options-for-configuring-liboqs-builds.html#oQS_ENABLE_TEST_CONSTANT_TIME',1,'']]], + ['oqs_5ferror_19',['OQS_ERROR',['../common_8h.html#a7682cde206b02be2addea22bb31cf7fcaa7e2b301556a191088e453f00d1a4fd5',1,'common.h']]], + ['oqs_5fexit_5fif_5fnullptr_20',['OQS_EXIT_IF_NULLPTR',['../common_8h.html#abb4477a04df674a7cfe4b385d9bf062d',1,'common.h']]], + ['oqs_5fexternal_5flib_5ferror_5fopenssl_21',['OQS_EXTERNAL_LIB_ERROR_OPENSSL',['../common_8h.html#a7682cde206b02be2addea22bb31cf7fca63aa80c1ce90339168e3d273938114d2',1,'common.h']]], + ['oqs_5finit_22',['OQS_init',['../common_8h.html#a9a10aa531a4f9788f1e8b9994262cb2a',1,'common.h']]], + ['oqs_5fkem_23',['OQS_KEM',['../struct_o_q_s___k_e_m.html',1,'OQS_KEM'],['../kem_8h.html#aff5f3e4c14627bd28a0a0f39bc16d5c4',1,'OQS_KEM: kem.h']]], + ['oqs_5fkem_5falg_5fbike_5fl1_24',['OQS_KEM_alg_bike_l1',['../kem_8h.html#ab8acba379e6cdf4fd55e08746c783203',1,'kem.h']]], + ['oqs_5fkem_5falg_5fbike_5fl3_25',['OQS_KEM_alg_bike_l3',['../kem_8h.html#a8262b9f8e34b920e798faeb4c9e0d1c4',1,'kem.h']]], + ['oqs_5fkem_5falg_5fbike_5fl5_26',['OQS_KEM_alg_bike_l5',['../kem_8h.html#a630fe09de3aea79d281ce6f226e86d31',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f348864_27',['OQS_KEM_alg_classic_mceliece_348864',['../kem_8h.html#a7c77e138fef860ef317850a0bf7b8087',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f348864f_28',['OQS_KEM_alg_classic_mceliece_348864f',['../kem_8h.html#aafbb10e443869b9227f82c8c823aa5d9',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f460896_29',['OQS_KEM_alg_classic_mceliece_460896',['../kem_8h.html#a1dad077763268d4df11cc2d1d207bce8',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f460896f_30',['OQS_KEM_alg_classic_mceliece_460896f',['../kem_8h.html#aa8dd463cf3f28d9fa8bae635e7c9dab0',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f6688128_31',['OQS_KEM_alg_classic_mceliece_6688128',['../kem_8h.html#a2b424d1497f054a71e6365059cd0e5be',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f6688128f_32',['OQS_KEM_alg_classic_mceliece_6688128f',['../kem_8h.html#a39dd9377c0545aa0202e246886482f71',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f6960119_33',['OQS_KEM_alg_classic_mceliece_6960119',['../kem_8h.html#a297ca3c56998d8a4b7280365c1a3216a',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f6960119f_34',['OQS_KEM_alg_classic_mceliece_6960119f',['../kem_8h.html#af0d51f61ac63e4660082b9b45cf0dc58',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f8192128_35',['OQS_KEM_alg_classic_mceliece_8192128',['../kem_8h.html#ab5c03a2a39e95a6dc52a6065fc07c553',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f8192128f_36',['OQS_KEM_alg_classic_mceliece_8192128f',['../kem_8h.html#a62d7927e8706664edba8fec68f0fefb4',1,'kem.h']]], + ['oqs_5fkem_5falg_5fcount_37',['OQS_KEM_alg_count',['../kem_8h.html#a925f2c21c243905610edd8d2afbc17a5',1,'kem.h']]], + ['oqs_5fkem_5falg_5ffrodokem_5f1344_5faes_38',['OQS_KEM_alg_frodokem_1344_aes',['../kem_8h.html#af4b3205d87c82ad71c5afca366a417c1',1,'kem.h']]], + ['oqs_5fkem_5falg_5ffrodokem_5f1344_5fshake_39',['OQS_KEM_alg_frodokem_1344_shake',['../kem_8h.html#a7898043b6ff3964931247ed9c46b6c6b',1,'kem.h']]], + ['oqs_5fkem_5falg_5ffrodokem_5f640_5faes_40',['OQS_KEM_alg_frodokem_640_aes',['../kem_8h.html#a83bf4271cb3bff6fa570ec36c31fe4a4',1,'kem.h']]], + ['oqs_5fkem_5falg_5ffrodokem_5f640_5fshake_41',['OQS_KEM_alg_frodokem_640_shake',['../kem_8h.html#a41c38afbbdda63500525568841a1be83',1,'kem.h']]], + ['oqs_5fkem_5falg_5ffrodokem_5f976_5faes_42',['OQS_KEM_alg_frodokem_976_aes',['../kem_8h.html#ab8df28bc213b26742f8c6e0197674f91',1,'kem.h']]], + ['oqs_5fkem_5falg_5ffrodokem_5f976_5fshake_43',['OQS_KEM_alg_frodokem_976_shake',['../kem_8h.html#a4a4f8d79093d163d7227340fb3ca658b',1,'kem.h']]], + ['oqs_5fkem_5falg_5fhqc_5f128_44',['OQS_KEM_alg_hqc_128',['../kem_8h.html#a52967cf3fbd85ea0831ffc7ff11bd9a4',1,'kem.h']]], + ['oqs_5fkem_5falg_5fhqc_5f192_45',['OQS_KEM_alg_hqc_192',['../kem_8h.html#a527402cbd9af8276224705e89b320896',1,'kem.h']]], + ['oqs_5fkem_5falg_5fhqc_5f256_46',['OQS_KEM_alg_hqc_256',['../kem_8h.html#a6fca116502f5f54d8949d45b2d1c88fc',1,'kem.h']]], + ['oqs_5fkem_5falg_5fidentifier_47',['OQS_KEM_alg_identifier',['../kem_8h.html#a853608c43a25158d90b043912276fd91',1,'kem.h']]], + ['oqs_5fkem_5falg_5fis_5fenabled_48',['OQS_KEM_alg_is_enabled',['../kem_8h.html#ab74d92eea10589998f1411d0ed1651e9',1,'kem.h']]], + ['oqs_5fkem_5falg_5fkyber_5f1024_49',['OQS_KEM_alg_kyber_1024',['../kem_8h.html#af1a9e9769a9e138d3ee632c926d139e4',1,'kem.h']]], + ['oqs_5fkem_5falg_5fkyber_5f512_50',['OQS_KEM_alg_kyber_512',['../kem_8h.html#a2e2ad5fcba401f6f6ef70eb90273c001',1,'kem.h']]], + ['oqs_5fkem_5falg_5fkyber_5f768_51',['OQS_KEM_alg_kyber_768',['../kem_8h.html#a9cb55366903c97d153b55f65ad5c6175',1,'kem.h']]], + ['oqs_5fkem_5falg_5fml_5fkem_5f1024_52',['OQS_KEM_alg_ml_kem_1024',['../kem_8h.html#a84ea9a0bf86a21e20ee0530f3ce57023',1,'kem.h']]], + ['oqs_5fkem_5falg_5fml_5fkem_5f512_53',['OQS_KEM_alg_ml_kem_512',['../kem_8h.html#a927075c2414018aa4d8574d5f97d5e23',1,'kem.h']]], + ['oqs_5fkem_5falg_5fml_5fkem_5f768_54',['OQS_KEM_alg_ml_kem_768',['../kem_8h.html#a81b43cdbed118efcdf0bc5193ec55521',1,'kem.h']]], + ['oqs_5fkem_5falg_5fntru_5fhps2048509_55',['OQS_KEM_alg_ntru_hps2048509',['../kem_8h.html#a4ea6db21722aa486155f7b4942d4afc7',1,'kem.h']]], + ['oqs_5fkem_5falg_5fntru_5fhps2048677_56',['OQS_KEM_alg_ntru_hps2048677',['../kem_8h.html#a0d4371bb35ff49a7729d69788f0ca223',1,'kem.h']]], + ['oqs_5fkem_5falg_5fntru_5fhps40961229_57',['OQS_KEM_alg_ntru_hps40961229',['../kem_8h.html#a99b22275c064d7a813002014810285f0',1,'kem.h']]], + ['oqs_5fkem_5falg_5fntru_5fhps4096821_58',['OQS_KEM_alg_ntru_hps4096821',['../kem_8h.html#ab20b817c7129e9ff879b098dd2ea1030',1,'kem.h']]], + ['oqs_5fkem_5falg_5fntru_5fhrss1373_59',['OQS_KEM_alg_ntru_hrss1373',['../kem_8h.html#a21ea9dccdfb563b898d1ae6852a653c6',1,'kem.h']]], + ['oqs_5fkem_5falg_5fntru_5fhrss701_60',['OQS_KEM_alg_ntru_hrss701',['../kem_8h.html#a1394c334f974afa267f8d8bb2660e57b',1,'kem.h']]], + ['oqs_5fkem_5falg_5fntruprime_5fsntrup761_61',['OQS_KEM_alg_ntruprime_sntrup761',['../kem_8h.html#a0819c6565b4d7f6358af576025270a5c',1,'kem.h']]], + ['oqs_5fkem_5falgs_5flength_62',['OQS_KEM_algs_length',['../kem_8h.html#acf4f3e6dd0a59facc659223de3e6ebe7',1,'kem.h']]], + ['oqs_5fkem_5fdecaps_63',['OQS_KEM_decaps',['../kem_8h.html#a38987e6c9bbdad35e594dcaf1b8d9f20',1,'kem.h']]], + ['oqs_5fkem_5fencaps_64',['OQS_KEM_encaps',['../kem_8h.html#ab149d2d38207fd4a677331285f350cc5',1,'kem.h']]], + ['oqs_5fkem_5fencaps_5fderand_65',['OQS_KEM_encaps_derand',['../kem_8h.html#ad598808b5ee64999fa406d11a7d1397f',1,'kem.h']]], + ['oqs_5fkem_5ffree_66',['OQS_KEM_free',['../kem_8h.html#abb8e09a53817e27bd5a302df3e4a12c4',1,'kem.h']]], + ['oqs_5fkem_5fkeypair_67',['OQS_KEM_keypair',['../kem_8h.html#a46d80a2217878ce76b251967f54f87cb',1,'kem.h']]], + ['oqs_5fkem_5fkeypair_5fderand_68',['OQS_KEM_keypair_derand',['../kem_8h.html#a4cecdc17c5f3bfeb1010a4eb50c7c1bc',1,'kem.h']]], + ['oqs_5fkem_5fnew_69',['OQS_KEM_new',['../kem_8h.html#a5b53469d13e0ff4b21d67ef39c337667',1,'kem.h']]], + ['oqs_5flibjade_5fbuild_70',['OQS_LIBJADE_BUILD',['../options-for-configuring-liboqs-builds.html#oQS_LIBJADE_BUILD',1,'']]], + ['oqs_5fmem_5faligned_5falloc_71',['OQS_MEM_aligned_alloc',['../common_8h.html#a343b4dc9f04bf52e87e4638138f46a04',1,'common.h']]], + ['oqs_5fmem_5faligned_5ffree_72',['OQS_MEM_aligned_free',['../common_8h.html#a5efdb0c410a5725f8072cfd74f47b4d8',1,'common.h']]], + ['oqs_5fmem_5faligned_5fsecure_5ffree_73',['OQS_MEM_aligned_secure_free',['../common_8h.html#af24045b8ba9a18ef3b22970ed3a13c79',1,'common.h']]], + ['oqs_5fmem_5fcalloc_74',['OQS_MEM_calloc',['../common_8h.html#aa37bbce3079c94a216ee73092c14bf6c',1,'common.h']]], + ['oqs_5fmem_5fcleanse_75',['OQS_MEM_cleanse',['../common_8h.html#a2bd640141597d0775f803fecd5131c55',1,'common.h']]], + ['oqs_5fmem_5finsecure_5ffree_76',['OQS_MEM_insecure_free',['../common_8h.html#aeb283601b868f9a7b6b732df4adbe624',1,'common.h']]], + ['oqs_5fmem_5fmalloc_77',['OQS_MEM_malloc',['../common_8h.html#a7fcef43fb2c7d5b53479adece6985247',1,'common.h']]], + ['oqs_5fmem_5fsecure_5fbcmp_78',['OQS_MEM_secure_bcmp',['../common_8h.html#a5669335fa754471220799d4da8571861',1,'common.h']]], + ['oqs_5fmem_5fsecure_5ffree_79',['OQS_MEM_secure_free',['../common_8h.html#a4b230b209b2066a7e43dce6cc21ba211',1,'common.h']]], + ['oqs_5fmem_5fstrdup_80',['OQS_MEM_strdup',['../common_8h.html#ac2af9ef78d5627d4bc09d022e1594d6e',1,'common.h']]], + ['oqs_5fminimal_5fbuild_81',['OQS_MINIMAL_BUILD',['../options-for-configuring-liboqs-builds.html#oQS_MINIMAL_BUILD',1,'']]], + ['oqs_5fopt_5ftarget_82',['OQS_OPT_TARGET',['../options-for-configuring-liboqs-builds.html#oQS_OPT_TARGET',1,'']]], + ['oqs_5frand_5falg_5fopenssl_83',['OQS_RAND_alg_openssl',['../rand_8h.html#ae9e93932aa33fa57eaaf6248c596db14',1,'rand.h']]], + ['oqs_5frand_5falg_5fsystem_84',['OQS_RAND_alg_system',['../rand_8h.html#a7a533e4e2d3bb015e9fc97ae732a27dd',1,'rand.h']]], + ['oqs_5frandombytes_85',['OQS_randombytes',['../rand_8h.html#a83a59ba98ad3d98845c0de945676696b',1,'rand.h']]], + ['oqs_5frandombytes_5fcustom_5falgorithm_86',['OQS_randombytes_custom_algorithm',['../rand_8h.html#af79c03032969d61e363467f6caf56412',1,'rand.h']]], + ['oqs_5frandombytes_5fswitch_5falgorithm_87',['OQS_randombytes_switch_algorithm',['../rand_8h.html#a707cacdae3e726709080b1d5ffd5705c',1,'rand.h']]], + ['oqs_5fsha2_5fcallbacks_88',['OQS_SHA2_callbacks',['../struct_o_q_s___s_h_a2__callbacks.html',1,'']]], + ['oqs_5fsha2_5fset_5fcallbacks_89',['OQS_SHA2_set_callbacks',['../sha2__ops_8h.html#a82985ef8b70799af4a1724080b14ef90',1,'sha2_ops.h']]], + ['oqs_5fsha2_5fsha224_5fctx_90',['OQS_SHA2_sha224_ctx',['../struct_o_q_s___s_h_a2__sha224__ctx.html',1,'']]], + ['oqs_5fsha2_5fsha256_5fctx_91',['OQS_SHA2_sha256_ctx',['../struct_o_q_s___s_h_a2__sha256__ctx.html',1,'']]], + ['oqs_5fsha2_5fsha384_5fctx_92',['OQS_SHA2_sha384_ctx',['../struct_o_q_s___s_h_a2__sha384__ctx.html',1,'']]], + ['oqs_5fsha2_5fsha512_5fctx_93',['OQS_SHA2_sha512_ctx',['../struct_o_q_s___s_h_a2__sha512__ctx.html',1,'']]], + ['oqs_5fsha3_5fcallbacks_94',['OQS_SHA3_callbacks',['../struct_o_q_s___s_h_a3__callbacks.html',1,'']]], + ['oqs_5fsha3_5fset_5fcallbacks_95',['OQS_SHA3_set_callbacks',['../sha3__ops_8h.html#a918d26faf3422ca991ea20acbd81cf14',1,'sha3_ops.h']]], + ['oqs_5fsha3_5fsha3_5f256_5finc_5fctx_96',['OQS_SHA3_sha3_256_inc_ctx',['../struct_o_q_s___s_h_a3__sha3__256__inc__ctx.html',1,'']]], + ['oqs_5fsha3_5fsha3_5f384_5finc_5fctx_97',['OQS_SHA3_sha3_384_inc_ctx',['../struct_o_q_s___s_h_a3__sha3__384__inc__ctx.html',1,'']]], + ['oqs_5fsha3_5fsha3_5f512_5finc_5fctx_98',['OQS_SHA3_sha3_512_inc_ctx',['../struct_o_q_s___s_h_a3__sha3__512__inc__ctx.html',1,'']]], + ['oqs_5fsha3_5fshake128_5finc_5fctx_99',['OQS_SHA3_shake128_inc_ctx',['../struct_o_q_s___s_h_a3__shake128__inc__ctx.html',1,'']]], + ['oqs_5fsha3_5fshake128_5fx4_5finc_5fctx_100',['OQS_SHA3_shake128_x4_inc_ctx',['../struct_o_q_s___s_h_a3__shake128__x4__inc__ctx.html',1,'']]], + ['oqs_5fsha3_5fshake256_5finc_5fctx_101',['OQS_SHA3_shake256_inc_ctx',['../struct_o_q_s___s_h_a3__shake256__inc__ctx.html',1,'']]], + ['oqs_5fsha3_5fshake256_5fx4_5finc_5fctx_102',['OQS_SHA3_shake256_x4_inc_ctx',['../struct_o_q_s___s_h_a3__shake256__x4__inc__ctx.html',1,'']]], + ['oqs_5fsha3_5fx4_5fcallbacks_103',['OQS_SHA3_x4_callbacks',['../struct_o_q_s___s_h_a3__x4__callbacks.html',1,'']]], + ['oqs_5fsha3_5fx4_5fset_5fcallbacks_104',['OQS_SHA3_x4_set_callbacks',['../sha3x4__ops_8h.html#a3b2bd2a59c1be0de3c95df93f6d6d4d1',1,'sha3x4_ops.h']]], + ['oqs_5fsig_105',['OQS_SIG',['../struct_o_q_s___s_i_g.html',1,'OQS_SIG'],['../sig_8h.html#a3f6b99a75f1b9919803f20b99dcdec9a',1,'OQS_SIG: sig.h']]], + ['oqs_5fsig_5falg_5fcount_106',['OQS_SIG_alg_count',['../sig_8h.html#a26f926d5c6177a536ad696785aef1710',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f128_5fbalanced_107',['OQS_SIG_alg_cross_rsdp_128_balanced',['../sig_8h.html#abadee1f3ea4c980ba3a4e544d6a1a7a8',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f128_5ffast_108',['OQS_SIG_alg_cross_rsdp_128_fast',['../sig_8h.html#a18073581176b71cf20c7469d3d1c8ce6',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f128_5fsmall_109',['OQS_SIG_alg_cross_rsdp_128_small',['../sig_8h.html#af08376faf02227e568dba737543744c3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f192_5fbalanced_110',['OQS_SIG_alg_cross_rsdp_192_balanced',['../sig_8h.html#a11db83528529864cb3862c6817eab745',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f192_5ffast_111',['OQS_SIG_alg_cross_rsdp_192_fast',['../sig_8h.html#a39f33e16ced56a1fc92f83a683c10353',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f192_5fsmall_112',['OQS_SIG_alg_cross_rsdp_192_small',['../sig_8h.html#a2ef72942ad9b414e357b59fb2ec7eb09',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f256_5fbalanced_113',['OQS_SIG_alg_cross_rsdp_256_balanced',['../sig_8h.html#a1c32df72bd1e17b56e6bfc7548f41189',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f256_5ffast_114',['OQS_SIG_alg_cross_rsdp_256_fast',['../sig_8h.html#ad10052282a41bbb18706305b2f0612c1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f256_5fsmall_115',['OQS_SIG_alg_cross_rsdp_256_small',['../sig_8h.html#a703ddb438bc3251b6a3ecff08bcccef7',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f128_5fbalanced_116',['OQS_SIG_alg_cross_rsdpg_128_balanced',['../sig_8h.html#a4bcc064e184b1c0e9351f276e4711c24',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f128_5ffast_117',['OQS_SIG_alg_cross_rsdpg_128_fast',['../sig_8h.html#a6732d90c493281ce5902582d80fdeca9',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f128_5fsmall_118',['OQS_SIG_alg_cross_rsdpg_128_small',['../sig_8h.html#a6f624cccf5f14d22baa92dfb0fe6d898',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f192_5fbalanced_119',['OQS_SIG_alg_cross_rsdpg_192_balanced',['../sig_8h.html#a7650ff7ad27a47952b1839d8436b3ee9',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f192_5ffast_120',['OQS_SIG_alg_cross_rsdpg_192_fast',['../sig_8h.html#abc219691ae5a07b713a313cccb80cd78',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f192_5fsmall_121',['OQS_SIG_alg_cross_rsdpg_192_small',['../sig_8h.html#a57207e06fb4c8c1401104f3b6f1cd066',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f256_5fbalanced_122',['OQS_SIG_alg_cross_rsdpg_256_balanced',['../sig_8h.html#a18a57ee00e0597e176198c71f3a48f21',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f256_5ffast_123',['OQS_SIG_alg_cross_rsdpg_256_fast',['../sig_8h.html#a10702f0cf55cda65139e0c986a9dfd54',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f256_5fsmall_124',['OQS_SIG_alg_cross_rsdpg_256_small',['../sig_8h.html#ac7a2fd75828f4fd5a8e2d42a439b32fe',1,'sig.h']]], + ['oqs_5fsig_5falg_5ffalcon_5f1024_125',['OQS_SIG_alg_falcon_1024',['../sig_8h.html#a4a0db68e2e66b9aa3bcf93c1d78900d8',1,'sig.h']]], + ['oqs_5fsig_5falg_5ffalcon_5f512_126',['OQS_SIG_alg_falcon_512',['../sig_8h.html#a473846e6bb340412c59725bee591076c',1,'sig.h']]], + ['oqs_5fsig_5falg_5ffalcon_5fpadded_5f1024_127',['OQS_SIG_alg_falcon_padded_1024',['../sig_8h.html#a37141463f1d8657c419aa9e3fcd47aec',1,'sig.h']]], + ['oqs_5fsig_5falg_5ffalcon_5fpadded_5f512_128',['OQS_SIG_alg_falcon_padded_512',['../sig_8h.html#a4df9bfd9b623c4a1efe7a0c43198ef25',1,'sig.h']]], + ['oqs_5fsig_5falg_5fidentifier_129',['OQS_SIG_alg_identifier',['../sig_8h.html#a6f114705b2da592ac99bb57a5ec25d52',1,'sig.h']]], + ['oqs_5fsig_5falg_5fis_5fenabled_130',['OQS_SIG_alg_is_enabled',['../sig_8h.html#aa6a66d4a02d8e3fb81691ef4a7db9402',1,'sig.h']]], + ['oqs_5fsig_5falg_5fmayo_5f1_131',['OQS_SIG_alg_mayo_1',['../sig_8h.html#aed79780ba626e327bee445475a7f47d3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fmayo_5f2_132',['OQS_SIG_alg_mayo_2',['../sig_8h.html#ab0cda7090a78e0e5e58d0d291721dc60',1,'sig.h']]], + ['oqs_5fsig_5falg_5fmayo_5f3_133',['OQS_SIG_alg_mayo_3',['../sig_8h.html#ac44e2a2ecff4e77e3959cb1d0172892e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fmayo_5f5_134',['OQS_SIG_alg_mayo_5',['../sig_8h.html#af21ed44674912207e054e6f67e0c3e3e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fml_5fdsa_5f44_135',['OQS_SIG_alg_ml_dsa_44',['../sig_8h.html#acacbe7fafe58d6142dbb678e0e774539',1,'sig.h']]], + ['oqs_5fsig_5falg_5fml_5fdsa_5f65_136',['OQS_SIG_alg_ml_dsa_65',['../sig_8h.html#ae61d337d543a19cbbacd521a94697d08',1,'sig.h']]], + ['oqs_5fsig_5falg_5fml_5fdsa_5f87_137',['OQS_SIG_alg_ml_dsa_87',['../sig_8h.html#a0e1f64498a5dab9e2ec35496914f9ee3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fsha2_5f128f_138',['OQS_SIG_alg_slh_dsa_pure_sha2_128f',['../sig_8h.html#a9566c9728122687fec58138243f0af21',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fsha2_5f128s_139',['OQS_SIG_alg_slh_dsa_pure_sha2_128s',['../sig_8h.html#ac16315f9b7ea95bf33e318a9f5dc93d0',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fsha2_5f192f_140',['OQS_SIG_alg_slh_dsa_pure_sha2_192f',['../sig_8h.html#a1d9d1dff65ec49926f162bc723fdadee',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fsha2_5f192s_141',['OQS_SIG_alg_slh_dsa_pure_sha2_192s',['../sig_8h.html#a38a4ba44c1e58ade82e9a5b60a6b56c6',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fsha2_5f256f_142',['OQS_SIG_alg_slh_dsa_pure_sha2_256f',['../sig_8h.html#ac39bca1784e47d90afd2a6c19d0b6ce1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fsha2_5f256s_143',['OQS_SIG_alg_slh_dsa_pure_sha2_256s',['../sig_8h.html#a3d57252ca40a6a989f3f132c33848ff5',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fshake_5f128f_144',['OQS_SIG_alg_slh_dsa_pure_shake_128f',['../sig_8h.html#a0756e442bc0bbd8a8302a5564b917f6e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fshake_5f128s_145',['OQS_SIG_alg_slh_dsa_pure_shake_128s',['../sig_8h.html#a3354f101be8f7194b14f9540bdf7cd6f',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fshake_5f192f_146',['OQS_SIG_alg_slh_dsa_pure_shake_192f',['../sig_8h.html#ab95ffc41463318979c6fb06669ac59e8',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fshake_5f192s_147',['OQS_SIG_alg_slh_dsa_pure_shake_192s',['../sig_8h.html#a812315d047d3a4108606a8975790d2ab',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fshake_5f256f_148',['OQS_SIG_alg_slh_dsa_pure_shake_256f',['../sig_8h.html#ae80c31e43efdb6a73feb8c2144cc8566',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fshake_5f256s_149',['OQS_SIG_alg_slh_dsa_pure_shake_256s',['../sig_8h.html#a1ba5580f2c96cd54aee525d999ec33d0',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fsha2_5f128f_150',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_128f',['../sig_8h.html#a0bd63b1d63ae6df7a74870d183372916',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fsha2_5f128s_151',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_128s',['../sig_8h.html#aa0bb659ebdc8d0c1c55329eaa6055a90',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fsha2_5f192f_152',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_192f',['../sig_8h.html#a3fc87969947381dedb84f70a9c29e3c8',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fsha2_5f192s_153',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_192s',['../sig_8h.html#a34f13901dcb0cc73a1c939b05d232a25',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fsha2_5f256f_154',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_256f',['../sig_8h.html#aa44bdb52c0c8daba339d5cc844544674',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fsha2_5f256s_155',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_256s',['../sig_8h.html#aed767ac0e5d24967804f4269acf8c1c4',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fshake_5f128f_156',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_128f',['../sig_8h.html#a52e66dab7b419f33101c9ffe05327be8',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fshake_5f128s_157',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_128s',['../sig_8h.html#a8a65c8cab6baad7d2c2c539f9d0be0d8',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fshake_5f192f_158',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_192f',['../sig_8h.html#af8d81fc33f03dea3eac670c6f85905e1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fshake_5f192s_159',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_192s',['../sig_8h.html#ae8ccb27ff337358487d52418c7d3b6a0',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fshake_5f256f_160',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_256f',['../sig_8h.html#a66159272164d25ebae819180cdd66821',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fshake_5f256s_161',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_256s',['../sig_8h.html#ad3723f934552a5d71d9b83855557ff0f',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fsha2_5f128f_162',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_128f',['../sig_8h.html#a42d58e1f3fe8c510617f5393585cbe70',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fsha2_5f128s_163',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_128s',['../sig_8h.html#a9121fe5ea73a82c64772c61d0ee37a71',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fsha2_5f192f_164',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_192f',['../sig_8h.html#a7f1b8d27d08b5bcd0a60672c1fff6af5',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fsha2_5f192s_165',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_192s',['../sig_8h.html#a004fbe901aa5678d20b7c74e3442ddc4',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fsha2_5f256f_166',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_256f',['../sig_8h.html#a818769f2220920e89a0971174ea8a1d1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fsha2_5f256s_167',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_256s',['../sig_8h.html#aaa0c7ff93ca0b555571a7d512538e387',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fshake_5f128f_168',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_128f',['../sig_8h.html#a2bb42806c585a7237cd242204ba51e70',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fshake_5f128s_169',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_128s',['../sig_8h.html#abc16472d94aeacf1a6d147d80f483c6b',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fshake_5f192f_170',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_192f',['../sig_8h.html#ab04200dadb1d02c002048c8108652c7f',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fshake_5f192s_171',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_192s',['../sig_8h.html#af210dbb96cd9fcc26bc568bd19640a11',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fshake_5f256f_172',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_256f',['../sig_8h.html#acd59f8cdaa419c528e21bb57fdc32788',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fshake_5f256s_173',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_256s',['../sig_8h.html#a62c23298b9fdaed60cdf1999e860f694',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fsha2_5f128f_174',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_128f',['../sig_8h.html#a9876042dfeb69f9eaf80004d5aac8f75',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fsha2_5f128s_175',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_128s',['../sig_8h.html#a841037db68692cddd9b75a6bf73f5b23',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fsha2_5f192f_176',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_192f',['../sig_8h.html#ac7ede2d18e39bde9d7df6f0d5f58d57c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fsha2_5f192s_177',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_192s',['../sig_8h.html#a5e7aa37b177a79bfd86d96c5f9ab904a',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fsha2_5f256f_178',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_256f',['../sig_8h.html#a1ee9f68449f3bee2955117734d00e29c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fsha2_5f256s_179',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_256s',['../sig_8h.html#ae409738d274631115b75e548bc27c4c5',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fshake_5f128f_180',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_128f',['../sig_8h.html#ad02cb43bc7e86883eb23277b3f8c9db0',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fshake_5f128s_181',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_128s',['../sig_8h.html#a99c67c22ef14c59abe8562a3a45ed6b3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fshake_5f192f_182',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_192f',['../sig_8h.html#a562ece9c498e8b634318db6760e678b4',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fshake_5f192s_183',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_192s',['../sig_8h.html#a472b4f05b4a473f13d0f8b7713ccaf3c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fshake_5f256f_184',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_256f',['../sig_8h.html#abbd8c10e9e0b100103d0b0a7eaece0fc',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fshake_5f256s_185',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_256s',['../sig_8h.html#a02979bcae24fa8bdeb214371f3cf2721',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fsha2_5f128f_186',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_128f',['../sig_8h.html#a27243d3d2fdc770fcc99bbdc8ab3f55f',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fsha2_5f128s_187',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_128s',['../sig_8h.html#a36c85a6d8cd871f6df775b5b5cefebaa',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fsha2_5f192f_188',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_192f',['../sig_8h.html#a1b1486f06122a6b5dcec84788e048b46',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fsha2_5f192s_189',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_192s',['../sig_8h.html#aa182df301af7af9adae27cffea77a632',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fsha2_5f256f_190',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_256f',['../sig_8h.html#a1caddcacebf07b89395bd9c8975b85a3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fsha2_5f256s_191',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_256s',['../sig_8h.html#a007929297097eb838f6b0e63c96a1ecc',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fshake_5f128f_192',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_128f',['../sig_8h.html#a516d8593ef9ed64079efb1e97be1fedc',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fshake_5f128s_193',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_128s',['../sig_8h.html#a7c23c8915618bf1ff80638c1796ef253',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fshake_5f192f_194',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_192f',['../sig_8h.html#a063ac9cec9da49f1ba9bae52d8b8bafa',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fshake_5f192s_195',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_192s',['../sig_8h.html#a3375495fae0b5184e475616c8f0ffa80',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fshake_5f256f_196',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_256f',['../sig_8h.html#a1747cc802922e8786066b7fb18eaa50d',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fshake_5f256s_197',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_256s',['../sig_8h.html#a2ee26e58fee53aa8ca396079dc4276fc',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fsha2_5f128f_198',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_128f',['../sig_8h.html#a22601a2097f1a9d2e5fbc295cecc5fe5',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fsha2_5f128s_199',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_128s',['../sig_8h.html#a0e50de59cdaabcbdd5f9bc0ae73c7722',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fsha2_5f192f_200',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_192f',['../sig_8h.html#ac408d9b58662ba54359aa02079e5ce6e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fsha2_5f192s_201',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_192s',['../sig_8h.html#aa1c53887ee95323817b96eda4c355607',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fsha2_5f256f_202',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_256f',['../sig_8h.html#af23c974ae82dd644a132fe19c9def4d5',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fsha2_5f256s_203',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_256s',['../sig_8h.html#a90383426aa6cbed1d908f5574d73269e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fshake_5f128f_204',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_128f',['../sig_8h.html#a63328a7078ecd05d442c5b23288e2093',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fshake_5f128s_205',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_128s',['../sig_8h.html#ab92327c291eb6719176983b52a2b8db1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fshake_5f192f_206',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_192f',['../sig_8h.html#aa8ce340ce1169eb803a270bc441f70db',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fshake_5f192s_207',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_192s',['../sig_8h.html#af82a5e76336104ddff17723e6cc6d38e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fshake_5f256f_208',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_256f',['../sig_8h.html#a6f1cf22d726a1af2f10d2271f8a31635',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fshake_5f256s_209',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_256s',['../sig_8h.html#accc3629c97eec3becbac1ce5c1ac755e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fsha2_5f128f_210',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_128f',['../sig_8h.html#abe5084994475e36c41c9b1f0f1a61a3b',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fsha2_5f128s_211',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_128s',['../sig_8h.html#a3a519f40ca79103c18af1baf3e2df1c3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fsha2_5f192f_212',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_192f',['../sig_8h.html#a503e3022c4a8663e0468cb9eb70fee53',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fsha2_5f192s_213',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_192s',['../sig_8h.html#aa1b2e0d73a74f8297faa632710e6df88',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fsha2_5f256f_214',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_256f',['../sig_8h.html#a91ee57b7f98e93409f80ebb583ba3de3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fsha2_5f256s_215',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_256s',['../sig_8h.html#a41e5f80e5f944100500317553032a262',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fshake_5f128f_216',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_128f',['../sig_8h.html#aa1e0889894114605e194406d70820b93',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fshake_5f128s_217',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_128s',['../sig_8h.html#a79eebb4ce39963978a23a87f5c3208cf',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fshake_5f192f_218',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_192f',['../sig_8h.html#a9c7c1a20c74a0869a499f7beaa58d367',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fshake_5f192s_219',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_192s',['../sig_8h.html#a3ed7bfe23ddcaa4e90ca4001d4386d75',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fshake_5f256f_220',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_256f',['../sig_8h.html#a89ceeec746a67378eba3ab784af7f5c3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fshake_5f256s_221',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_256s',['../sig_8h.html#aec5225b57f6e16a6d92eb2531e875539',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fsha2_5f128f_222',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_128f',['../sig_8h.html#a5d2b67f4e20e5547c686a6b31612b6e1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fsha2_5f128s_223',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_128s',['../sig_8h.html#a5d728e3c2b0c645d7615ee63938009a9',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fsha2_5f192f_224',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_192f',['../sig_8h.html#a10c9b142f65d0f18475f60465f8ce1bf',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fsha2_5f192s_225',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_192s',['../sig_8h.html#a99413911ef1ea3b96339a571054f2707',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fsha2_5f256f_226',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_256f',['../sig_8h.html#a9fd02e6b0efc441abfd36dfdad60633f',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fsha2_5f256s_227',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_256s',['../sig_8h.html#ad5bc5c29591222a157dfb75f4e65aa97',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fshake_5f128f_228',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_128f',['../sig_8h.html#a77a3aeb7cdc760ca5451917e82da42a9',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fshake_5f128s_229',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_128s',['../sig_8h.html#ad7710007c2e6a1c06b57f5cd9252f2dc',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fshake_5f192f_230',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_192f',['../sig_8h.html#a04e5bb4ebf55085275897dc032ddf1e1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fshake_5f192s_231',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_192s',['../sig_8h.html#af21878343b028517bdc2e7180e74dda8',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fshake_5f256f_232',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_256f',['../sig_8h.html#a25a5349feef2006ae8c6642750ff74c9',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fshake_5f256s_233',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_256s',['../sig_8h.html#a46929706ed2248204094794de5c35dca',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fsha2_5f128f_234',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_128f',['../sig_8h.html#a5e8fae3af008701d0987d11f32857c43',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fsha2_5f128s_235',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_128s',['../sig_8h.html#ae4361c4abecab56e9a2b81b7a6203980',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fsha2_5f192f_236',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_192f',['../sig_8h.html#a551dbb74c37bc2538cd9b5ab29c169d7',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fsha2_5f192s_237',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_192s',['../sig_8h.html#ab460a7b65ff453d27045308a77e0e098',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fsha2_5f256f_238',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_256f',['../sig_8h.html#a9fbc088e344c09431871eb65ed95bcbe',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fsha2_5f256s_239',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_256s',['../sig_8h.html#a335ed1e596bc4ad8a9747cd8c499a36c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fshake_5f128f_240',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_128f',['../sig_8h.html#a6c2aea8d70b06bc2ea29ef7e21ba5474',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fshake_5f128s_241',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_128s',['../sig_8h.html#a9763251a5ef69278aeafc52ae1ab6e75',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fshake_5f192f_242',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_192f',['../sig_8h.html#a38df3f36a6b6f38f597fb1c8e66ac0a6',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fshake_5f192s_243',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_192s',['../sig_8h.html#aeb69d1345386faa3087c582f97c3c0f5',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fshake_5f256f_244',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_256f',['../sig_8h.html#aab08882ba046661127018024578589a4',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fshake_5f256s_245',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_256s',['../sig_8h.html#ab0e9466ebab1fe6a7cfc3f897d2fd414',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fsha2_5f128f_246',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_128f',['../sig_8h.html#a148f7d66ed58510fc789fa11d32fb784',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fsha2_5f128s_247',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_128s',['../sig_8h.html#a3ba227c1f70498a65565d70b922008ff',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fsha2_5f192f_248',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_192f',['../sig_8h.html#ab2f312455e5f9bd0f48f15bbc6677ee7',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fsha2_5f192s_249',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_192s',['../sig_8h.html#a4d3af6fe990f9d1205ce81e12fd11158',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fsha2_5f256f_250',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_256f',['../sig_8h.html#ae3270d21d1e82f62ed85552318a9c3d4',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fsha2_5f256s_251',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_256s',['../sig_8h.html#a96068320dfbef49453dbea1925898812',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fshake_5f128f_252',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_128f',['../sig_8h.html#a128584b68d8fd1671356f742498d1dc0',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fshake_5f128s_253',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_128s',['../sig_8h.html#a469ea159c1009c3f075cc603309110eb',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fshake_5f192f_254',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_192f',['../sig_8h.html#ae32587277d0f6e26e2ec3700def5e9b1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fshake_5f192s_255',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_192s',['../sig_8h.html#a3de2b1758c64c6759c1a06319d2ae792',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fshake_5f256f_256',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_256f',['../sig_8h.html#a9c5fbb32dd8293c792d5dc3fcf46301f',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fshake_5f256s_257',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_256s',['../sig_8h.html#aa313d68989397c2385fc21ac67be0356',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fsha2_5f128f_258',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_128f',['../sig_8h.html#a03f4eaef6ab07dc2e621e2aa46b8941e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fsha2_5f128s_259',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_128s',['../sig_8h.html#a14309c6aa2c0aa7bee00284e56a88076',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fsha2_5f192f_260',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_192f',['../sig_8h.html#a1e9ab130fae861fbbfd43d8987c36a39',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fsha2_5f192s_261',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_192s',['../sig_8h.html#adff67453ffc95cdba4a099b3f6e0be56',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fsha2_5f256f_262',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_256f',['../sig_8h.html#af1b9fa17edd5f0379dc908d1fb087c2d',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fsha2_5f256s_263',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_256s',['../sig_8h.html#a10415ac82c50e00ab79fd348d1cc3a64',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fshake_5f128f_264',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_128f',['../sig_8h.html#ac7c90231073067c70d419fc12c388cf4',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fshake_5f128s_265',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_128s',['../sig_8h.html#adec025e0f74493fbcf81a659d1495a5c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fshake_5f192f_266',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_192f',['../sig_8h.html#a9303dc31840da5b69b38161800605527',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fshake_5f192s_267',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_192s',['../sig_8h.html#a3842ccafed5385281e13d33545b2a524',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fshake_5f256f_268',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_256f',['../sig_8h.html#aa886f6147c3011a09cb431c1b4f4e5f6',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fshake_5f256s_269',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_256s',['../sig_8h.html#acf927414424bd98eb6b32179e51d1699',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fsha2_5f128f_270',['OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_128f',['../sig_8h.html#aea3a7df579e19c8c997b5077434a4a2e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fsha2_5f128s_271',['OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_128s',['../sig_8h.html#a97fd4d31f3a5582d1174e74094d0fca9',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fsha2_5f192f_272',['OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_192f',['../sig_8h.html#af676e2f4d36488c5437679a594bfcbf8',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fsha2_5f192s_273',['OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_192s',['../sig_8h.html#a4f4d6636dffd8c6623f063dd781d7686',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fsha2_5f256f_274',['OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_256f',['../sig_8h.html#a7d3e80c9ae47fb90b75fee100f4f7db3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fsha2_5f256s_275',['OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_256s',['../sig_8h.html#ab07147ea78400f67f4ee83197459edb9',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fshake_5f128f_276',['OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_128f',['../sig_8h.html#ae9380da8d73ce6026b110bf06f77562c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fshake_5f128s_277',['OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_128s',['../sig_8h.html#aa10b4008b8ad7f8c707146bca2cbca86',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fshake_5f192f_278',['OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_192f',['../sig_8h.html#a434352142bc116318b087e9758332b1c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fshake_5f192s_279',['OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_192s',['../sig_8h.html#a9bddff5d8f75ec3d79f80fa32d794ba7',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fshake_5f256f_280',['OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_256f',['../sig_8h.html#a3bfe59ef603284c69cf3ecbd32b48304',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fshake_5f256s_281',['OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_256s',['../sig_8h.html#a9c8a3434b53960906a346311d45678cb',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fsha2_5f128f_282',['OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_128f',['../sig_8h.html#af22f30e9ec99d1ebdfeb3c089e312775',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fsha2_5f128s_283',['OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_128s',['../sig_8h.html#a117b7221dd96ca21cc6de2cb226c8033',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fsha2_5f192f_284',['OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_192f',['../sig_8h.html#af056409cddb1f9f5701ad2c52f165522',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fsha2_5f192s_285',['OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_192s',['../sig_8h.html#a6107555cf4e726758c455fdc5ef18ad0',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fsha2_5f256f_286',['OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_256f',['../sig_8h.html#ae6a0c95ea27b12fae92e2f4fa7bd8383',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fsha2_5f256s_287',['OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_256s',['../sig_8h.html#ab4e101ce04ae8013f2434d4b5dea21d8',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fshake_5f128f_288',['OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_128f',['../sig_8h.html#aa60170967398d28951a91edad199cd62',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fshake_5f128s_289',['OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_128s',['../sig_8h.html#afd5fe1c0173aee8292d35f032a7d5dbe',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fshake_5f192f_290',['OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_192f',['../sig_8h.html#aee346b700cdf5d41a7dc82691a51fbd1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fshake_5f192s_291',['OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_192s',['../sig_8h.html#ae80c23fb2b79f68e9880ecaee7c1fc37',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fshake_5f256f_292',['OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_256f',['../sig_8h.html#ac7656168e50dc733a475ff507e353f3d',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fshake_5f256s_293',['OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_256s',['../sig_8h.html#a460917c57cf43490d7d256fe000c2138',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f24_5f5_5f4_294',['OQS_SIG_alg_snova_SNOVA_24_5_4',['../sig_8h.html#ad573389b721195ee0ef9b048a3eac25b',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f24_5f5_5f4_5fesk_295',['OQS_SIG_alg_snova_SNOVA_24_5_4_esk',['../sig_8h.html#ade0f84b15d5de14061c04459e334d39f',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f24_5f5_5f4_5fshake_296',['OQS_SIG_alg_snova_SNOVA_24_5_4_SHAKE',['../sig_8h.html#a9efc3d9f21bee77ca37114c5cc70e039',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f24_5f5_5f4_5fshake_5fesk_297',['OQS_SIG_alg_snova_SNOVA_24_5_4_SHAKE_esk',['../sig_8h.html#a039e1c9778259654383d2f22aad9e29e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f24_5f5_5f5_298',['OQS_SIG_alg_snova_SNOVA_24_5_5',['../sig_8h.html#a74762474cb91f36d3db2db7da99528a6',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f25_5f8_5f3_299',['OQS_SIG_alg_snova_SNOVA_25_8_3',['../sig_8h.html#a018216cacd3c54da2635274dbeca34d2',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f29_5f6_5f5_300',['OQS_SIG_alg_snova_SNOVA_29_6_5',['../sig_8h.html#aed1b1ec847081549c0630bdefa344a47',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f37_5f17_5f2_301',['OQS_SIG_alg_snova_SNOVA_37_17_2',['../sig_8h.html#ab6947fe2ad01552b73c769abcfefab6a',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f37_5f8_5f4_302',['OQS_SIG_alg_snova_SNOVA_37_8_4',['../sig_8h.html#ac661fba5f53d025e99800206f76002db',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f49_5f11_5f3_303',['OQS_SIG_alg_snova_SNOVA_49_11_3',['../sig_8h.html#a834bdcbb6cab93139043bdb435ab52cc',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f56_5f25_5f2_304',['OQS_SIG_alg_snova_SNOVA_56_25_2',['../sig_8h.html#ac775c72b134b7317f3c98e300e785918',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f60_5f10_5f4_305',['OQS_SIG_alg_snova_SNOVA_60_10_4',['../sig_8h.html#ac0dd79ebc345fe5c8e76685baee16279',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fsha2_5f128f_5fsimple_306',['OQS_SIG_alg_sphincs_sha2_128f_simple',['../sig_8h.html#adcd24ce37b0454f596fce613afabbe3c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fsha2_5f128s_5fsimple_307',['OQS_SIG_alg_sphincs_sha2_128s_simple',['../sig_8h.html#a1b650824da8424a1df6339fac59195cd',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fsha2_5f192f_5fsimple_308',['OQS_SIG_alg_sphincs_sha2_192f_simple',['../sig_8h.html#a1c5c3013bb09e3100904dc1ca126b108',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fsha2_5f192s_5fsimple_309',['OQS_SIG_alg_sphincs_sha2_192s_simple',['../sig_8h.html#ac923dc15d262f8c0e060898129a4751c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fsha2_5f256f_5fsimple_310',['OQS_SIG_alg_sphincs_sha2_256f_simple',['../sig_8h.html#ae24f42307a520a68c6d11efa8fc93119',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fsha2_5f256s_5fsimple_311',['OQS_SIG_alg_sphincs_sha2_256s_simple',['../sig_8h.html#ac09f6924334a2c085c2aee0b0a11f6af',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fshake_5f128f_5fsimple_312',['OQS_SIG_alg_sphincs_shake_128f_simple',['../sig_8h.html#ab38a6c9cb7fb49520072a2c44bde8f7b',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fshake_5f128s_5fsimple_313',['OQS_SIG_alg_sphincs_shake_128s_simple',['../sig_8h.html#adcdbc2440474e074df64d585d60d65c2',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fshake_5f192f_5fsimple_314',['OQS_SIG_alg_sphincs_shake_192f_simple',['../sig_8h.html#a1ad7391948e3bc2781262b186c2fddf6',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fshake_5f192s_5fsimple_315',['OQS_SIG_alg_sphincs_shake_192s_simple',['../sig_8h.html#a42946f2a1ad046f3f8d314ec93e511ed',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fshake_5f256f_5fsimple_316',['OQS_SIG_alg_sphincs_shake_256f_simple',['../sig_8h.html#a319b63424dcbf825dfc7449f729cff8f',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fshake_5f256s_5fsimple_317',['OQS_SIG_alg_sphincs_shake_256s_simple',['../sig_8h.html#a87ae7d0b2f8084dd78d896f7e015e8bd',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fiii_318',['OQS_SIG_alg_uov_ov_III',['../sig_8h.html#a30458d168e6d166a55057241f0f8c9bf',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fiii_5fpkc_319',['OQS_SIG_alg_uov_ov_III_pkc',['../sig_8h.html#a0ffded1da6002ba07bc15aac835c8f71',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fiii_5fpkc_5fskc_320',['OQS_SIG_alg_uov_ov_III_pkc_skc',['../sig_8h.html#a932784f5eec8a9a770cb2f2dd9e8e76c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fip_321',['OQS_SIG_alg_uov_ov_Ip',['../sig_8h.html#ae42b9c3eb296faf73690b98c1279cde7',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fip_5fpkc_322',['OQS_SIG_alg_uov_ov_Ip_pkc',['../sig_8h.html#a72e00107800571716bcb6bb897e52211',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fip_5fpkc_5fskc_323',['OQS_SIG_alg_uov_ov_Ip_pkc_skc',['../sig_8h.html#a8a7ccc8764e799d4bde323cbe5ef92ba',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fis_324',['OQS_SIG_alg_uov_ov_Is',['../sig_8h.html#a34a1bc056f6b079c9cc87f2afb8291bb',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fis_5fpkc_325',['OQS_SIG_alg_uov_ov_Is_pkc',['../sig_8h.html#a7b99c0c8115ffb83f9067359764b7db4',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fis_5fpkc_5fskc_326',['OQS_SIG_alg_uov_ov_Is_pkc_skc',['../sig_8h.html#a6973882e08655af7c16c46d03ba081b0',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fv_327',['OQS_SIG_alg_uov_ov_V',['../sig_8h.html#ab5881d81018faac01a84cbdc1d30b7da',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fv_5fpkc_328',['OQS_SIG_alg_uov_ov_V_pkc',['../sig_8h.html#a2e2d9047486642b983337d240037a5a5',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fv_5fpkc_5fskc_329',['OQS_SIG_alg_uov_ov_V_pkc_skc',['../sig_8h.html#a53d06793983fd22b74ddcb5af50a6b4c',1,'sig.h']]], + ['oqs_5fsig_5falgs_5flength_330',['OQS_SIG_algs_length',['../sig_8h.html#a3b5602da1f19ca0cf0034780f99416e5',1,'sig.h']]], + ['oqs_5fsig_5ffree_331',['OQS_SIG_free',['../sig_8h.html#a3ab9ceb4859a721bec0b718c6b468685',1,'sig.h']]], + ['oqs_5fsig_5fkeypair_332',['OQS_SIG_keypair',['../sig_8h.html#ac5c527513c5c353ba90a1a9ee386458e',1,'sig.h']]], + ['oqs_5fsig_5fnew_333',['OQS_SIG_new',['../sig_8h.html#a9d44f4c5b0624d411146162df1023ea2',1,'sig.h']]], + ['oqs_5fsig_5fsign_334',['OQS_SIG_sign',['../sig_8h.html#ab6fa805ef48e554fcbf6bbe5a92136da',1,'sig.h']]], + ['oqs_5fsig_5fsign_5fwith_5fctx_5fstr_335',['OQS_SIG_sign_with_ctx_str',['../sig_8h.html#a8852fe0a9b003460b56f7b203045f043',1,'sig.h']]], + ['oqs_5fsig_5fslh_5fdsa_5falgs_5flength_336',['OQS_SIG_SLH_DSA_algs_length',['../sig_8h.html#a305f0b1ad6fde5cae8f837d229b198ff',1,'sig.h']]], + ['oqs_5fsig_5fstfl_337',['OQS_SIG_STFL',['../sig__stfl_8h.html#aeeedd56978c620be72f246c98838dbed',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fcount_338',['OQS_SIG_STFL_alg_count',['../sig__stfl_8h.html#ac5ae781173cb89dd0c068ad5616066de',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fidentifier_339',['OQS_SIG_STFL_alg_identifier',['../sig__stfl_8h.html#aea5c4e31e0e6d33937e676e6c9ee66b1',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fis_5fenabled_340',['OQS_SIG_STFL_alg_is_enabled',['../sig__stfl_8h.html#a6048469b5bcc9baabf2d1b16d4f9d544',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw1_341',['OQS_SIG_STFL_alg_lms_sha256_h10_w1',['../sig__stfl_8h.html#aadaf2cc937cf1f1ba9ea148bc2939859',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw2_342',['OQS_SIG_STFL_alg_lms_sha256_h10_w2',['../sig__stfl_8h.html#a1cf7101cfd72f343caec6e7f81224b1c',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw2_5fh10_5fw2_343',['OQS_SIG_STFL_alg_lms_sha256_h10_w2_h10_w2',['../sig__stfl_8h.html#ac4933f7aa1b7df77ffbabf8cfa269ae9',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw4_344',['OQS_SIG_STFL_alg_lms_sha256_h10_w4',['../sig__stfl_8h.html#a2cf6faf3085418668170318d4098542f',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw4_5fh10_5fw4_345',['OQS_SIG_STFL_alg_lms_sha256_h10_w4_h10_w4',['../sig__stfl_8h.html#a25a3506fa1b34bbe76152e3c3c2b370c',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw4_5fh5_5fw8_346',['OQS_SIG_STFL_alg_lms_sha256_h10_w4_h5_w8',['../sig__stfl_8h.html#a5a46d07d06ca6128754f9d4171b888db',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw8_347',['OQS_SIG_STFL_alg_lms_sha256_h10_w8',['../sig__stfl_8h.html#a64cdba94e9605e1fc7450dbc5111a626',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw8_5fh10_5fw8_348',['OQS_SIG_STFL_alg_lms_sha256_h10_w8_h10_w8',['../sig__stfl_8h.html#afbec415108f6c5b74ad2408544b22bf9',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw8_5fh5_5fw8_349',['OQS_SIG_STFL_alg_lms_sha256_h10_w8_h5_w8',['../sig__stfl_8h.html#ab8b55bc04f57f2acabd2fa7910432018',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh15_5fw1_350',['OQS_SIG_STFL_alg_lms_sha256_h15_w1',['../sig__stfl_8h.html#ae1b6343322333c8e68ed344a17ada4d0',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh15_5fw2_351',['OQS_SIG_STFL_alg_lms_sha256_h15_w2',['../sig__stfl_8h.html#a5c6dd82bbe8a6628277408898d9044dc',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh15_5fw4_352',['OQS_SIG_STFL_alg_lms_sha256_h15_w4',['../sig__stfl_8h.html#a9f2db2501f512d851120d06352c6baab',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh15_5fw8_353',['OQS_SIG_STFL_alg_lms_sha256_h15_w8',['../sig__stfl_8h.html#aa52ca7b019cc2a8302926e2fe3b31ca0',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh15_5fw8_5fh10_5fw8_354',['OQS_SIG_STFL_alg_lms_sha256_h15_w8_h10_w8',['../sig__stfl_8h.html#a2d6952d6b8bc4a90311292f35adc8040',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh15_5fw8_5fh15_5fw8_355',['OQS_SIG_STFL_alg_lms_sha256_h15_w8_h15_w8',['../sig__stfl_8h.html#aac04b4f36c1403cea30a18b5836cdcc4',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh15_5fw8_5fh5_5fw8_356',['OQS_SIG_STFL_alg_lms_sha256_h15_w8_h5_w8',['../sig__stfl_8h.html#a911c5a0e3b031f6c62d436433d250577',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh20_5fw1_357',['OQS_SIG_STFL_alg_lms_sha256_h20_w1',['../sig__stfl_8h.html#a8cf8d56c0428817d4834fe51a1149605',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh20_5fw2_358',['OQS_SIG_STFL_alg_lms_sha256_h20_w2',['../sig__stfl_8h.html#afb27dfcc2ce5993016e2e0e0ee5cb5ff',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh20_5fw4_359',['OQS_SIG_STFL_alg_lms_sha256_h20_w4',['../sig__stfl_8h.html#a89933a329fe5a63774c4de91289fa8fd',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh20_5fw8_360',['OQS_SIG_STFL_alg_lms_sha256_h20_w8',['../sig__stfl_8h.html#aa32cbfe9590d7b23614c223a409acb7b',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh20_5fw8_5fh10_5fw8_361',['OQS_SIG_STFL_alg_lms_sha256_h20_w8_h10_w8',['../sig__stfl_8h.html#aa511a266b333fe9aac18c9dd6d139eed',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh20_5fw8_5fh15_5fw8_362',['OQS_SIG_STFL_alg_lms_sha256_h20_w8_h15_w8',['../sig__stfl_8h.html#af0beecc3b83d67f403de51e8383294c4',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh20_5fw8_5fh20_5fw8_363',['OQS_SIG_STFL_alg_lms_sha256_h20_w8_h20_w8',['../sig__stfl_8h.html#abbaa9f6589e2b2b636dc0af90115f837',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh20_5fw8_5fh5_5fw8_364',['OQS_SIG_STFL_alg_lms_sha256_h20_w8_h5_w8',['../sig__stfl_8h.html#ae7256831eeb80b38835d1ee6fc529322',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh25_5fw1_365',['OQS_SIG_STFL_alg_lms_sha256_h25_w1',['../sig__stfl_8h.html#aab875258d9427994fc7bbb2af0e5e266',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh25_5fw2_366',['OQS_SIG_STFL_alg_lms_sha256_h25_w2',['../sig__stfl_8h.html#ae8950a3b15c155275df597e437591316',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh25_5fw4_367',['OQS_SIG_STFL_alg_lms_sha256_h25_w4',['../sig__stfl_8h.html#acf565c63349bb389ef7c8cb90b6a5486',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh25_5fw8_368',['OQS_SIG_STFL_alg_lms_sha256_h25_w8',['../sig__stfl_8h.html#a4df481e125b9d216312a37ac32bca211',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh5_5fw1_369',['OQS_SIG_STFL_alg_lms_sha256_h5_w1',['../sig__stfl_8h.html#a8ff8e33f032f37295da316093a055c4d',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh5_5fw2_370',['OQS_SIG_STFL_alg_lms_sha256_h5_w2',['../sig__stfl_8h.html#a2c83f990a388bddac7e6752c05abe702',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh5_5fw4_371',['OQS_SIG_STFL_alg_lms_sha256_h5_w4',['../sig__stfl_8h.html#aed9af83913c45e434ece49eee074414e',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh5_5fw8_372',['OQS_SIG_STFL_alg_lms_sha256_h5_w8',['../sig__stfl_8h.html#a41b2e24ec57c7d21c31127c1016f35cf',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh5_5fw8_5fh5_5fw8_373',['OQS_SIG_STFL_alg_lms_sha256_h5_w8_h5_w8',['../sig__stfl_8h.html#a8f031d1fd2963a534b2660d7e8386360',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha256_5fh10_374',['OQS_SIG_STFL_alg_xmss_sha256_h10',['../sig__stfl_8h.html#a26e062358464780d59c7a9524d3c43b4',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha256_5fh10_5f192_375',['OQS_SIG_STFL_alg_xmss_sha256_h10_192',['../sig__stfl_8h.html#a35dbfdc09e3e5a7e28aca246a8fa4be1',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha256_5fh16_376',['OQS_SIG_STFL_alg_xmss_sha256_h16',['../sig__stfl_8h.html#aab4e16acd01d3576d5203bcdcd587597',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha256_5fh16_5f192_377',['OQS_SIG_STFL_alg_xmss_sha256_h16_192',['../sig__stfl_8h.html#a31d5239ca290320089a16a8a85497470',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha256_5fh20_378',['OQS_SIG_STFL_alg_xmss_sha256_h20',['../sig__stfl_8h.html#a4d154d31126620f4f1ca875c22376386',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha256_5fh20_5f192_379',['OQS_SIG_STFL_alg_xmss_sha256_h20_192',['../sig__stfl_8h.html#a2e18b64d5a21875deac9999db9be8b55',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha512_5fh10_380',['OQS_SIG_STFL_alg_xmss_sha512_h10',['../sig__stfl_8h.html#ad0373463848f6ed81e90a96911a59cb3',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha512_5fh16_381',['OQS_SIG_STFL_alg_xmss_sha512_h16',['../sig__stfl_8h.html#ac5388c71857117e81cff27cec0830984',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha512_5fh20_382',['OQS_SIG_STFL_alg_xmss_sha512_h20',['../sig__stfl_8h.html#ad9d77fc1035940963372183a9df937f9',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake128_5fh10_383',['OQS_SIG_STFL_alg_xmss_shake128_h10',['../sig__stfl_8h.html#a2955156ba5c1bae25651e36546c35c3a',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake128_5fh16_384',['OQS_SIG_STFL_alg_xmss_shake128_h16',['../sig__stfl_8h.html#a9126cefd5a8d3b0b983d82f472c246e0',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake128_5fh20_385',['OQS_SIG_STFL_alg_xmss_shake128_h20',['../sig__stfl_8h.html#a4c3821f81aa8bfcbda07bf836e34697d',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh10_386',['OQS_SIG_STFL_alg_xmss_shake256_h10',['../sig__stfl_8h.html#a9a52e4c58a1ec943bc26a244e581a5d5',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh10_5f192_387',['OQS_SIG_STFL_alg_xmss_shake256_h10_192',['../sig__stfl_8h.html#ade7ac517ceeba308f76e3e322b80ea93',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh10_5f256_388',['OQS_SIG_STFL_alg_xmss_shake256_h10_256',['../sig__stfl_8h.html#a7d30c5be593dd25eeb21ac3ee0991795',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh16_389',['OQS_SIG_STFL_alg_xmss_shake256_h16',['../sig__stfl_8h.html#a9039874bf745f9a59b843b285d638fe1',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh16_5f192_390',['OQS_SIG_STFL_alg_xmss_shake256_h16_192',['../sig__stfl_8h.html#a319ed0d2456865e1504eaa6ed48d0454',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh16_5f256_391',['OQS_SIG_STFL_alg_xmss_shake256_h16_256',['../sig__stfl_8h.html#ae6e8788966e4e6d7bfc275d67b23c6c1',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh20_392',['OQS_SIG_STFL_alg_xmss_shake256_h20',['../sig__stfl_8h.html#a134eaf27df0a945008d0564457142793',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh20_5f192_393',['OQS_SIG_STFL_alg_xmss_shake256_h20_192',['../sig__stfl_8h.html#a69b093fa003db46fafd010c1f51f8e10',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh20_5f256_394',['OQS_SIG_STFL_alg_xmss_shake256_h20_256',['../sig__stfl_8h.html#a87ae0c126c1ac303b8836b8271c8128e',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fsha256_5fh20_5f2_395',['OQS_SIG_STFL_alg_xmssmt_sha256_h20_2',['../sig__stfl_8h.html#ae3e063b8cd1013067aa84b78aca989c7',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fsha256_5fh20_5f4_396',['OQS_SIG_STFL_alg_xmssmt_sha256_h20_4',['../sig__stfl_8h.html#aeef1be40ce8c51e885cafb3f29bf9b27',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fsha256_5fh40_5f2_397',['OQS_SIG_STFL_alg_xmssmt_sha256_h40_2',['../sig__stfl_8h.html#ae23532222bf29ccaf1c555f26777b0d3',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fsha256_5fh40_5f4_398',['OQS_SIG_STFL_alg_xmssmt_sha256_h40_4',['../sig__stfl_8h.html#a5da9df6eac14d0e70f9519ffbe8f1aa4',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fsha256_5fh40_5f8_399',['OQS_SIG_STFL_alg_xmssmt_sha256_h40_8',['../sig__stfl_8h.html#a4cb12c08bbac2c341abb34a2e8157004',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fsha256_5fh60_5f12_400',['OQS_SIG_STFL_alg_xmssmt_sha256_h60_12',['../sig__stfl_8h.html#a0624d0ce490cb516bd34cd0b7cd6dbc9',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fsha256_5fh60_5f3_401',['OQS_SIG_STFL_alg_xmssmt_sha256_h60_3',['../sig__stfl_8h.html#a1d1d7982da726d4d4db14e7dcc1f5ae9',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fsha256_5fh60_5f6_402',['OQS_SIG_STFL_alg_xmssmt_sha256_h60_6',['../sig__stfl_8h.html#a364001609b5263baaf95a8a2e4d0e025',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fshake128_5fh20_5f2_403',['OQS_SIG_STFL_alg_xmssmt_shake128_h20_2',['../sig__stfl_8h.html#a356052cad37a8de2e8f487ff6a60cdd4',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fshake128_5fh20_5f4_404',['OQS_SIG_STFL_alg_xmssmt_shake128_h20_4',['../sig__stfl_8h.html#a92a811ff9e75b579159ac11ea8f3c9f1',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fshake128_5fh40_5f2_405',['OQS_SIG_STFL_alg_xmssmt_shake128_h40_2',['../sig__stfl_8h.html#a29168f3de1f260a5d31974d916533bec',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fshake128_5fh40_5f4_406',['OQS_SIG_STFL_alg_xmssmt_shake128_h40_4',['../sig__stfl_8h.html#a1a8e091fcf463ec998574c9a416d4459',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fshake128_5fh40_5f8_407',['OQS_SIG_STFL_alg_xmssmt_shake128_h40_8',['../sig__stfl_8h.html#a4323aaf27bd8d0aefe4d7f8b424ab6e0',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fshake128_5fh60_5f12_408',['OQS_SIG_STFL_alg_xmssmt_shake128_h60_12',['../sig__stfl_8h.html#aacae8b40b803f4b1571dfb052a866b4d',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fshake128_5fh60_5f3_409',['OQS_SIG_STFL_alg_xmssmt_shake128_h60_3',['../sig__stfl_8h.html#ae184014a30ec016333e8563a07bd8af7',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fshake128_5fh60_5f6_410',['OQS_SIG_STFL_alg_xmssmt_shake128_h60_6',['../sig__stfl_8h.html#a6c1bf4896e08ab1daa1aed74c728ca4a',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falgs_5flength_411',['OQS_SIG_STFL_algs_length',['../sig__stfl_8h.html#a9408f6799e3b74a29f97b4a0c22a068c',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5ffree_412',['OQS_SIG_STFL_free',['../sig__stfl_8h.html#a13f693e3f75a569b703c5c33730c9e4d',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fkeypair_413',['OQS_SIG_STFL_keypair',['../sig__stfl_8h.html#a1e3cdade2d967a38e6016d9c0467e09f',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fnew_414',['OQS_SIG_STFL_new',['../sig__stfl_8h.html#a3246ae3bd723c319adc81d897e85b983',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_415',['OQS_SIG_STFL_SECRET_KEY',['../struct_o_q_s___s_i_g___s_t_f_l___s_e_c_r_e_t___k_e_y.html',1,'OQS_SIG_STFL_SECRET_KEY'],['../sig__stfl_8h.html#a628b431696a5c389dfe017988af0ca72',1,'OQS_SIG_STFL_SECRET_KEY: sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5fdeserialize_416',['OQS_SIG_STFL_SECRET_KEY_deserialize',['../sig__stfl_8h.html#a6e9087c9d955efcc27db2095b37f8a84',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5ffree_417',['OQS_SIG_STFL_SECRET_KEY_free',['../sig__stfl_8h.html#ab44744b8433e5b322eb658091ef847fc',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5flock_418',['OQS_SIG_STFL_SECRET_KEY_lock',['../sig__stfl_8h.html#a1aedb69c1deffc649839757844e30dea',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5fnew_419',['OQS_SIG_STFL_SECRET_KEY_new',['../sig__stfl_8h.html#a005c6214cdc6526ac35d391afa9c8e42',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5fserialize_420',['OQS_SIG_STFL_SECRET_KEY_serialize',['../sig__stfl_8h.html#ac1a0cd75e295ae8ef5bd65a10e1eb645',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5fset_5flock_421',['OQS_SIG_STFL_SECRET_KEY_SET_lock',['../sig__stfl_8h.html#a65e6340a5b5b82f1bf13b3c1882e2be1',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5fset_5fmutex_422',['OQS_SIG_STFL_SECRET_KEY_SET_mutex',['../sig__stfl_8h.html#a45d605365e121909304ac60109071377',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5fset_5fstore_5fcb_423',['OQS_SIG_STFL_SECRET_KEY_SET_store_cb',['../sig__stfl_8h.html#a8e153544d3e1fdb0481d4591680a5381',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5fset_5funlock_424',['OQS_SIG_STFL_SECRET_KEY_SET_unlock',['../sig__stfl_8h.html#a4453cbe698cdb80504a40d8dd6a5d678',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5funlock_425',['OQS_SIG_STFL_SECRET_KEY_unlock',['../sig__stfl_8h.html#afdd207acadb903bba3e356a128b53021',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsign_426',['OQS_SIG_STFL_sign',['../sig__stfl_8h.html#af17ee48c6ad17f4c1c4e1bcb214357f6',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsigs_5fremaining_427',['OQS_SIG_STFL_sigs_remaining',['../sig__stfl_8h.html#a5adb9035274c2da51c1face8b3637de4',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsigs_5ftotal_428',['OQS_SIG_STFL_sigs_total',['../sig__stfl_8h.html#aa94ebbe9d770882aad2fb42f94933f76',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fverify_429',['OQS_SIG_STFL_verify',['../sig__stfl_8h.html#af8aa83ed2914238a0f3f08e1da8ca782',1,'sig_stfl.h']]], + ['oqs_5fsig_5fsupports_5fctx_5fstr_430',['OQS_SIG_supports_ctx_str',['../sig_8h.html#af8530b21ba0a476907cd940dac070fd7',1,'sig.h']]], + ['oqs_5fsig_5fverify_431',['OQS_SIG_verify',['../sig_8h.html#ada769c1d40aa64bb33e88938212a1711',1,'sig.h']]], + ['oqs_5fsig_5fverify_5fwith_5fctx_5fstr_432',['OQS_SIG_verify_with_ctx_str',['../sig_8h.html#a8cb7875203b8b4a5254682c0507c2e38',1,'sig.h']]], + ['oqs_5fspeed_5fuse_5farm_5fpmu_433',['OQS_SPEED_USE_ARM_PMU',['../options-for-configuring-liboqs-builds.html#oQS_SPEED_USE_ARM_PMU',1,'']]], + ['oqs_5fstatus_434',['OQS_STATUS',['../common_8h.html#a7682cde206b02be2addea22bb31cf7fc',1,'common.h']]], + ['oqs_5fstrict_5fwarnings_435',['OQS_STRICT_WARNINGS',['../options-for-configuring-liboqs-builds.html#oQS_STRICT_WARNINGS',1,'']]], + ['oqs_5fsuccess_436',['OQS_SUCCESS',['../common_8h.html#a7682cde206b02be2addea22bb31cf7fcab159e5a6b8893cceb83ecdb25a5ac1b7',1,'common.h']]], + ['oqs_5fthread_5fstop_437',['OQS_thread_stop',['../common_8h.html#ab77c81c618ae81e782a3a88fc2367201',1,'common.h']]], + ['oqs_5fuse_5fcpufeature_5finstructions_438',['OQS_USE_CPUFEATURE_INSTRUCTIONS',['../options-for-configuring-liboqs-builds.html#oQS_USE_CPUFEATURE_INSTRUCTIONS',1,'']]], + ['oqs_5fuse_5fcupqc_439',['OQS_USE_CUPQC',['../options-for-configuring-liboqs-builds.html#oQS_USE_CUPQC',1,'']]], + ['oqs_5fuse_5ficicle_440',['OQS_USE_ICICLE',['../options-for-configuring-liboqs-builds.html#oQS_USE_ICICLE',1,'']]], + ['oqs_5fuse_5fopenssl_441',['OQS_USE_OPENSSL',['../options-for-configuring-liboqs-builds.html#oQS_USE_OPENSSL',1,'']]], + ['oqs_5fversion_442',['OQS_version',['../common_8h.html#a2f4a7a8a26f4530f7c16fa2489623d95',1,'common.h']]], + ['overview_443',['Overview',['../index.html#overview',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/all_c.js b/liboqs/api/doxygen/search/all_c.js new file mode 100644 index 0000000..fd7ccb8 --- /dev/null +++ b/liboqs/api/doxygen/search/all_c.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['platform_20limitations_0',['Platform limitations',['../index.html#platform-limitations',1,'']]], + ['policy_1',['Security Policy',['../security-policy.html',1,'']]], + ['process_2',['Security Response Process',['../security-policy.html#security-response-process',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/all_d.js b/liboqs/api/doxygen/search/all_d.js new file mode 100644 index 0000000..a17bd8c --- /dev/null +++ b/liboqs/api/doxygen/search/all_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['quickstart_0',['Quickstart',['../index.html#quickstart',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/all_e.js b/liboqs/api/doxygen/search/all_e.js new file mode 100644 index 0000000..7a7a2fc --- /dev/null +++ b/liboqs/api/doxygen/search/all_e.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['rand_2eh_0',['rand.h',['../rand_8h.html',1,'']]], + ['reporting_20a_20vulnerability_1',['Reporting a Vulnerability',['../security-policy.html#reporting-a-vulnerability',1,'']]], + ['response_20process_2',['Security Response Process',['../security-policy.html#security-response-process',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/all_f.js b/liboqs/api/doxygen/search/all_f.js new file mode 100644 index 0000000..520512a --- /dev/null +++ b/liboqs/api/doxygen/search/all_f.js @@ -0,0 +1,103 @@ +var searchData= +[ + ['schemes_0',['schemes',['../index.html#signature-schemes',1,'Signature schemes'],['../index.html#stateful-signature-schemes',1,'Stateful signature schemes']]], + ['secret_5fkey_5fdata_1',['secret_key_data',['../struct_o_q_s___s_i_g___s_t_f_l___s_e_c_r_e_t___k_e_y.html#a6a3ed17983adad27237ccf6e80959831',1,'OQS_SIG_STFL_SECRET_KEY']]], + ['secure_5fstore_5fscrt_5fkey_2',['secure_store_scrt_key',['../struct_o_q_s___s_i_g___s_t_f_l___s_e_c_r_e_t___k_e_y.html#ab7fe4b4bfc2d7c4385bf6f5030293c9f',1,'OQS_SIG_STFL_SECRET_KEY']]], + ['secure_5fstore_5fsk_3',['secure_store_sk',['../sig__stfl_8h.html#a13be5abad9c94c0b153fee0195c6bd45',1,'sig_stfl.h']]], + ['security_4',['Limitations and Security',['../index.html#limitations-and-security',1,'']]], + ['security_20policy_5',['Security Policy',['../security-policy.html',1,'']]], + ['security_20response_20process_6',['Security Response Process',['../security-policy.html#security-response-process',1,'']]], + ['serialize_5fkey_7',['serialize_key',['../struct_o_q_s___s_i_g___s_t_f_l___s_e_c_r_e_t___k_e_y.html#a8f1a1597686088170aac748f9672d440',1,'OQS_SIG_STFL_SECRET_KEY']]], + ['set_5fscrt_5fkey_5fstore_5fcb_8',['set_scrt_key_store_cb',['../struct_o_q_s___s_i_g___s_t_f_l___s_e_c_r_e_t___k_e_y.html#a8c1f6b0374fbf693496548c74fca0cb1',1,'OQS_SIG_STFL_SECRET_KEY']]], + ['sha2_5fops_2eh_9',['sha2_ops.h',['../sha2__ops_8h.html',1,'']]], + ['sha2_5fsha256_10',['SHA2_sha256',['../struct_o_q_s___s_h_a2__callbacks.html#a4c8128c3028227ae544799cee59715fe',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha256_5finc_11',['SHA2_sha256_inc',['../struct_o_q_s___s_h_a2__callbacks.html#a8f8aca137f8d4eff36e3e27a082a7356',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha256_5finc_5fblocks_12',['SHA2_sha256_inc_blocks',['../struct_o_q_s___s_h_a2__callbacks.html#a6c2e087c4161e085e4392207d692f0a7',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha256_5finc_5fctx_5fclone_13',['SHA2_sha256_inc_ctx_clone',['../struct_o_q_s___s_h_a2__callbacks.html#a2d1f8174d5897bb79ddcba76e025af53',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha256_5finc_5fctx_5frelease_14',['SHA2_sha256_inc_ctx_release',['../struct_o_q_s___s_h_a2__callbacks.html#aab46620effb05d878dc4bd12118ab5ea',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha256_5finc_5ffinalize_15',['SHA2_sha256_inc_finalize',['../struct_o_q_s___s_h_a2__callbacks.html#a25175898bed0f0c4ec4cf919fb8f8061',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha256_5finc_5finit_16',['SHA2_sha256_inc_init',['../struct_o_q_s___s_h_a2__callbacks.html#a487f1da272286e6c11ac212fcd0a74c1',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha384_17',['SHA2_sha384',['../struct_o_q_s___s_h_a2__callbacks.html#a49485de9e9e7fedab1c053b622040201',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha384_5finc_5fblocks_18',['SHA2_sha384_inc_blocks',['../struct_o_q_s___s_h_a2__callbacks.html#a979544a081d11a5c0cd7dda5a98e8fc1',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha384_5finc_5fctx_5fclone_19',['SHA2_sha384_inc_ctx_clone',['../struct_o_q_s___s_h_a2__callbacks.html#aad21f959ef06c2b6d2de6c62da14da3e',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha384_5finc_5fctx_5frelease_20',['SHA2_sha384_inc_ctx_release',['../struct_o_q_s___s_h_a2__callbacks.html#a7fe788323f7b67229750cce90827ded5',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha384_5finc_5ffinalize_21',['SHA2_sha384_inc_finalize',['../struct_o_q_s___s_h_a2__callbacks.html#a80b005519a42d1d3c5cc443f24f8465e',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha384_5finc_5finit_22',['SHA2_sha384_inc_init',['../struct_o_q_s___s_h_a2__callbacks.html#a1ab1eebde321ab13de793019bd08e04d',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha512_23',['SHA2_sha512',['../struct_o_q_s___s_h_a2__callbacks.html#a8a7b2306b76aa320df81d5fa5892df22',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha512_5finc_5fblocks_24',['SHA2_sha512_inc_blocks',['../struct_o_q_s___s_h_a2__callbacks.html#acb229fdbcea7a0bcf1ffd4f3c84efcba',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha512_5finc_5fctx_5fclone_25',['SHA2_sha512_inc_ctx_clone',['../struct_o_q_s___s_h_a2__callbacks.html#af38b189ebe41872474f0d2f5180061eb',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha512_5finc_5fctx_5frelease_26',['SHA2_sha512_inc_ctx_release',['../struct_o_q_s___s_h_a2__callbacks.html#aa706a80780c068469b364bdb948925d1',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha512_5finc_5ffinalize_27',['SHA2_sha512_inc_finalize',['../struct_o_q_s___s_h_a2__callbacks.html#a0eeee673788ca035a7ed328525d10a07',1,'OQS_SHA2_callbacks']]], + ['sha2_5fsha512_5finc_5finit_28',['SHA2_sha512_inc_init',['../struct_o_q_s___s_h_a2__callbacks.html#a8efc789189750740bbb5677ed6ab88d7',1,'OQS_SHA2_callbacks']]], + ['sha3_5fops_2eh_29',['sha3_ops.h',['../sha3__ops_8h.html',1,'']]], + ['sha3_5fsha3_5f256_30',['SHA3_sha3_256',['../struct_o_q_s___s_h_a3__callbacks.html#afca69307df5cff8e2cee380adba01a5e',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f256_5finc_5fabsorb_31',['SHA3_sha3_256_inc_absorb',['../struct_o_q_s___s_h_a3__callbacks.html#adc7a30a1d3edd55fcdc04223b041e08a',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f256_5finc_5fctx_5fclone_32',['SHA3_sha3_256_inc_ctx_clone',['../struct_o_q_s___s_h_a3__callbacks.html#a1e9c631101bf1dded6782fcec2187d46',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f256_5finc_5fctx_5frelease_33',['SHA3_sha3_256_inc_ctx_release',['../struct_o_q_s___s_h_a3__callbacks.html#abf3233fee4682e28e1096a7425018caa',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f256_5finc_5fctx_5freset_34',['SHA3_sha3_256_inc_ctx_reset',['../struct_o_q_s___s_h_a3__callbacks.html#a2afe71837f2220c5fbbd8fd9d26c9abd',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f256_5finc_5ffinalize_35',['SHA3_sha3_256_inc_finalize',['../struct_o_q_s___s_h_a3__callbacks.html#adf397af6a9e9d46d3e34e2a8b072bd4a',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f256_5finc_5finit_36',['SHA3_sha3_256_inc_init',['../struct_o_q_s___s_h_a3__callbacks.html#a83111059c51b2264cb520fcb129cb7e5',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f384_37',['SHA3_sha3_384',['../struct_o_q_s___s_h_a3__callbacks.html#a032ccfeb05118ed83bc04f1e327ac777',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f384_5finc_5fabsorb_38',['SHA3_sha3_384_inc_absorb',['../struct_o_q_s___s_h_a3__callbacks.html#ac07294e75d3a60ba7014003f51dc08dd',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f384_5finc_5fctx_5fclone_39',['SHA3_sha3_384_inc_ctx_clone',['../struct_o_q_s___s_h_a3__callbacks.html#a2b5251de398af111a931eadab9a474e0',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f384_5finc_5fctx_5frelease_40',['SHA3_sha3_384_inc_ctx_release',['../struct_o_q_s___s_h_a3__callbacks.html#a461d52fe669467b88a35a67160de4e79',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f384_5finc_5fctx_5freset_41',['SHA3_sha3_384_inc_ctx_reset',['../struct_o_q_s___s_h_a3__callbacks.html#a9b3450f2e024a7ed38b50b9e80d864d3',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f384_5finc_5ffinalize_42',['SHA3_sha3_384_inc_finalize',['../struct_o_q_s___s_h_a3__callbacks.html#acdcb9868a4e063abd5e93f5c9a5da891',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f384_5finc_5finit_43',['SHA3_sha3_384_inc_init',['../struct_o_q_s___s_h_a3__callbacks.html#aa64ccf4289c523ebd253295c5ae56592',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f512_44',['SHA3_sha3_512',['../struct_o_q_s___s_h_a3__callbacks.html#a3543729f5e6a271bcbf865f237044efa',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f512_5finc_5fabsorb_45',['SHA3_sha3_512_inc_absorb',['../struct_o_q_s___s_h_a3__callbacks.html#a382a016d45fd9d16ee4d6c7eb605d494',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f512_5finc_5fctx_5fclone_46',['SHA3_sha3_512_inc_ctx_clone',['../struct_o_q_s___s_h_a3__callbacks.html#a0597c824f09616d6e41f64aa2d9bf49c',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f512_5finc_5fctx_5frelease_47',['SHA3_sha3_512_inc_ctx_release',['../struct_o_q_s___s_h_a3__callbacks.html#af29d8fb6f7181fd1d7a2774ee4340a59',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f512_5finc_5fctx_5freset_48',['SHA3_sha3_512_inc_ctx_reset',['../struct_o_q_s___s_h_a3__callbacks.html#a9e1d9108cbb9d425bf33778a24ccd7a4',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f512_5finc_5ffinalize_49',['SHA3_sha3_512_inc_finalize',['../struct_o_q_s___s_h_a3__callbacks.html#ac3b7d341ff8ecc64b56b3ce4d47a39b7',1,'OQS_SHA3_callbacks']]], + ['sha3_5fsha3_5f512_5finc_5finit_50',['SHA3_sha3_512_inc_init',['../struct_o_q_s___s_h_a3__callbacks.html#a2ffa9f0e72919d26435a5b730d8470fd',1,'OQS_SHA3_callbacks']]], + ['sha3_5fshake128_51',['SHA3_shake128',['../struct_o_q_s___s_h_a3__callbacks.html#a77f2b04e28a64b70a2e312bb4fd4591e',1,'OQS_SHA3_callbacks']]], + ['sha3_5fshake128_5finc_5fabsorb_52',['SHA3_shake128_inc_absorb',['../struct_o_q_s___s_h_a3__callbacks.html#a69fc6b2582255d687b8d72250eab5d75',1,'OQS_SHA3_callbacks']]], + ['sha3_5fshake128_5finc_5fctx_5fclone_53',['SHA3_shake128_inc_ctx_clone',['../struct_o_q_s___s_h_a3__callbacks.html#a99c76eb4731bcfb0eb6b60e2f35fbfd9',1,'OQS_SHA3_callbacks']]], + ['sha3_5fshake128_5finc_5fctx_5frelease_54',['SHA3_shake128_inc_ctx_release',['../struct_o_q_s___s_h_a3__callbacks.html#ac98545678b18ec001e655c3b30b9a94f',1,'OQS_SHA3_callbacks']]], + ['sha3_5fshake128_5finc_5fctx_5freset_55',['SHA3_shake128_inc_ctx_reset',['../struct_o_q_s___s_h_a3__callbacks.html#aeb0ca52062e8c8100fd7a0b89c71bc2d',1,'OQS_SHA3_callbacks']]], + ['sha3_5fshake128_5finc_5ffinalize_56',['SHA3_shake128_inc_finalize',['../struct_o_q_s___s_h_a3__callbacks.html#a44ee906e83d47ba662846d974cb5dd9a',1,'OQS_SHA3_callbacks']]], + ['sha3_5fshake128_5finc_5finit_57',['SHA3_shake128_inc_init',['../struct_o_q_s___s_h_a3__callbacks.html#a297fb54aa16128b6c98bc49b7dd43550',1,'OQS_SHA3_callbacks']]], + ['sha3_5fshake128_5finc_5fsqueeze_58',['SHA3_shake128_inc_squeeze',['../struct_o_q_s___s_h_a3__callbacks.html#a8e2283cc930f99b674ab0e5640348701',1,'OQS_SHA3_callbacks']]], + ['sha3_5fshake128_5fx4_59',['SHA3_shake128_x4',['../struct_o_q_s___s_h_a3__x4__callbacks.html#a842d24b58e44e8c774d456e8aacebc9d',1,'OQS_SHA3_x4_callbacks']]], + ['sha3_5fshake128_5fx4_5finc_5fabsorb_60',['SHA3_shake128_x4_inc_absorb',['../struct_o_q_s___s_h_a3__x4__callbacks.html#a94d69973ca85ae2933bf14e236f8a1ad',1,'OQS_SHA3_x4_callbacks']]], + ['sha3_5fshake128_5fx4_5finc_5fctx_5fclone_61',['SHA3_shake128_x4_inc_ctx_clone',['../struct_o_q_s___s_h_a3__x4__callbacks.html#ace4db639f584fd262de3f2348eae54ac',1,'OQS_SHA3_x4_callbacks']]], + ['sha3_5fshake128_5fx4_5finc_5fctx_5frelease_62',['SHA3_shake128_x4_inc_ctx_release',['../struct_o_q_s___s_h_a3__x4__callbacks.html#aa4fb4355c7b2d74603bf050cf7c4a04c',1,'OQS_SHA3_x4_callbacks']]], + ['sha3_5fshake128_5fx4_5finc_5fctx_5freset_63',['SHA3_shake128_x4_inc_ctx_reset',['../struct_o_q_s___s_h_a3__x4__callbacks.html#a4079326674b4d7a71ac47b687c995a53',1,'OQS_SHA3_x4_callbacks']]], + ['sha3_5fshake128_5fx4_5finc_5ffinalize_64',['SHA3_shake128_x4_inc_finalize',['../struct_o_q_s___s_h_a3__x4__callbacks.html#ab2c898b22a77577a31ed3cbd15734a10',1,'OQS_SHA3_x4_callbacks']]], + ['sha3_5fshake128_5fx4_5finc_5finit_65',['SHA3_shake128_x4_inc_init',['../struct_o_q_s___s_h_a3__x4__callbacks.html#aaa706f724c3f7a15c6c9dd8d1982545e',1,'OQS_SHA3_x4_callbacks']]], + ['sha3_5fshake128_5fx4_5finc_5fsqueeze_66',['SHA3_shake128_x4_inc_squeeze',['../struct_o_q_s___s_h_a3__x4__callbacks.html#a230b95932fc56eb3d6dd9324bd92db07',1,'OQS_SHA3_x4_callbacks']]], + ['sha3_5fshake256_67',['SHA3_shake256',['../struct_o_q_s___s_h_a3__callbacks.html#a775e8294541c8488f05c9367f6b27646',1,'OQS_SHA3_callbacks']]], + ['sha3_5fshake256_5finc_5fabsorb_68',['SHA3_shake256_inc_absorb',['../struct_o_q_s___s_h_a3__callbacks.html#a65f8de48b0f92c2419d080c6ced9bc96',1,'OQS_SHA3_callbacks']]], + ['sha3_5fshake256_5finc_5fctx_5fclone_69',['SHA3_shake256_inc_ctx_clone',['../struct_o_q_s___s_h_a3__callbacks.html#a2d143639172113fba6b1112fe44320c5',1,'OQS_SHA3_callbacks']]], + ['sha3_5fshake256_5finc_5fctx_5frelease_70',['SHA3_shake256_inc_ctx_release',['../struct_o_q_s___s_h_a3__callbacks.html#abf0c6da6daf1661dadcddb01b1b685f2',1,'OQS_SHA3_callbacks']]], + ['sha3_5fshake256_5finc_5fctx_5freset_71',['SHA3_shake256_inc_ctx_reset',['../struct_o_q_s___s_h_a3__callbacks.html#a7f52db1f35adb2599e7efff9bb4848f6',1,'OQS_SHA3_callbacks']]], + ['sha3_5fshake256_5finc_5ffinalize_72',['SHA3_shake256_inc_finalize',['../struct_o_q_s___s_h_a3__callbacks.html#a813c1b6c42c8302af90d84641880e7af',1,'OQS_SHA3_callbacks']]], + ['sha3_5fshake256_5finc_5finit_73',['SHA3_shake256_inc_init',['../struct_o_q_s___s_h_a3__callbacks.html#a18524d4afb61a089ac0d702c1dc02135',1,'OQS_SHA3_callbacks']]], + ['sha3_5fshake256_5finc_5fsqueeze_74',['SHA3_shake256_inc_squeeze',['../struct_o_q_s___s_h_a3__callbacks.html#a7f22a407961af05f11c64aa889eb7c62',1,'OQS_SHA3_callbacks']]], + ['sha3_5fshake256_5fx4_75',['SHA3_shake256_x4',['../struct_o_q_s___s_h_a3__x4__callbacks.html#a80380fea9ae5a2e811c800f7588e56b6',1,'OQS_SHA3_x4_callbacks']]], + ['sha3_5fshake256_5fx4_5finc_5fabsorb_76',['SHA3_shake256_x4_inc_absorb',['../struct_o_q_s___s_h_a3__x4__callbacks.html#a14e9fc9cda704e1a1a7e8ed533abb44a',1,'OQS_SHA3_x4_callbacks']]], + ['sha3_5fshake256_5fx4_5finc_5fctx_5fclone_77',['SHA3_shake256_x4_inc_ctx_clone',['../struct_o_q_s___s_h_a3__x4__callbacks.html#ad79df83763401143330bb66fb2320d96',1,'OQS_SHA3_x4_callbacks']]], + ['sha3_5fshake256_5fx4_5finc_5fctx_5frelease_78',['SHA3_shake256_x4_inc_ctx_release',['../struct_o_q_s___s_h_a3__x4__callbacks.html#a605932e37174cd72ac38b91bc3869a69',1,'OQS_SHA3_x4_callbacks']]], + ['sha3_5fshake256_5fx4_5finc_5fctx_5freset_79',['SHA3_shake256_x4_inc_ctx_reset',['../struct_o_q_s___s_h_a3__x4__callbacks.html#ab64634b351ee8f18a0d102ff83ce0836',1,'OQS_SHA3_x4_callbacks']]], + ['sha3_5fshake256_5fx4_5finc_5ffinalize_80',['SHA3_shake256_x4_inc_finalize',['../struct_o_q_s___s_h_a3__x4__callbacks.html#a24dfe93bd33763d05bcb8daa3cc170a0',1,'OQS_SHA3_x4_callbacks']]], + ['sha3_5fshake256_5fx4_5finc_5finit_81',['SHA3_shake256_x4_inc_init',['../struct_o_q_s___s_h_a3__x4__callbacks.html#a52342d7d9d6c0cad1850160669ca1a48',1,'OQS_SHA3_x4_callbacks']]], + ['sha3_5fshake256_5fx4_5finc_5fsqueeze_82',['SHA3_shake256_x4_inc_squeeze',['../struct_o_q_s___s_h_a3__x4__callbacks.html#a3c9964cf2a60ef95c2b020f0887819cc',1,'OQS_SHA3_x4_callbacks']]], + ['sha3x4_5fops_2eh_83',['sha3x4_ops.h',['../sha3x4__ops_8h.html',1,'']]], + ['sig_2eh_84',['sig.h',['../sig_8h.html',1,'']]], + ['sig_5fstfl_2eh_85',['sig_stfl.h',['../sig__stfl_8h.html',1,'']]], + ['sig_5fwith_5fctx_5fsupport_86',['sig_with_ctx_support',['../struct_o_q_s___s_i_g.html#ae38441fcc2b7ca40e1ab8fd5f096a68b',1,'OQS_SIG']]], + ['sign_87',['sign',['../struct_o_q_s___s_i_g.html#a8709c11b94fb3a16a7ef4e9b1b256b55',1,'OQS_SIG']]], + ['sign_5fwith_5fctx_5fstr_88',['sign_with_ctx_str',['../struct_o_q_s___s_i_g.html#a79a3d9530fbfca60034bc1f4b6458046',1,'OQS_SIG']]], + ['signature_20schemes_89',['Signature schemes',['../index.html#signature-schemes',1,'']]], + ['signature_20schemes_90',['Stateful signature schemes',['../index.html#stateful-signature-schemes',1,'']]], + ['signatures_91',['Stateful Hash Based Signatures',['../options-for-configuring-liboqs-builds.html#stateful-hash-based-signatures',1,'']]], + ['size_5ft_5fto_5fint_5for_5fexit_92',['SIZE_T_TO_INT_OR_EXIT',['../common_8h.html#a743a9d9db303d012b3240f00f8d0d646',1,'common.h']]], + ['stateful_20hash_20based_20signatures_93',['Stateful Hash Based Signatures',['../options-for-configuring-liboqs-builds.html#stateful-hash-based-signatures',1,'']]], + ['stateful_20signature_20schemes_94',['Stateful signature schemes',['../index.html#stateful-signature-schemes',1,'']]], + ['status_95',['Status',['../index.html#status',1,'']]], + ['suf_5fcma_96',['suf_cma',['../struct_o_q_s___s_i_g.html#ae0cfcaba9a2f28e4baed8ed3dafbc690',1,'OQS_SIG']]], + ['support_20limitations_97',['Support limitations',['../index.html#support-limitations',1,'']]], + ['supported_20algorithms_98',['Supported Algorithms',['../index.html#supported-algorithms',1,'']]], + ['supported_20versions_99',['Supported Versions',['../security-policy.html#supported-versions',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/classes_0.js b/liboqs/api/doxygen/search/classes_0.js new file mode 100644 index 0000000..4db0817 --- /dev/null +++ b/liboqs/api/doxygen/search/classes_0.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['oqs_5faes_5fcallbacks_0',['OQS_AES_callbacks',['../struct_o_q_s___a_e_s__callbacks.html',1,'']]], + ['oqs_5fkem_1',['OQS_KEM',['../struct_o_q_s___k_e_m.html',1,'']]], + ['oqs_5fsha2_5fcallbacks_2',['OQS_SHA2_callbacks',['../struct_o_q_s___s_h_a2__callbacks.html',1,'']]], + ['oqs_5fsha2_5fsha224_5fctx_3',['OQS_SHA2_sha224_ctx',['../struct_o_q_s___s_h_a2__sha224__ctx.html',1,'']]], + ['oqs_5fsha2_5fsha256_5fctx_4',['OQS_SHA2_sha256_ctx',['../struct_o_q_s___s_h_a2__sha256__ctx.html',1,'']]], + ['oqs_5fsha2_5fsha384_5fctx_5',['OQS_SHA2_sha384_ctx',['../struct_o_q_s___s_h_a2__sha384__ctx.html',1,'']]], + ['oqs_5fsha2_5fsha512_5fctx_6',['OQS_SHA2_sha512_ctx',['../struct_o_q_s___s_h_a2__sha512__ctx.html',1,'']]], + ['oqs_5fsha3_5fcallbacks_7',['OQS_SHA3_callbacks',['../struct_o_q_s___s_h_a3__callbacks.html',1,'']]], + ['oqs_5fsha3_5fsha3_5f256_5finc_5fctx_8',['OQS_SHA3_sha3_256_inc_ctx',['../struct_o_q_s___s_h_a3__sha3__256__inc__ctx.html',1,'']]], + ['oqs_5fsha3_5fsha3_5f384_5finc_5fctx_9',['OQS_SHA3_sha3_384_inc_ctx',['../struct_o_q_s___s_h_a3__sha3__384__inc__ctx.html',1,'']]], + ['oqs_5fsha3_5fsha3_5f512_5finc_5fctx_10',['OQS_SHA3_sha3_512_inc_ctx',['../struct_o_q_s___s_h_a3__sha3__512__inc__ctx.html',1,'']]], + ['oqs_5fsha3_5fshake128_5finc_5fctx_11',['OQS_SHA3_shake128_inc_ctx',['../struct_o_q_s___s_h_a3__shake128__inc__ctx.html',1,'']]], + ['oqs_5fsha3_5fshake128_5fx4_5finc_5fctx_12',['OQS_SHA3_shake128_x4_inc_ctx',['../struct_o_q_s___s_h_a3__shake128__x4__inc__ctx.html',1,'']]], + ['oqs_5fsha3_5fshake256_5finc_5fctx_13',['OQS_SHA3_shake256_inc_ctx',['../struct_o_q_s___s_h_a3__shake256__inc__ctx.html',1,'']]], + ['oqs_5fsha3_5fshake256_5fx4_5finc_5fctx_14',['OQS_SHA3_shake256_x4_inc_ctx',['../struct_o_q_s___s_h_a3__shake256__x4__inc__ctx.html',1,'']]], + ['oqs_5fsha3_5fx4_5fcallbacks_15',['OQS_SHA3_x4_callbacks',['../struct_o_q_s___s_h_a3__x4__callbacks.html',1,'']]], + ['oqs_5fsig_16',['OQS_SIG',['../struct_o_q_s___s_i_g.html',1,'']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_17',['OQS_SIG_STFL_SECRET_KEY',['../struct_o_q_s___s_i_g___s_t_f_l___s_e_c_r_e_t___k_e_y.html',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/defines_0.js b/liboqs/api/doxygen/search/defines_0.js new file mode 100644 index 0000000..3630dc3 --- /dev/null +++ b/liboqs/api/doxygen/search/defines_0.js @@ -0,0 +1,338 @@ +var searchData= +[ + ['oqs_5fapi_0',['OQS_API',['../common_8h.html#a63a8270bf853669651b654aa1a700f62',1,'common.h']]], + ['oqs_5fexit_5fif_5fnullptr_1',['OQS_EXIT_IF_NULLPTR',['../common_8h.html#abb4477a04df674a7cfe4b385d9bf062d',1,'common.h']]], + ['oqs_5fkem_5falg_5fbike_5fl1_2',['OQS_KEM_alg_bike_l1',['../kem_8h.html#ab8acba379e6cdf4fd55e08746c783203',1,'kem.h']]], + ['oqs_5fkem_5falg_5fbike_5fl3_3',['OQS_KEM_alg_bike_l3',['../kem_8h.html#a8262b9f8e34b920e798faeb4c9e0d1c4',1,'kem.h']]], + ['oqs_5fkem_5falg_5fbike_5fl5_4',['OQS_KEM_alg_bike_l5',['../kem_8h.html#a630fe09de3aea79d281ce6f226e86d31',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f348864_5',['OQS_KEM_alg_classic_mceliece_348864',['../kem_8h.html#a7c77e138fef860ef317850a0bf7b8087',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f348864f_6',['OQS_KEM_alg_classic_mceliece_348864f',['../kem_8h.html#aafbb10e443869b9227f82c8c823aa5d9',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f460896_7',['OQS_KEM_alg_classic_mceliece_460896',['../kem_8h.html#a1dad077763268d4df11cc2d1d207bce8',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f460896f_8',['OQS_KEM_alg_classic_mceliece_460896f',['../kem_8h.html#aa8dd463cf3f28d9fa8bae635e7c9dab0',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f6688128_9',['OQS_KEM_alg_classic_mceliece_6688128',['../kem_8h.html#a2b424d1497f054a71e6365059cd0e5be',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f6688128f_10',['OQS_KEM_alg_classic_mceliece_6688128f',['../kem_8h.html#a39dd9377c0545aa0202e246886482f71',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f6960119_11',['OQS_KEM_alg_classic_mceliece_6960119',['../kem_8h.html#a297ca3c56998d8a4b7280365c1a3216a',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f6960119f_12',['OQS_KEM_alg_classic_mceliece_6960119f',['../kem_8h.html#af0d51f61ac63e4660082b9b45cf0dc58',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f8192128_13',['OQS_KEM_alg_classic_mceliece_8192128',['../kem_8h.html#ab5c03a2a39e95a6dc52a6065fc07c553',1,'kem.h']]], + ['oqs_5fkem_5falg_5fclassic_5fmceliece_5f8192128f_14',['OQS_KEM_alg_classic_mceliece_8192128f',['../kem_8h.html#a62d7927e8706664edba8fec68f0fefb4',1,'kem.h']]], + ['oqs_5fkem_5falg_5ffrodokem_5f1344_5faes_15',['OQS_KEM_alg_frodokem_1344_aes',['../kem_8h.html#af4b3205d87c82ad71c5afca366a417c1',1,'kem.h']]], + ['oqs_5fkem_5falg_5ffrodokem_5f1344_5fshake_16',['OQS_KEM_alg_frodokem_1344_shake',['../kem_8h.html#a7898043b6ff3964931247ed9c46b6c6b',1,'kem.h']]], + ['oqs_5fkem_5falg_5ffrodokem_5f640_5faes_17',['OQS_KEM_alg_frodokem_640_aes',['../kem_8h.html#a83bf4271cb3bff6fa570ec36c31fe4a4',1,'kem.h']]], + ['oqs_5fkem_5falg_5ffrodokem_5f640_5fshake_18',['OQS_KEM_alg_frodokem_640_shake',['../kem_8h.html#a41c38afbbdda63500525568841a1be83',1,'kem.h']]], + ['oqs_5fkem_5falg_5ffrodokem_5f976_5faes_19',['OQS_KEM_alg_frodokem_976_aes',['../kem_8h.html#ab8df28bc213b26742f8c6e0197674f91',1,'kem.h']]], + ['oqs_5fkem_5falg_5ffrodokem_5f976_5fshake_20',['OQS_KEM_alg_frodokem_976_shake',['../kem_8h.html#a4a4f8d79093d163d7227340fb3ca658b',1,'kem.h']]], + ['oqs_5fkem_5falg_5fhqc_5f128_21',['OQS_KEM_alg_hqc_128',['../kem_8h.html#a52967cf3fbd85ea0831ffc7ff11bd9a4',1,'kem.h']]], + ['oqs_5fkem_5falg_5fhqc_5f192_22',['OQS_KEM_alg_hqc_192',['../kem_8h.html#a527402cbd9af8276224705e89b320896',1,'kem.h']]], + ['oqs_5fkem_5falg_5fhqc_5f256_23',['OQS_KEM_alg_hqc_256',['../kem_8h.html#a6fca116502f5f54d8949d45b2d1c88fc',1,'kem.h']]], + ['oqs_5fkem_5falg_5fkyber_5f1024_24',['OQS_KEM_alg_kyber_1024',['../kem_8h.html#af1a9e9769a9e138d3ee632c926d139e4',1,'kem.h']]], + ['oqs_5fkem_5falg_5fkyber_5f512_25',['OQS_KEM_alg_kyber_512',['../kem_8h.html#a2e2ad5fcba401f6f6ef70eb90273c001',1,'kem.h']]], + ['oqs_5fkem_5falg_5fkyber_5f768_26',['OQS_KEM_alg_kyber_768',['../kem_8h.html#a9cb55366903c97d153b55f65ad5c6175',1,'kem.h']]], + ['oqs_5fkem_5falg_5fml_5fkem_5f1024_27',['OQS_KEM_alg_ml_kem_1024',['../kem_8h.html#a84ea9a0bf86a21e20ee0530f3ce57023',1,'kem.h']]], + ['oqs_5fkem_5falg_5fml_5fkem_5f512_28',['OQS_KEM_alg_ml_kem_512',['../kem_8h.html#a927075c2414018aa4d8574d5f97d5e23',1,'kem.h']]], + ['oqs_5fkem_5falg_5fml_5fkem_5f768_29',['OQS_KEM_alg_ml_kem_768',['../kem_8h.html#a81b43cdbed118efcdf0bc5193ec55521',1,'kem.h']]], + ['oqs_5fkem_5falg_5fntru_5fhps2048509_30',['OQS_KEM_alg_ntru_hps2048509',['../kem_8h.html#a4ea6db21722aa486155f7b4942d4afc7',1,'kem.h']]], + ['oqs_5fkem_5falg_5fntru_5fhps2048677_31',['OQS_KEM_alg_ntru_hps2048677',['../kem_8h.html#a0d4371bb35ff49a7729d69788f0ca223',1,'kem.h']]], + ['oqs_5fkem_5falg_5fntru_5fhps40961229_32',['OQS_KEM_alg_ntru_hps40961229',['../kem_8h.html#a99b22275c064d7a813002014810285f0',1,'kem.h']]], + ['oqs_5fkem_5falg_5fntru_5fhps4096821_33',['OQS_KEM_alg_ntru_hps4096821',['../kem_8h.html#ab20b817c7129e9ff879b098dd2ea1030',1,'kem.h']]], + ['oqs_5fkem_5falg_5fntru_5fhrss1373_34',['OQS_KEM_alg_ntru_hrss1373',['../kem_8h.html#a21ea9dccdfb563b898d1ae6852a653c6',1,'kem.h']]], + ['oqs_5fkem_5falg_5fntru_5fhrss701_35',['OQS_KEM_alg_ntru_hrss701',['../kem_8h.html#a1394c334f974afa267f8d8bb2660e57b',1,'kem.h']]], + ['oqs_5fkem_5falg_5fntruprime_5fsntrup761_36',['OQS_KEM_alg_ntruprime_sntrup761',['../kem_8h.html#a0819c6565b4d7f6358af576025270a5c',1,'kem.h']]], + ['oqs_5fkem_5falgs_5flength_37',['OQS_KEM_algs_length',['../kem_8h.html#acf4f3e6dd0a59facc659223de3e6ebe7',1,'kem.h']]], + ['oqs_5frand_5falg_5fopenssl_38',['OQS_RAND_alg_openssl',['../rand_8h.html#ae9e93932aa33fa57eaaf6248c596db14',1,'rand.h']]], + ['oqs_5frand_5falg_5fsystem_39',['OQS_RAND_alg_system',['../rand_8h.html#a7a533e4e2d3bb015e9fc97ae732a27dd',1,'rand.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f128_5fbalanced_40',['OQS_SIG_alg_cross_rsdp_128_balanced',['../sig_8h.html#abadee1f3ea4c980ba3a4e544d6a1a7a8',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f128_5ffast_41',['OQS_SIG_alg_cross_rsdp_128_fast',['../sig_8h.html#a18073581176b71cf20c7469d3d1c8ce6',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f128_5fsmall_42',['OQS_SIG_alg_cross_rsdp_128_small',['../sig_8h.html#af08376faf02227e568dba737543744c3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f192_5fbalanced_43',['OQS_SIG_alg_cross_rsdp_192_balanced',['../sig_8h.html#a11db83528529864cb3862c6817eab745',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f192_5ffast_44',['OQS_SIG_alg_cross_rsdp_192_fast',['../sig_8h.html#a39f33e16ced56a1fc92f83a683c10353',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f192_5fsmall_45',['OQS_SIG_alg_cross_rsdp_192_small',['../sig_8h.html#a2ef72942ad9b414e357b59fb2ec7eb09',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f256_5fbalanced_46',['OQS_SIG_alg_cross_rsdp_256_balanced',['../sig_8h.html#a1c32df72bd1e17b56e6bfc7548f41189',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f256_5ffast_47',['OQS_SIG_alg_cross_rsdp_256_fast',['../sig_8h.html#ad10052282a41bbb18706305b2f0612c1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdp_5f256_5fsmall_48',['OQS_SIG_alg_cross_rsdp_256_small',['../sig_8h.html#a703ddb438bc3251b6a3ecff08bcccef7',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f128_5fbalanced_49',['OQS_SIG_alg_cross_rsdpg_128_balanced',['../sig_8h.html#a4bcc064e184b1c0e9351f276e4711c24',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f128_5ffast_50',['OQS_SIG_alg_cross_rsdpg_128_fast',['../sig_8h.html#a6732d90c493281ce5902582d80fdeca9',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f128_5fsmall_51',['OQS_SIG_alg_cross_rsdpg_128_small',['../sig_8h.html#a6f624cccf5f14d22baa92dfb0fe6d898',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f192_5fbalanced_52',['OQS_SIG_alg_cross_rsdpg_192_balanced',['../sig_8h.html#a7650ff7ad27a47952b1839d8436b3ee9',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f192_5ffast_53',['OQS_SIG_alg_cross_rsdpg_192_fast',['../sig_8h.html#abc219691ae5a07b713a313cccb80cd78',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f192_5fsmall_54',['OQS_SIG_alg_cross_rsdpg_192_small',['../sig_8h.html#a57207e06fb4c8c1401104f3b6f1cd066',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f256_5fbalanced_55',['OQS_SIG_alg_cross_rsdpg_256_balanced',['../sig_8h.html#a18a57ee00e0597e176198c71f3a48f21',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f256_5ffast_56',['OQS_SIG_alg_cross_rsdpg_256_fast',['../sig_8h.html#a10702f0cf55cda65139e0c986a9dfd54',1,'sig.h']]], + ['oqs_5fsig_5falg_5fcross_5frsdpg_5f256_5fsmall_57',['OQS_SIG_alg_cross_rsdpg_256_small',['../sig_8h.html#ac7a2fd75828f4fd5a8e2d42a439b32fe',1,'sig.h']]], + ['oqs_5fsig_5falg_5ffalcon_5f1024_58',['OQS_SIG_alg_falcon_1024',['../sig_8h.html#a4a0db68e2e66b9aa3bcf93c1d78900d8',1,'sig.h']]], + ['oqs_5fsig_5falg_5ffalcon_5f512_59',['OQS_SIG_alg_falcon_512',['../sig_8h.html#a473846e6bb340412c59725bee591076c',1,'sig.h']]], + ['oqs_5fsig_5falg_5ffalcon_5fpadded_5f1024_60',['OQS_SIG_alg_falcon_padded_1024',['../sig_8h.html#a37141463f1d8657c419aa9e3fcd47aec',1,'sig.h']]], + ['oqs_5fsig_5falg_5ffalcon_5fpadded_5f512_61',['OQS_SIG_alg_falcon_padded_512',['../sig_8h.html#a4df9bfd9b623c4a1efe7a0c43198ef25',1,'sig.h']]], + ['oqs_5fsig_5falg_5fmayo_5f1_62',['OQS_SIG_alg_mayo_1',['../sig_8h.html#aed79780ba626e327bee445475a7f47d3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fmayo_5f2_63',['OQS_SIG_alg_mayo_2',['../sig_8h.html#ab0cda7090a78e0e5e58d0d291721dc60',1,'sig.h']]], + ['oqs_5fsig_5falg_5fmayo_5f3_64',['OQS_SIG_alg_mayo_3',['../sig_8h.html#ac44e2a2ecff4e77e3959cb1d0172892e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fmayo_5f5_65',['OQS_SIG_alg_mayo_5',['../sig_8h.html#af21ed44674912207e054e6f67e0c3e3e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fml_5fdsa_5f44_66',['OQS_SIG_alg_ml_dsa_44',['../sig_8h.html#acacbe7fafe58d6142dbb678e0e774539',1,'sig.h']]], + ['oqs_5fsig_5falg_5fml_5fdsa_5f65_67',['OQS_SIG_alg_ml_dsa_65',['../sig_8h.html#ae61d337d543a19cbbacd521a94697d08',1,'sig.h']]], + ['oqs_5fsig_5falg_5fml_5fdsa_5f87_68',['OQS_SIG_alg_ml_dsa_87',['../sig_8h.html#a0e1f64498a5dab9e2ec35496914f9ee3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fsha2_5f128f_69',['OQS_SIG_alg_slh_dsa_pure_sha2_128f',['../sig_8h.html#a9566c9728122687fec58138243f0af21',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fsha2_5f128s_70',['OQS_SIG_alg_slh_dsa_pure_sha2_128s',['../sig_8h.html#ac16315f9b7ea95bf33e318a9f5dc93d0',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fsha2_5f192f_71',['OQS_SIG_alg_slh_dsa_pure_sha2_192f',['../sig_8h.html#a1d9d1dff65ec49926f162bc723fdadee',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fsha2_5f192s_72',['OQS_SIG_alg_slh_dsa_pure_sha2_192s',['../sig_8h.html#a38a4ba44c1e58ade82e9a5b60a6b56c6',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fsha2_5f256f_73',['OQS_SIG_alg_slh_dsa_pure_sha2_256f',['../sig_8h.html#ac39bca1784e47d90afd2a6c19d0b6ce1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fsha2_5f256s_74',['OQS_SIG_alg_slh_dsa_pure_sha2_256s',['../sig_8h.html#a3d57252ca40a6a989f3f132c33848ff5',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fshake_5f128f_75',['OQS_SIG_alg_slh_dsa_pure_shake_128f',['../sig_8h.html#a0756e442bc0bbd8a8302a5564b917f6e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fshake_5f128s_76',['OQS_SIG_alg_slh_dsa_pure_shake_128s',['../sig_8h.html#a3354f101be8f7194b14f9540bdf7cd6f',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fshake_5f192f_77',['OQS_SIG_alg_slh_dsa_pure_shake_192f',['../sig_8h.html#ab95ffc41463318979c6fb06669ac59e8',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fshake_5f192s_78',['OQS_SIG_alg_slh_dsa_pure_shake_192s',['../sig_8h.html#a812315d047d3a4108606a8975790d2ab',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fshake_5f256f_79',['OQS_SIG_alg_slh_dsa_pure_shake_256f',['../sig_8h.html#ae80c31e43efdb6a73feb8c2144cc8566',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fpure_5fshake_5f256s_80',['OQS_SIG_alg_slh_dsa_pure_shake_256s',['../sig_8h.html#a1ba5580f2c96cd54aee525d999ec33d0',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fsha2_5f128f_81',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_128f',['../sig_8h.html#a0bd63b1d63ae6df7a74870d183372916',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fsha2_5f128s_82',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_128s',['../sig_8h.html#aa0bb659ebdc8d0c1c55329eaa6055a90',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fsha2_5f192f_83',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_192f',['../sig_8h.html#a3fc87969947381dedb84f70a9c29e3c8',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fsha2_5f192s_84',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_192s',['../sig_8h.html#a34f13901dcb0cc73a1c939b05d232a25',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fsha2_5f256f_85',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_256f',['../sig_8h.html#aa44bdb52c0c8daba339d5cc844544674',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fsha2_5f256s_86',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_256s',['../sig_8h.html#aed767ac0e5d24967804f4269acf8c1c4',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fshake_5f128f_87',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_128f',['../sig_8h.html#a52e66dab7b419f33101c9ffe05327be8',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fshake_5f128s_88',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_128s',['../sig_8h.html#a8a65c8cab6baad7d2c2c539f9d0be0d8',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fshake_5f192f_89',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_192f',['../sig_8h.html#af8d81fc33f03dea3eac670c6f85905e1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fshake_5f192s_90',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_192s',['../sig_8h.html#ae8ccb27ff337358487d52418c7d3b6a0',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fshake_5f256f_91',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_256f',['../sig_8h.html#a66159272164d25ebae819180cdd66821',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f224_5fprehash_5fshake_5f256s_92',['OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_256s',['../sig_8h.html#ad3723f934552a5d71d9b83855557ff0f',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fsha2_5f128f_93',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_128f',['../sig_8h.html#a42d58e1f3fe8c510617f5393585cbe70',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fsha2_5f128s_94',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_128s',['../sig_8h.html#a9121fe5ea73a82c64772c61d0ee37a71',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fsha2_5f192f_95',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_192f',['../sig_8h.html#a7f1b8d27d08b5bcd0a60672c1fff6af5',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fsha2_5f192s_96',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_192s',['../sig_8h.html#a004fbe901aa5678d20b7c74e3442ddc4',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fsha2_5f256f_97',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_256f',['../sig_8h.html#a818769f2220920e89a0971174ea8a1d1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fsha2_5f256s_98',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_256s',['../sig_8h.html#aaa0c7ff93ca0b555571a7d512538e387',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fshake_5f128f_99',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_128f',['../sig_8h.html#a2bb42806c585a7237cd242204ba51e70',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fshake_5f128s_100',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_128s',['../sig_8h.html#abc16472d94aeacf1a6d147d80f483c6b',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fshake_5f192f_101',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_192f',['../sig_8h.html#ab04200dadb1d02c002048c8108652c7f',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fshake_5f192s_102',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_192s',['../sig_8h.html#af210dbb96cd9fcc26bc568bd19640a11',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fshake_5f256f_103',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_256f',['../sig_8h.html#acd59f8cdaa419c528e21bb57fdc32788',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f256_5fprehash_5fshake_5f256s_104',['OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_256s',['../sig_8h.html#a62c23298b9fdaed60cdf1999e860f694',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fsha2_5f128f_105',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_128f',['../sig_8h.html#a9876042dfeb69f9eaf80004d5aac8f75',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fsha2_5f128s_106',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_128s',['../sig_8h.html#a841037db68692cddd9b75a6bf73f5b23',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fsha2_5f192f_107',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_192f',['../sig_8h.html#ac7ede2d18e39bde9d7df6f0d5f58d57c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fsha2_5f192s_108',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_192s',['../sig_8h.html#a5e7aa37b177a79bfd86d96c5f9ab904a',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fsha2_5f256f_109',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_256f',['../sig_8h.html#a1ee9f68449f3bee2955117734d00e29c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fsha2_5f256s_110',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_256s',['../sig_8h.html#ae409738d274631115b75e548bc27c4c5',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fshake_5f128f_111',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_128f',['../sig_8h.html#ad02cb43bc7e86883eb23277b3f8c9db0',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fshake_5f128s_112',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_128s',['../sig_8h.html#a99c67c22ef14c59abe8562a3a45ed6b3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fshake_5f192f_113',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_192f',['../sig_8h.html#a562ece9c498e8b634318db6760e678b4',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fshake_5f192s_114',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_192s',['../sig_8h.html#a472b4f05b4a473f13d0f8b7713ccaf3c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fshake_5f256f_115',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_256f',['../sig_8h.html#abbd8c10e9e0b100103d0b0a7eaece0fc',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f384_5fprehash_5fshake_5f256s_116',['OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_256s',['../sig_8h.html#a02979bcae24fa8bdeb214371f3cf2721',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fsha2_5f128f_117',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_128f',['../sig_8h.html#a27243d3d2fdc770fcc99bbdc8ab3f55f',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fsha2_5f128s_118',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_128s',['../sig_8h.html#a36c85a6d8cd871f6df775b5b5cefebaa',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fsha2_5f192f_119',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_192f',['../sig_8h.html#a1b1486f06122a6b5dcec84788e048b46',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fsha2_5f192s_120',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_192s',['../sig_8h.html#aa182df301af7af9adae27cffea77a632',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fsha2_5f256f_121',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_256f',['../sig_8h.html#a1caddcacebf07b89395bd9c8975b85a3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fsha2_5f256s_122',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_256s',['../sig_8h.html#a007929297097eb838f6b0e63c96a1ecc',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fshake_5f128f_123',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_128f',['../sig_8h.html#a516d8593ef9ed64079efb1e97be1fedc',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fshake_5f128s_124',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_128s',['../sig_8h.html#a7c23c8915618bf1ff80638c1796ef253',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fshake_5f192f_125',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_192f',['../sig_8h.html#a063ac9cec9da49f1ba9bae52d8b8bafa',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fshake_5f192s_126',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_192s',['../sig_8h.html#a3375495fae0b5184e475616c8f0ffa80',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fshake_5f256f_127',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_256f',['../sig_8h.html#a1747cc802922e8786066b7fb18eaa50d',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f224_5fprehash_5fshake_5f256s_128',['OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_256s',['../sig_8h.html#a2ee26e58fee53aa8ca396079dc4276fc',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fsha2_5f128f_129',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_128f',['../sig_8h.html#a22601a2097f1a9d2e5fbc295cecc5fe5',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fsha2_5f128s_130',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_128s',['../sig_8h.html#a0e50de59cdaabcbdd5f9bc0ae73c7722',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fsha2_5f192f_131',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_192f',['../sig_8h.html#ac408d9b58662ba54359aa02079e5ce6e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fsha2_5f192s_132',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_192s',['../sig_8h.html#aa1c53887ee95323817b96eda4c355607',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fsha2_5f256f_133',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_256f',['../sig_8h.html#af23c974ae82dd644a132fe19c9def4d5',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fsha2_5f256s_134',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_256s',['../sig_8h.html#a90383426aa6cbed1d908f5574d73269e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fshake_5f128f_135',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_128f',['../sig_8h.html#a63328a7078ecd05d442c5b23288e2093',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fshake_5f128s_136',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_128s',['../sig_8h.html#ab92327c291eb6719176983b52a2b8db1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fshake_5f192f_137',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_192f',['../sig_8h.html#aa8ce340ce1169eb803a270bc441f70db',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fshake_5f192s_138',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_192s',['../sig_8h.html#af82a5e76336104ddff17723e6cc6d38e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fshake_5f256f_139',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_256f',['../sig_8h.html#a6f1cf22d726a1af2f10d2271f8a31635',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5f256_5fprehash_5fshake_5f256s_140',['OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_256s',['../sig_8h.html#accc3629c97eec3becbac1ce5c1ac755e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fsha2_5f128f_141',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_128f',['../sig_8h.html#abe5084994475e36c41c9b1f0f1a61a3b',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fsha2_5f128s_142',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_128s',['../sig_8h.html#a3a519f40ca79103c18af1baf3e2df1c3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fsha2_5f192f_143',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_192f',['../sig_8h.html#a503e3022c4a8663e0468cb9eb70fee53',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fsha2_5f192s_144',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_192s',['../sig_8h.html#aa1b2e0d73a74f8297faa632710e6df88',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fsha2_5f256f_145',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_256f',['../sig_8h.html#a91ee57b7f98e93409f80ebb583ba3de3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fsha2_5f256s_146',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_256s',['../sig_8h.html#a41e5f80e5f944100500317553032a262',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fshake_5f128f_147',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_128f',['../sig_8h.html#aa1e0889894114605e194406d70820b93',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fshake_5f128s_148',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_128s',['../sig_8h.html#a79eebb4ce39963978a23a87f5c3208cf',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fshake_5f192f_149',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_192f',['../sig_8h.html#a9c7c1a20c74a0869a499f7beaa58d367',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fshake_5f192s_150',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_192s',['../sig_8h.html#a3ed7bfe23ddcaa4e90ca4001d4386d75',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fshake_5f256f_151',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_256f',['../sig_8h.html#a89ceeec746a67378eba3ab784af7f5c3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha2_5f512_5fprehash_5fshake_5f256s_152',['OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_256s',['../sig_8h.html#aec5225b57f6e16a6d92eb2531e875539',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fsha2_5f128f_153',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_128f',['../sig_8h.html#a5d2b67f4e20e5547c686a6b31612b6e1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fsha2_5f128s_154',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_128s',['../sig_8h.html#a5d728e3c2b0c645d7615ee63938009a9',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fsha2_5f192f_155',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_192f',['../sig_8h.html#a10c9b142f65d0f18475f60465f8ce1bf',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fsha2_5f192s_156',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_192s',['../sig_8h.html#a99413911ef1ea3b96339a571054f2707',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fsha2_5f256f_157',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_256f',['../sig_8h.html#a9fd02e6b0efc441abfd36dfdad60633f',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fsha2_5f256s_158',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_256s',['../sig_8h.html#ad5bc5c29591222a157dfb75f4e65aa97',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fshake_5f128f_159',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_128f',['../sig_8h.html#a77a3aeb7cdc760ca5451917e82da42a9',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fshake_5f128s_160',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_128s',['../sig_8h.html#ad7710007c2e6a1c06b57f5cd9252f2dc',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fshake_5f192f_161',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_192f',['../sig_8h.html#a04e5bb4ebf55085275897dc032ddf1e1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fshake_5f192s_162',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_192s',['../sig_8h.html#af21878343b028517bdc2e7180e74dda8',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fshake_5f256f_163',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_256f',['../sig_8h.html#a25a5349feef2006ae8c6642750ff74c9',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f224_5fprehash_5fshake_5f256s_164',['OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_256s',['../sig_8h.html#a46929706ed2248204094794de5c35dca',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fsha2_5f128f_165',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_128f',['../sig_8h.html#a5e8fae3af008701d0987d11f32857c43',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fsha2_5f128s_166',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_128s',['../sig_8h.html#ae4361c4abecab56e9a2b81b7a6203980',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fsha2_5f192f_167',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_192f',['../sig_8h.html#a551dbb74c37bc2538cd9b5ab29c169d7',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fsha2_5f192s_168',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_192s',['../sig_8h.html#ab460a7b65ff453d27045308a77e0e098',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fsha2_5f256f_169',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_256f',['../sig_8h.html#a9fbc088e344c09431871eb65ed95bcbe',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fsha2_5f256s_170',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_256s',['../sig_8h.html#a335ed1e596bc4ad8a9747cd8c499a36c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fshake_5f128f_171',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_128f',['../sig_8h.html#a6c2aea8d70b06bc2ea29ef7e21ba5474',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fshake_5f128s_172',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_128s',['../sig_8h.html#a9763251a5ef69278aeafc52ae1ab6e75',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fshake_5f192f_173',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_192f',['../sig_8h.html#a38df3f36a6b6f38f597fb1c8e66ac0a6',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fshake_5f192s_174',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_192s',['../sig_8h.html#aeb69d1345386faa3087c582f97c3c0f5',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fshake_5f256f_175',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_256f',['../sig_8h.html#aab08882ba046661127018024578589a4',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f256_5fprehash_5fshake_5f256s_176',['OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_256s',['../sig_8h.html#ab0e9466ebab1fe6a7cfc3f897d2fd414',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fsha2_5f128f_177',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_128f',['../sig_8h.html#a148f7d66ed58510fc789fa11d32fb784',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fsha2_5f128s_178',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_128s',['../sig_8h.html#a3ba227c1f70498a65565d70b922008ff',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fsha2_5f192f_179',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_192f',['../sig_8h.html#ab2f312455e5f9bd0f48f15bbc6677ee7',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fsha2_5f192s_180',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_192s',['../sig_8h.html#a4d3af6fe990f9d1205ce81e12fd11158',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fsha2_5f256f_181',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_256f',['../sig_8h.html#ae3270d21d1e82f62ed85552318a9c3d4',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fsha2_5f256s_182',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_256s',['../sig_8h.html#a96068320dfbef49453dbea1925898812',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fshake_5f128f_183',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_128f',['../sig_8h.html#a128584b68d8fd1671356f742498d1dc0',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fshake_5f128s_184',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_128s',['../sig_8h.html#a469ea159c1009c3f075cc603309110eb',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fshake_5f192f_185',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_192f',['../sig_8h.html#ae32587277d0f6e26e2ec3700def5e9b1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fshake_5f192s_186',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_192s',['../sig_8h.html#a3de2b1758c64c6759c1a06319d2ae792',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fshake_5f256f_187',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_256f',['../sig_8h.html#a9c5fbb32dd8293c792d5dc3fcf46301f',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f384_5fprehash_5fshake_5f256s_188',['OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_256s',['../sig_8h.html#aa313d68989397c2385fc21ac67be0356',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fsha2_5f128f_189',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_128f',['../sig_8h.html#a03f4eaef6ab07dc2e621e2aa46b8941e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fsha2_5f128s_190',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_128s',['../sig_8h.html#a14309c6aa2c0aa7bee00284e56a88076',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fsha2_5f192f_191',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_192f',['../sig_8h.html#a1e9ab130fae861fbbfd43d8987c36a39',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fsha2_5f192s_192',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_192s',['../sig_8h.html#adff67453ffc95cdba4a099b3f6e0be56',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fsha2_5f256f_193',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_256f',['../sig_8h.html#af1b9fa17edd5f0379dc908d1fb087c2d',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fsha2_5f256s_194',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_256s',['../sig_8h.html#a10415ac82c50e00ab79fd348d1cc3a64',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fshake_5f128f_195',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_128f',['../sig_8h.html#ac7c90231073067c70d419fc12c388cf4',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fshake_5f128s_196',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_128s',['../sig_8h.html#adec025e0f74493fbcf81a659d1495a5c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fshake_5f192f_197',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_192f',['../sig_8h.html#a9303dc31840da5b69b38161800605527',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fshake_5f192s_198',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_192s',['../sig_8h.html#a3842ccafed5385281e13d33545b2a524',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fshake_5f256f_199',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_256f',['../sig_8h.html#aa886f6147c3011a09cb431c1b4f4e5f6',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fsha3_5f512_5fprehash_5fshake_5f256s_200',['OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_256s',['../sig_8h.html#acf927414424bd98eb6b32179e51d1699',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fsha2_5f128f_201',['OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_128f',['../sig_8h.html#aea3a7df579e19c8c997b5077434a4a2e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fsha2_5f128s_202',['OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_128s',['../sig_8h.html#a97fd4d31f3a5582d1174e74094d0fca9',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fsha2_5f192f_203',['OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_192f',['../sig_8h.html#af676e2f4d36488c5437679a594bfcbf8',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fsha2_5f192s_204',['OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_192s',['../sig_8h.html#a4f4d6636dffd8c6623f063dd781d7686',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fsha2_5f256f_205',['OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_256f',['../sig_8h.html#a7d3e80c9ae47fb90b75fee100f4f7db3',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fsha2_5f256s_206',['OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_256s',['../sig_8h.html#ab07147ea78400f67f4ee83197459edb9',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fshake_5f128f_207',['OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_128f',['../sig_8h.html#ae9380da8d73ce6026b110bf06f77562c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fshake_5f128s_208',['OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_128s',['../sig_8h.html#aa10b4008b8ad7f8c707146bca2cbca86',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fshake_5f192f_209',['OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_192f',['../sig_8h.html#a434352142bc116318b087e9758332b1c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fshake_5f192s_210',['OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_192s',['../sig_8h.html#a9bddff5d8f75ec3d79f80fa32d794ba7',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fshake_5f256f_211',['OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_256f',['../sig_8h.html#a3bfe59ef603284c69cf3ecbd32b48304',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f128_5fprehash_5fshake_5f256s_212',['OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_256s',['../sig_8h.html#a9c8a3434b53960906a346311d45678cb',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fsha2_5f128f_213',['OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_128f',['../sig_8h.html#af22f30e9ec99d1ebdfeb3c089e312775',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fsha2_5f128s_214',['OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_128s',['../sig_8h.html#a117b7221dd96ca21cc6de2cb226c8033',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fsha2_5f192f_215',['OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_192f',['../sig_8h.html#af056409cddb1f9f5701ad2c52f165522',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fsha2_5f192s_216',['OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_192s',['../sig_8h.html#a6107555cf4e726758c455fdc5ef18ad0',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fsha2_5f256f_217',['OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_256f',['../sig_8h.html#ae6a0c95ea27b12fae92e2f4fa7bd8383',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fsha2_5f256s_218',['OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_256s',['../sig_8h.html#ab4e101ce04ae8013f2434d4b5dea21d8',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fshake_5f128f_219',['OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_128f',['../sig_8h.html#aa60170967398d28951a91edad199cd62',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fshake_5f128s_220',['OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_128s',['../sig_8h.html#afd5fe1c0173aee8292d35f032a7d5dbe',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fshake_5f192f_221',['OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_192f',['../sig_8h.html#aee346b700cdf5d41a7dc82691a51fbd1',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fshake_5f192s_222',['OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_192s',['../sig_8h.html#ae80c23fb2b79f68e9880ecaee7c1fc37',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fshake_5f256f_223',['OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_256f',['../sig_8h.html#ac7656168e50dc733a475ff507e353f3d',1,'sig.h']]], + ['oqs_5fsig_5falg_5fslh_5fdsa_5fshake_5f256_5fprehash_5fshake_5f256s_224',['OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_256s',['../sig_8h.html#a460917c57cf43490d7d256fe000c2138',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f24_5f5_5f4_225',['OQS_SIG_alg_snova_SNOVA_24_5_4',['../sig_8h.html#ad573389b721195ee0ef9b048a3eac25b',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f24_5f5_5f4_5fesk_226',['OQS_SIG_alg_snova_SNOVA_24_5_4_esk',['../sig_8h.html#ade0f84b15d5de14061c04459e334d39f',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f24_5f5_5f4_5fshake_227',['OQS_SIG_alg_snova_SNOVA_24_5_4_SHAKE',['../sig_8h.html#a9efc3d9f21bee77ca37114c5cc70e039',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f24_5f5_5f4_5fshake_5fesk_228',['OQS_SIG_alg_snova_SNOVA_24_5_4_SHAKE_esk',['../sig_8h.html#a039e1c9778259654383d2f22aad9e29e',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f24_5f5_5f5_229',['OQS_SIG_alg_snova_SNOVA_24_5_5',['../sig_8h.html#a74762474cb91f36d3db2db7da99528a6',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f25_5f8_5f3_230',['OQS_SIG_alg_snova_SNOVA_25_8_3',['../sig_8h.html#a018216cacd3c54da2635274dbeca34d2',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f29_5f6_5f5_231',['OQS_SIG_alg_snova_SNOVA_29_6_5',['../sig_8h.html#aed1b1ec847081549c0630bdefa344a47',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f37_5f17_5f2_232',['OQS_SIG_alg_snova_SNOVA_37_17_2',['../sig_8h.html#ab6947fe2ad01552b73c769abcfefab6a',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f37_5f8_5f4_233',['OQS_SIG_alg_snova_SNOVA_37_8_4',['../sig_8h.html#ac661fba5f53d025e99800206f76002db',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f49_5f11_5f3_234',['OQS_SIG_alg_snova_SNOVA_49_11_3',['../sig_8h.html#a834bdcbb6cab93139043bdb435ab52cc',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f56_5f25_5f2_235',['OQS_SIG_alg_snova_SNOVA_56_25_2',['../sig_8h.html#ac775c72b134b7317f3c98e300e785918',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsnova_5fsnova_5f60_5f10_5f4_236',['OQS_SIG_alg_snova_SNOVA_60_10_4',['../sig_8h.html#ac0dd79ebc345fe5c8e76685baee16279',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fsha2_5f128f_5fsimple_237',['OQS_SIG_alg_sphincs_sha2_128f_simple',['../sig_8h.html#adcd24ce37b0454f596fce613afabbe3c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fsha2_5f128s_5fsimple_238',['OQS_SIG_alg_sphincs_sha2_128s_simple',['../sig_8h.html#a1b650824da8424a1df6339fac59195cd',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fsha2_5f192f_5fsimple_239',['OQS_SIG_alg_sphincs_sha2_192f_simple',['../sig_8h.html#a1c5c3013bb09e3100904dc1ca126b108',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fsha2_5f192s_5fsimple_240',['OQS_SIG_alg_sphincs_sha2_192s_simple',['../sig_8h.html#ac923dc15d262f8c0e060898129a4751c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fsha2_5f256f_5fsimple_241',['OQS_SIG_alg_sphincs_sha2_256f_simple',['../sig_8h.html#ae24f42307a520a68c6d11efa8fc93119',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fsha2_5f256s_5fsimple_242',['OQS_SIG_alg_sphincs_sha2_256s_simple',['../sig_8h.html#ac09f6924334a2c085c2aee0b0a11f6af',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fshake_5f128f_5fsimple_243',['OQS_SIG_alg_sphincs_shake_128f_simple',['../sig_8h.html#ab38a6c9cb7fb49520072a2c44bde8f7b',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fshake_5f128s_5fsimple_244',['OQS_SIG_alg_sphincs_shake_128s_simple',['../sig_8h.html#adcdbc2440474e074df64d585d60d65c2',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fshake_5f192f_5fsimple_245',['OQS_SIG_alg_sphincs_shake_192f_simple',['../sig_8h.html#a1ad7391948e3bc2781262b186c2fddf6',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fshake_5f192s_5fsimple_246',['OQS_SIG_alg_sphincs_shake_192s_simple',['../sig_8h.html#a42946f2a1ad046f3f8d314ec93e511ed',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fshake_5f256f_5fsimple_247',['OQS_SIG_alg_sphincs_shake_256f_simple',['../sig_8h.html#a319b63424dcbf825dfc7449f729cff8f',1,'sig.h']]], + ['oqs_5fsig_5falg_5fsphincs_5fshake_5f256s_5fsimple_248',['OQS_SIG_alg_sphincs_shake_256s_simple',['../sig_8h.html#a87ae7d0b2f8084dd78d896f7e015e8bd',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fiii_249',['OQS_SIG_alg_uov_ov_III',['../sig_8h.html#a30458d168e6d166a55057241f0f8c9bf',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fiii_5fpkc_250',['OQS_SIG_alg_uov_ov_III_pkc',['../sig_8h.html#a0ffded1da6002ba07bc15aac835c8f71',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fiii_5fpkc_5fskc_251',['OQS_SIG_alg_uov_ov_III_pkc_skc',['../sig_8h.html#a932784f5eec8a9a770cb2f2dd9e8e76c',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fip_252',['OQS_SIG_alg_uov_ov_Ip',['../sig_8h.html#ae42b9c3eb296faf73690b98c1279cde7',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fip_5fpkc_253',['OQS_SIG_alg_uov_ov_Ip_pkc',['../sig_8h.html#a72e00107800571716bcb6bb897e52211',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fip_5fpkc_5fskc_254',['OQS_SIG_alg_uov_ov_Ip_pkc_skc',['../sig_8h.html#a8a7ccc8764e799d4bde323cbe5ef92ba',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fis_255',['OQS_SIG_alg_uov_ov_Is',['../sig_8h.html#a34a1bc056f6b079c9cc87f2afb8291bb',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fis_5fpkc_256',['OQS_SIG_alg_uov_ov_Is_pkc',['../sig_8h.html#a7b99c0c8115ffb83f9067359764b7db4',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fis_5fpkc_5fskc_257',['OQS_SIG_alg_uov_ov_Is_pkc_skc',['../sig_8h.html#a6973882e08655af7c16c46d03ba081b0',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fv_258',['OQS_SIG_alg_uov_ov_V',['../sig_8h.html#ab5881d81018faac01a84cbdc1d30b7da',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fv_5fpkc_259',['OQS_SIG_alg_uov_ov_V_pkc',['../sig_8h.html#a2e2d9047486642b983337d240037a5a5',1,'sig.h']]], + ['oqs_5fsig_5falg_5fuov_5fov_5fv_5fpkc_5fskc_260',['OQS_SIG_alg_uov_ov_V_pkc_skc',['../sig_8h.html#a53d06793983fd22b74ddcb5af50a6b4c',1,'sig.h']]], + ['oqs_5fsig_5falgs_5flength_261',['OQS_SIG_algs_length',['../sig_8h.html#a3b5602da1f19ca0cf0034780f99416e5',1,'sig.h']]], + ['oqs_5fsig_5fslh_5fdsa_5falgs_5flength_262',['OQS_SIG_SLH_DSA_algs_length',['../sig_8h.html#a305f0b1ad6fde5cae8f837d229b198ff',1,'sig.h']]], + ['oqs_5fsig_5fstfl_263',['OQS_SIG_STFL',['../sig__stfl_8h.html#aeeedd56978c620be72f246c98838dbed',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw1_264',['OQS_SIG_STFL_alg_lms_sha256_h10_w1',['../sig__stfl_8h.html#aadaf2cc937cf1f1ba9ea148bc2939859',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw2_265',['OQS_SIG_STFL_alg_lms_sha256_h10_w2',['../sig__stfl_8h.html#a1cf7101cfd72f343caec6e7f81224b1c',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw2_5fh10_5fw2_266',['OQS_SIG_STFL_alg_lms_sha256_h10_w2_h10_w2',['../sig__stfl_8h.html#ac4933f7aa1b7df77ffbabf8cfa269ae9',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw4_267',['OQS_SIG_STFL_alg_lms_sha256_h10_w4',['../sig__stfl_8h.html#a2cf6faf3085418668170318d4098542f',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw4_5fh10_5fw4_268',['OQS_SIG_STFL_alg_lms_sha256_h10_w4_h10_w4',['../sig__stfl_8h.html#a25a3506fa1b34bbe76152e3c3c2b370c',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw4_5fh5_5fw8_269',['OQS_SIG_STFL_alg_lms_sha256_h10_w4_h5_w8',['../sig__stfl_8h.html#a5a46d07d06ca6128754f9d4171b888db',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw8_270',['OQS_SIG_STFL_alg_lms_sha256_h10_w8',['../sig__stfl_8h.html#a64cdba94e9605e1fc7450dbc5111a626',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw8_5fh10_5fw8_271',['OQS_SIG_STFL_alg_lms_sha256_h10_w8_h10_w8',['../sig__stfl_8h.html#afbec415108f6c5b74ad2408544b22bf9',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh10_5fw8_5fh5_5fw8_272',['OQS_SIG_STFL_alg_lms_sha256_h10_w8_h5_w8',['../sig__stfl_8h.html#ab8b55bc04f57f2acabd2fa7910432018',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh15_5fw1_273',['OQS_SIG_STFL_alg_lms_sha256_h15_w1',['../sig__stfl_8h.html#ae1b6343322333c8e68ed344a17ada4d0',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh15_5fw2_274',['OQS_SIG_STFL_alg_lms_sha256_h15_w2',['../sig__stfl_8h.html#a5c6dd82bbe8a6628277408898d9044dc',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh15_5fw4_275',['OQS_SIG_STFL_alg_lms_sha256_h15_w4',['../sig__stfl_8h.html#a9f2db2501f512d851120d06352c6baab',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh15_5fw8_276',['OQS_SIG_STFL_alg_lms_sha256_h15_w8',['../sig__stfl_8h.html#aa52ca7b019cc2a8302926e2fe3b31ca0',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh15_5fw8_5fh10_5fw8_277',['OQS_SIG_STFL_alg_lms_sha256_h15_w8_h10_w8',['../sig__stfl_8h.html#a2d6952d6b8bc4a90311292f35adc8040',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh15_5fw8_5fh15_5fw8_278',['OQS_SIG_STFL_alg_lms_sha256_h15_w8_h15_w8',['../sig__stfl_8h.html#aac04b4f36c1403cea30a18b5836cdcc4',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh15_5fw8_5fh5_5fw8_279',['OQS_SIG_STFL_alg_lms_sha256_h15_w8_h5_w8',['../sig__stfl_8h.html#a911c5a0e3b031f6c62d436433d250577',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh20_5fw1_280',['OQS_SIG_STFL_alg_lms_sha256_h20_w1',['../sig__stfl_8h.html#a8cf8d56c0428817d4834fe51a1149605',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh20_5fw2_281',['OQS_SIG_STFL_alg_lms_sha256_h20_w2',['../sig__stfl_8h.html#afb27dfcc2ce5993016e2e0e0ee5cb5ff',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh20_5fw4_282',['OQS_SIG_STFL_alg_lms_sha256_h20_w4',['../sig__stfl_8h.html#a89933a329fe5a63774c4de91289fa8fd',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh20_5fw8_283',['OQS_SIG_STFL_alg_lms_sha256_h20_w8',['../sig__stfl_8h.html#aa32cbfe9590d7b23614c223a409acb7b',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh20_5fw8_5fh10_5fw8_284',['OQS_SIG_STFL_alg_lms_sha256_h20_w8_h10_w8',['../sig__stfl_8h.html#aa511a266b333fe9aac18c9dd6d139eed',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh20_5fw8_5fh15_5fw8_285',['OQS_SIG_STFL_alg_lms_sha256_h20_w8_h15_w8',['../sig__stfl_8h.html#af0beecc3b83d67f403de51e8383294c4',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh20_5fw8_5fh20_5fw8_286',['OQS_SIG_STFL_alg_lms_sha256_h20_w8_h20_w8',['../sig__stfl_8h.html#abbaa9f6589e2b2b636dc0af90115f837',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh20_5fw8_5fh5_5fw8_287',['OQS_SIG_STFL_alg_lms_sha256_h20_w8_h5_w8',['../sig__stfl_8h.html#ae7256831eeb80b38835d1ee6fc529322',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh25_5fw1_288',['OQS_SIG_STFL_alg_lms_sha256_h25_w1',['../sig__stfl_8h.html#aab875258d9427994fc7bbb2af0e5e266',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh25_5fw2_289',['OQS_SIG_STFL_alg_lms_sha256_h25_w2',['../sig__stfl_8h.html#ae8950a3b15c155275df597e437591316',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh25_5fw4_290',['OQS_SIG_STFL_alg_lms_sha256_h25_w4',['../sig__stfl_8h.html#acf565c63349bb389ef7c8cb90b6a5486',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh25_5fw8_291',['OQS_SIG_STFL_alg_lms_sha256_h25_w8',['../sig__stfl_8h.html#a4df481e125b9d216312a37ac32bca211',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh5_5fw1_292',['OQS_SIG_STFL_alg_lms_sha256_h5_w1',['../sig__stfl_8h.html#a8ff8e33f032f37295da316093a055c4d',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh5_5fw2_293',['OQS_SIG_STFL_alg_lms_sha256_h5_w2',['../sig__stfl_8h.html#a2c83f990a388bddac7e6752c05abe702',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh5_5fw4_294',['OQS_SIG_STFL_alg_lms_sha256_h5_w4',['../sig__stfl_8h.html#aed9af83913c45e434ece49eee074414e',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh5_5fw8_295',['OQS_SIG_STFL_alg_lms_sha256_h5_w8',['../sig__stfl_8h.html#a41b2e24ec57c7d21c31127c1016f35cf',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5flms_5fsha256_5fh5_5fw8_5fh5_5fw8_296',['OQS_SIG_STFL_alg_lms_sha256_h5_w8_h5_w8',['../sig__stfl_8h.html#a8f031d1fd2963a534b2660d7e8386360',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha256_5fh10_297',['OQS_SIG_STFL_alg_xmss_sha256_h10',['../sig__stfl_8h.html#a26e062358464780d59c7a9524d3c43b4',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha256_5fh10_5f192_298',['OQS_SIG_STFL_alg_xmss_sha256_h10_192',['../sig__stfl_8h.html#a35dbfdc09e3e5a7e28aca246a8fa4be1',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha256_5fh16_299',['OQS_SIG_STFL_alg_xmss_sha256_h16',['../sig__stfl_8h.html#aab4e16acd01d3576d5203bcdcd587597',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha256_5fh16_5f192_300',['OQS_SIG_STFL_alg_xmss_sha256_h16_192',['../sig__stfl_8h.html#a31d5239ca290320089a16a8a85497470',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha256_5fh20_301',['OQS_SIG_STFL_alg_xmss_sha256_h20',['../sig__stfl_8h.html#a4d154d31126620f4f1ca875c22376386',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha256_5fh20_5f192_302',['OQS_SIG_STFL_alg_xmss_sha256_h20_192',['../sig__stfl_8h.html#a2e18b64d5a21875deac9999db9be8b55',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha512_5fh10_303',['OQS_SIG_STFL_alg_xmss_sha512_h10',['../sig__stfl_8h.html#ad0373463848f6ed81e90a96911a59cb3',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha512_5fh16_304',['OQS_SIG_STFL_alg_xmss_sha512_h16',['../sig__stfl_8h.html#ac5388c71857117e81cff27cec0830984',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fsha512_5fh20_305',['OQS_SIG_STFL_alg_xmss_sha512_h20',['../sig__stfl_8h.html#ad9d77fc1035940963372183a9df937f9',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake128_5fh10_306',['OQS_SIG_STFL_alg_xmss_shake128_h10',['../sig__stfl_8h.html#a2955156ba5c1bae25651e36546c35c3a',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake128_5fh16_307',['OQS_SIG_STFL_alg_xmss_shake128_h16',['../sig__stfl_8h.html#a9126cefd5a8d3b0b983d82f472c246e0',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake128_5fh20_308',['OQS_SIG_STFL_alg_xmss_shake128_h20',['../sig__stfl_8h.html#a4c3821f81aa8bfcbda07bf836e34697d',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh10_309',['OQS_SIG_STFL_alg_xmss_shake256_h10',['../sig__stfl_8h.html#a9a52e4c58a1ec943bc26a244e581a5d5',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh10_5f192_310',['OQS_SIG_STFL_alg_xmss_shake256_h10_192',['../sig__stfl_8h.html#ade7ac517ceeba308f76e3e322b80ea93',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh10_5f256_311',['OQS_SIG_STFL_alg_xmss_shake256_h10_256',['../sig__stfl_8h.html#a7d30c5be593dd25eeb21ac3ee0991795',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh16_312',['OQS_SIG_STFL_alg_xmss_shake256_h16',['../sig__stfl_8h.html#a9039874bf745f9a59b843b285d638fe1',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh16_5f192_313',['OQS_SIG_STFL_alg_xmss_shake256_h16_192',['../sig__stfl_8h.html#a319ed0d2456865e1504eaa6ed48d0454',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh16_5f256_314',['OQS_SIG_STFL_alg_xmss_shake256_h16_256',['../sig__stfl_8h.html#ae6e8788966e4e6d7bfc275d67b23c6c1',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh20_315',['OQS_SIG_STFL_alg_xmss_shake256_h20',['../sig__stfl_8h.html#a134eaf27df0a945008d0564457142793',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh20_5f192_316',['OQS_SIG_STFL_alg_xmss_shake256_h20_192',['../sig__stfl_8h.html#a69b093fa003db46fafd010c1f51f8e10',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmss_5fshake256_5fh20_5f256_317',['OQS_SIG_STFL_alg_xmss_shake256_h20_256',['../sig__stfl_8h.html#a87ae0c126c1ac303b8836b8271c8128e',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fsha256_5fh20_5f2_318',['OQS_SIG_STFL_alg_xmssmt_sha256_h20_2',['../sig__stfl_8h.html#ae3e063b8cd1013067aa84b78aca989c7',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fsha256_5fh20_5f4_319',['OQS_SIG_STFL_alg_xmssmt_sha256_h20_4',['../sig__stfl_8h.html#aeef1be40ce8c51e885cafb3f29bf9b27',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fsha256_5fh40_5f2_320',['OQS_SIG_STFL_alg_xmssmt_sha256_h40_2',['../sig__stfl_8h.html#ae23532222bf29ccaf1c555f26777b0d3',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fsha256_5fh40_5f4_321',['OQS_SIG_STFL_alg_xmssmt_sha256_h40_4',['../sig__stfl_8h.html#a5da9df6eac14d0e70f9519ffbe8f1aa4',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fsha256_5fh40_5f8_322',['OQS_SIG_STFL_alg_xmssmt_sha256_h40_8',['../sig__stfl_8h.html#a4cb12c08bbac2c341abb34a2e8157004',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fsha256_5fh60_5f12_323',['OQS_SIG_STFL_alg_xmssmt_sha256_h60_12',['../sig__stfl_8h.html#a0624d0ce490cb516bd34cd0b7cd6dbc9',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fsha256_5fh60_5f3_324',['OQS_SIG_STFL_alg_xmssmt_sha256_h60_3',['../sig__stfl_8h.html#a1d1d7982da726d4d4db14e7dcc1f5ae9',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fsha256_5fh60_5f6_325',['OQS_SIG_STFL_alg_xmssmt_sha256_h60_6',['../sig__stfl_8h.html#a364001609b5263baaf95a8a2e4d0e025',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fshake128_5fh20_5f2_326',['OQS_SIG_STFL_alg_xmssmt_shake128_h20_2',['../sig__stfl_8h.html#a356052cad37a8de2e8f487ff6a60cdd4',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fshake128_5fh20_5f4_327',['OQS_SIG_STFL_alg_xmssmt_shake128_h20_4',['../sig__stfl_8h.html#a92a811ff9e75b579159ac11ea8f3c9f1',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fshake128_5fh40_5f2_328',['OQS_SIG_STFL_alg_xmssmt_shake128_h40_2',['../sig__stfl_8h.html#a29168f3de1f260a5d31974d916533bec',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fshake128_5fh40_5f4_329',['OQS_SIG_STFL_alg_xmssmt_shake128_h40_4',['../sig__stfl_8h.html#a1a8e091fcf463ec998574c9a416d4459',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fshake128_5fh40_5f8_330',['OQS_SIG_STFL_alg_xmssmt_shake128_h40_8',['../sig__stfl_8h.html#a4323aaf27bd8d0aefe4d7f8b424ab6e0',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fshake128_5fh60_5f12_331',['OQS_SIG_STFL_alg_xmssmt_shake128_h60_12',['../sig__stfl_8h.html#aacae8b40b803f4b1571dfb052a866b4d',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fshake128_5fh60_5f3_332',['OQS_SIG_STFL_alg_xmssmt_shake128_h60_3',['../sig__stfl_8h.html#ae184014a30ec016333e8563a07bd8af7',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fxmssmt_5fshake128_5fh60_5f6_333',['OQS_SIG_STFL_alg_xmssmt_shake128_h60_6',['../sig__stfl_8h.html#a6c1bf4896e08ab1daa1aed74c728ca4a',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falgs_5flength_334',['OQS_SIG_STFL_algs_length',['../sig__stfl_8h.html#a9408f6799e3b74a29f97b4a0c22a068c',1,'sig_stfl.h']]] +]; diff --git a/liboqs/api/doxygen/search/defines_1.js b/liboqs/api/doxygen/search/defines_1.js new file mode 100644 index 0000000..c8a2144 --- /dev/null +++ b/liboqs/api/doxygen/search/defines_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['size_5ft_5fto_5fint_5for_5fexit_0',['SIZE_T_TO_INT_OR_EXIT',['../common_8h.html#a743a9d9db303d012b3240f00f8d0d646',1,'common.h']]] +]; diff --git a/liboqs/api/doxygen/search/enums_0.js b/liboqs/api/doxygen/search/enums_0.js new file mode 100644 index 0000000..066c71c --- /dev/null +++ b/liboqs/api/doxygen/search/enums_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['oqs_5fcpu_5fext_0',['OQS_CPU_EXT',['../common_8h.html#a30dcade5b6c22570e059174037346282',1,'common.h']]], + ['oqs_5fstatus_1',['OQS_STATUS',['../common_8h.html#a7682cde206b02be2addea22bb31cf7fc',1,'common.h']]] +]; diff --git a/liboqs/api/doxygen/search/enumvalues_0.js b/liboqs/api/doxygen/search/enumvalues_0.js new file mode 100644 index 0000000..083d7f1 --- /dev/null +++ b/liboqs/api/doxygen/search/enumvalues_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['oqs_5ferror_0',['OQS_ERROR',['../common_8h.html#a7682cde206b02be2addea22bb31cf7fcaa7e2b301556a191088e453f00d1a4fd5',1,'common.h']]], + ['oqs_5fexternal_5flib_5ferror_5fopenssl_1',['OQS_EXTERNAL_LIB_ERROR_OPENSSL',['../common_8h.html#a7682cde206b02be2addea22bb31cf7fca63aa80c1ce90339168e3d273938114d2',1,'common.h']]], + ['oqs_5fsuccess_2',['OQS_SUCCESS',['../common_8h.html#a7682cde206b02be2addea22bb31cf7fcab159e5a6b8893cceb83ecdb25a5ac1b7',1,'common.h']]] +]; diff --git a/liboqs/api/doxygen/search/files_0.js b/liboqs/api/doxygen/search/files_0.js new file mode 100644 index 0000000..1108d03 --- /dev/null +++ b/liboqs/api/doxygen/search/files_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['aes_5fops_2eh_0',['aes_ops.h',['../aes__ops_8h.html',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/files_1.js b/liboqs/api/doxygen/search/files_1.js new file mode 100644 index 0000000..07c8f44 --- /dev/null +++ b/liboqs/api/doxygen/search/files_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['common_2eh_0',['common.h',['../common_8h.html',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/files_2.js b/liboqs/api/doxygen/search/files_2.js new file mode 100644 index 0000000..23f6383 --- /dev/null +++ b/liboqs/api/doxygen/search/files_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['kem_2eh_0',['kem.h',['../kem_8h.html',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/files_3.js b/liboqs/api/doxygen/search/files_3.js new file mode 100644 index 0000000..ee54f3a --- /dev/null +++ b/liboqs/api/doxygen/search/files_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['rand_2eh_0',['rand.h',['../rand_8h.html',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/files_4.js b/liboqs/api/doxygen/search/files_4.js new file mode 100644 index 0000000..0f83b8c --- /dev/null +++ b/liboqs/api/doxygen/search/files_4.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['sha2_5fops_2eh_0',['sha2_ops.h',['../sha2__ops_8h.html',1,'']]], + ['sha3_5fops_2eh_1',['sha3_ops.h',['../sha3__ops_8h.html',1,'']]], + ['sha3x4_5fops_2eh_2',['sha3x4_ops.h',['../sha3x4__ops_8h.html',1,'']]], + ['sig_2eh_3',['sig.h',['../sig_8h.html',1,'']]], + ['sig_5fstfl_2eh_4',['sig_stfl.h',['../sig__stfl_8h.html',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/functions_0.js b/liboqs/api/doxygen/search/functions_0.js new file mode 100644 index 0000000..9031af3 --- /dev/null +++ b/liboqs/api/doxygen/search/functions_0.js @@ -0,0 +1,66 @@ +var searchData= +[ + ['oqs_5faes_5fset_5fcallbacks_0',['OQS_AES_set_callbacks',['../aes__ops_8h.html#aef7ba14c51245dd2f24f4e361645d17f',1,'aes_ops.h']]], + ['oqs_5fcpu_5fhas_5fextension_1',['OQS_CPU_has_extension',['../common_8h.html#a3b8d0c6a64664542abe8c4317453ad2e',1,'common.h']]], + ['oqs_5fdestroy_2',['OQS_destroy',['../common_8h.html#ac3bcccd70ad30be31815b6ebb4537b4a',1,'common.h']]], + ['oqs_5finit_3',['OQS_init',['../common_8h.html#a9a10aa531a4f9788f1e8b9994262cb2a',1,'common.h']]], + ['oqs_5fkem_5falg_5fcount_4',['OQS_KEM_alg_count',['../kem_8h.html#a925f2c21c243905610edd8d2afbc17a5',1,'kem.h']]], + ['oqs_5fkem_5falg_5fidentifier_5',['OQS_KEM_alg_identifier',['../kem_8h.html#a853608c43a25158d90b043912276fd91',1,'kem.h']]], + ['oqs_5fkem_5falg_5fis_5fenabled_6',['OQS_KEM_alg_is_enabled',['../kem_8h.html#ab74d92eea10589998f1411d0ed1651e9',1,'kem.h']]], + ['oqs_5fkem_5fdecaps_7',['OQS_KEM_decaps',['../kem_8h.html#a38987e6c9bbdad35e594dcaf1b8d9f20',1,'kem.h']]], + ['oqs_5fkem_5fencaps_8',['OQS_KEM_encaps',['../kem_8h.html#ab149d2d38207fd4a677331285f350cc5',1,'kem.h']]], + ['oqs_5fkem_5fencaps_5fderand_9',['OQS_KEM_encaps_derand',['../kem_8h.html#ad598808b5ee64999fa406d11a7d1397f',1,'kem.h']]], + ['oqs_5fkem_5ffree_10',['OQS_KEM_free',['../kem_8h.html#abb8e09a53817e27bd5a302df3e4a12c4',1,'kem.h']]], + ['oqs_5fkem_5fkeypair_11',['OQS_KEM_keypair',['../kem_8h.html#a46d80a2217878ce76b251967f54f87cb',1,'kem.h']]], + ['oqs_5fkem_5fkeypair_5fderand_12',['OQS_KEM_keypair_derand',['../kem_8h.html#a4cecdc17c5f3bfeb1010a4eb50c7c1bc',1,'kem.h']]], + ['oqs_5fkem_5fnew_13',['OQS_KEM_new',['../kem_8h.html#a5b53469d13e0ff4b21d67ef39c337667',1,'kem.h']]], + ['oqs_5fmem_5faligned_5falloc_14',['OQS_MEM_aligned_alloc',['../common_8h.html#a343b4dc9f04bf52e87e4638138f46a04',1,'common.h']]], + ['oqs_5fmem_5faligned_5ffree_15',['OQS_MEM_aligned_free',['../common_8h.html#a5efdb0c410a5725f8072cfd74f47b4d8',1,'common.h']]], + ['oqs_5fmem_5faligned_5fsecure_5ffree_16',['OQS_MEM_aligned_secure_free',['../common_8h.html#af24045b8ba9a18ef3b22970ed3a13c79',1,'common.h']]], + ['oqs_5fmem_5fcalloc_17',['OQS_MEM_calloc',['../common_8h.html#aa37bbce3079c94a216ee73092c14bf6c',1,'common.h']]], + ['oqs_5fmem_5fcleanse_18',['OQS_MEM_cleanse',['../common_8h.html#a2bd640141597d0775f803fecd5131c55',1,'common.h']]], + ['oqs_5fmem_5finsecure_5ffree_19',['OQS_MEM_insecure_free',['../common_8h.html#aeb283601b868f9a7b6b732df4adbe624',1,'common.h']]], + ['oqs_5fmem_5fmalloc_20',['OQS_MEM_malloc',['../common_8h.html#a7fcef43fb2c7d5b53479adece6985247',1,'common.h']]], + ['oqs_5fmem_5fsecure_5fbcmp_21',['OQS_MEM_secure_bcmp',['../common_8h.html#a5669335fa754471220799d4da8571861',1,'common.h']]], + ['oqs_5fmem_5fsecure_5ffree_22',['OQS_MEM_secure_free',['../common_8h.html#a4b230b209b2066a7e43dce6cc21ba211',1,'common.h']]], + ['oqs_5fmem_5fstrdup_23',['OQS_MEM_strdup',['../common_8h.html#ac2af9ef78d5627d4bc09d022e1594d6e',1,'common.h']]], + ['oqs_5frandombytes_24',['OQS_randombytes',['../rand_8h.html#a83a59ba98ad3d98845c0de945676696b',1,'rand.h']]], + ['oqs_5frandombytes_5fcustom_5falgorithm_25',['OQS_randombytes_custom_algorithm',['../rand_8h.html#af79c03032969d61e363467f6caf56412',1,'rand.h']]], + ['oqs_5frandombytes_5fswitch_5falgorithm_26',['OQS_randombytes_switch_algorithm',['../rand_8h.html#a707cacdae3e726709080b1d5ffd5705c',1,'rand.h']]], + ['oqs_5fsha2_5fset_5fcallbacks_27',['OQS_SHA2_set_callbacks',['../sha2__ops_8h.html#a82985ef8b70799af4a1724080b14ef90',1,'sha2_ops.h']]], + ['oqs_5fsha3_5fset_5fcallbacks_28',['OQS_SHA3_set_callbacks',['../sha3__ops_8h.html#a918d26faf3422ca991ea20acbd81cf14',1,'sha3_ops.h']]], + ['oqs_5fsha3_5fx4_5fset_5fcallbacks_29',['OQS_SHA3_x4_set_callbacks',['../sha3x4__ops_8h.html#a3b2bd2a59c1be0de3c95df93f6d6d4d1',1,'sha3x4_ops.h']]], + ['oqs_5fsig_5falg_5fcount_30',['OQS_SIG_alg_count',['../sig_8h.html#a26f926d5c6177a536ad696785aef1710',1,'sig.h']]], + ['oqs_5fsig_5falg_5fidentifier_31',['OQS_SIG_alg_identifier',['../sig_8h.html#a6f114705b2da592ac99bb57a5ec25d52',1,'sig.h']]], + ['oqs_5fsig_5falg_5fis_5fenabled_32',['OQS_SIG_alg_is_enabled',['../sig_8h.html#aa6a66d4a02d8e3fb81691ef4a7db9402',1,'sig.h']]], + ['oqs_5fsig_5ffree_33',['OQS_SIG_free',['../sig_8h.html#a3ab9ceb4859a721bec0b718c6b468685',1,'sig.h']]], + ['oqs_5fsig_5fkeypair_34',['OQS_SIG_keypair',['../sig_8h.html#ac5c527513c5c353ba90a1a9ee386458e',1,'sig.h']]], + ['oqs_5fsig_5fnew_35',['OQS_SIG_new',['../sig_8h.html#a9d44f4c5b0624d411146162df1023ea2',1,'sig.h']]], + ['oqs_5fsig_5fsign_36',['OQS_SIG_sign',['../sig_8h.html#ab6fa805ef48e554fcbf6bbe5a92136da',1,'sig.h']]], + ['oqs_5fsig_5fsign_5fwith_5fctx_5fstr_37',['OQS_SIG_sign_with_ctx_str',['../sig_8h.html#a8852fe0a9b003460b56f7b203045f043',1,'sig.h']]], + ['oqs_5fsig_5fstfl_5falg_5fcount_38',['OQS_SIG_STFL_alg_count',['../sig__stfl_8h.html#ac5ae781173cb89dd0c068ad5616066de',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fidentifier_39',['OQS_SIG_STFL_alg_identifier',['../sig__stfl_8h.html#aea5c4e31e0e6d33937e676e6c9ee66b1',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5falg_5fis_5fenabled_40',['OQS_SIG_STFL_alg_is_enabled',['../sig__stfl_8h.html#a6048469b5bcc9baabf2d1b16d4f9d544',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5ffree_41',['OQS_SIG_STFL_free',['../sig__stfl_8h.html#a13f693e3f75a569b703c5c33730c9e4d',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fkeypair_42',['OQS_SIG_STFL_keypair',['../sig__stfl_8h.html#a1e3cdade2d967a38e6016d9c0467e09f',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fnew_43',['OQS_SIG_STFL_new',['../sig__stfl_8h.html#a3246ae3bd723c319adc81d897e85b983',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5fdeserialize_44',['OQS_SIG_STFL_SECRET_KEY_deserialize',['../sig__stfl_8h.html#a6e9087c9d955efcc27db2095b37f8a84',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5ffree_45',['OQS_SIG_STFL_SECRET_KEY_free',['../sig__stfl_8h.html#ab44744b8433e5b322eb658091ef847fc',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5flock_46',['OQS_SIG_STFL_SECRET_KEY_lock',['../sig__stfl_8h.html#a1aedb69c1deffc649839757844e30dea',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5fnew_47',['OQS_SIG_STFL_SECRET_KEY_new',['../sig__stfl_8h.html#a005c6214cdc6526ac35d391afa9c8e42',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5fserialize_48',['OQS_SIG_STFL_SECRET_KEY_serialize',['../sig__stfl_8h.html#ac1a0cd75e295ae8ef5bd65a10e1eb645',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5fset_5flock_49',['OQS_SIG_STFL_SECRET_KEY_SET_lock',['../sig__stfl_8h.html#a65e6340a5b5b82f1bf13b3c1882e2be1',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5fset_5fmutex_50',['OQS_SIG_STFL_SECRET_KEY_SET_mutex',['../sig__stfl_8h.html#a45d605365e121909304ac60109071377',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5fset_5fstore_5fcb_51',['OQS_SIG_STFL_SECRET_KEY_SET_store_cb',['../sig__stfl_8h.html#a8e153544d3e1fdb0481d4591680a5381',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5fset_5funlock_52',['OQS_SIG_STFL_SECRET_KEY_SET_unlock',['../sig__stfl_8h.html#a4453cbe698cdb80504a40d8dd6a5d678',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsecret_5fkey_5funlock_53',['OQS_SIG_STFL_SECRET_KEY_unlock',['../sig__stfl_8h.html#afdd207acadb903bba3e356a128b53021',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsign_54',['OQS_SIG_STFL_sign',['../sig__stfl_8h.html#af17ee48c6ad17f4c1c4e1bcb214357f6',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsigs_5fremaining_55',['OQS_SIG_STFL_sigs_remaining',['../sig__stfl_8h.html#a5adb9035274c2da51c1face8b3637de4',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fsigs_5ftotal_56',['OQS_SIG_STFL_sigs_total',['../sig__stfl_8h.html#aa94ebbe9d770882aad2fb42f94933f76',1,'sig_stfl.h']]], + ['oqs_5fsig_5fstfl_5fverify_57',['OQS_SIG_STFL_verify',['../sig__stfl_8h.html#af8aa83ed2914238a0f3f08e1da8ca782',1,'sig_stfl.h']]], + ['oqs_5fsig_5fsupports_5fctx_5fstr_58',['OQS_SIG_supports_ctx_str',['../sig_8h.html#af8530b21ba0a476907cd940dac070fd7',1,'sig.h']]], + ['oqs_5fsig_5fverify_59',['OQS_SIG_verify',['../sig_8h.html#ada769c1d40aa64bb33e88938212a1711',1,'sig.h']]], + ['oqs_5fsig_5fverify_5fwith_5fctx_5fstr_60',['OQS_SIG_verify_with_ctx_str',['../sig_8h.html#a8cb7875203b8b4a5254682c0507c2e38',1,'sig.h']]], + ['oqs_5fthread_5fstop_61',['OQS_thread_stop',['../common_8h.html#ab77c81c618ae81e782a3a88fc2367201',1,'common.h']]], + ['oqs_5fversion_62',['OQS_version',['../common_8h.html#a2f4a7a8a26f4530f7c16fa2489623d95',1,'common.h']]] +]; diff --git a/liboqs/api/doxygen/search/pages_0.js b/liboqs/api/doxygen/search/pages_0.js new file mode 100644 index 0000000..f15605d --- /dev/null +++ b/liboqs/api/doxygen/search/pages_0.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['a_20vulnerability_0',['Reporting a Vulnerability',['../security-policy.html#reporting-a-vulnerability',1,'']]], + ['acknowledgements_1',['Acknowledgements',['../index.html#acknowledgements',1,'']]], + ['algorithms_2',['Supported Algorithms',['../index.html#supported-algorithms',1,'']]], + ['and_20mac_3',['Linux and Mac',['../index.html#linux-and-mac',1,'']]], + ['and_20security_4',['Limitations and Security',['../index.html#limitations-and-security',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_1.js b/liboqs/api/doxygen/search/pages_1.js new file mode 100644 index 0000000..2129370 --- /dev/null +++ b/liboqs/api/doxygen/search/pages_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['based_20signatures_0',['Stateful Hash Based Signatures',['../options-for-configuring-liboqs-builds.html#stateful-hash-based-signatures',1,'']]], + ['build_5fshared_5flibs_1',['BUILD_SHARED_LIBS',['../options-for-configuring-liboqs-builds.html#bUILD_SHARED_LIBS',1,'']]], + ['builds_2',['Options for configuring liboqs builds',['../options-for-configuring-liboqs-builds.html',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_10.js b/liboqs/api/doxygen/search/pages_10.js new file mode 100644 index 0000000..1bc29a4 --- /dev/null +++ b/liboqs/api/doxygen/search/pages_10.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['use_5fcoverage_0',['USE_COVERAGE',['../options-for-configuring-liboqs-builds.html#uSE_COVERAGE',1,'']]], + ['use_5fsanitizer_1',['USE_SANITIZER',['../options-for-configuring-liboqs-builds.html#uSE_SANITIZER',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_11.js b/liboqs/api/doxygen/search/pages_11.js new file mode 100644 index 0000000..ca36c00 --- /dev/null +++ b/liboqs/api/doxygen/search/pages_11.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['versions_0',['Supported Versions',['../security-policy.html#supported-versions',1,'']]], + ['vulnerability_1',['Reporting a Vulnerability',['../security-policy.html#reporting-a-vulnerability',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_12.js b/liboqs/api/doxygen/search/pages_12.js new file mode 100644 index 0000000..9f08099 --- /dev/null +++ b/liboqs/api/doxygen/search/pages_12.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['windows_0',['Windows',['../index.html#windows',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_2.js b/liboqs/api/doxygen/search/pages_2.js new file mode 100644 index 0000000..e5ba5cc --- /dev/null +++ b/liboqs/api/doxygen/search/pages_2.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['cmake_5fbuild_5ftype_0',['CMAKE_BUILD_TYPE',['../options-for-configuring-liboqs-builds.html#cMAKE_BUILD_TYPE',1,'']]], + ['cmake_5finstall_5fprefix_1',['CMAKE_INSTALL_PREFIX',['../options-for-configuring-liboqs-builds.html#cMAKE_INSTALL_PREFIX',1,'']]], + ['compilation_2',['Cross compilation',['../index.html#cross-compilation',1,'']]], + ['configuring_20liboqs_20builds_3',['Options for configuring liboqs builds',['../options-for-configuring-liboqs-builds.html',1,'']]], + ['contributing_4',['Contributing',['../index.html#contributing',1,'']]], + ['cross_20compilation_5',['Cross compilation',['../index.html#cross-compilation',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_3.js b/liboqs/api/doxygen/search/pages_3.js new file mode 100644 index 0000000..a6ed4a2 --- /dev/null +++ b/liboqs/api/doxygen/search/pages_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['documentation_0',['Documentation',['../index.html#documentation',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_4.js b/liboqs/api/doxygen/search/pages_4.js new file mode 100644 index 0000000..437bafc --- /dev/null +++ b/liboqs/api/doxygen/search/pages_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['encapsulation_20mechanisms_0',['Key encapsulation mechanisms',['../index.html#key-encapsulation-mechanisms',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_5.js b/liboqs/api/doxygen/search/pages_5.js new file mode 100644 index 0000000..9c7297d --- /dev/null +++ b/liboqs/api/doxygen/search/pages_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['for_20configuring_20liboqs_20builds_0',['Options for configuring liboqs builds',['../options-for-configuring-liboqs-builds.html',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_6.js b/liboqs/api/doxygen/search/pages_6.js new file mode 100644 index 0000000..a8fc6e2 --- /dev/null +++ b/liboqs/api/doxygen/search/pages_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['hash_20based_20signatures_0',['Stateful Hash Based Signatures',['../options-for-configuring-liboqs-builds.html#stateful-hash-based-signatures',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_7.js b/liboqs/api/doxygen/search/pages_7.js new file mode 100644 index 0000000..2e6bb61 --- /dev/null +++ b/liboqs/api/doxygen/search/pages_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['key_20encapsulation_20mechanisms_0',['Key encapsulation mechanisms',['../index.html#key-encapsulation-mechanisms',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_8.js b/liboqs/api/doxygen/search/pages_8.js new file mode 100644 index 0000000..fec199a --- /dev/null +++ b/liboqs/api/doxygen/search/pages_8.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['liboqs_0',['liboqs',['../index.html',1,'']]], + ['liboqs_20builds_1',['Options for configuring liboqs builds',['../options-for-configuring-liboqs-builds.html',1,'']]], + ['license_2',['License',['../index.html#license',1,'']]], + ['limitations_3',['limitations',['../index.html#platform-limitations',1,'Platform limitations'],['../index.html#support-limitations',1,'Support limitations']]], + ['limitations_20and_20security_4',['Limitations and Security',['../index.html#limitations-and-security',1,'']]], + ['linux_20and_20mac_5',['Linux and Mac',['../index.html#linux-and-mac',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_9.js b/liboqs/api/doxygen/search/pages_9.js new file mode 100644 index 0000000..016404a --- /dev/null +++ b/liboqs/api/doxygen/search/pages_9.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['mac_0',['Linux and Mac',['../index.html#linux-and-mac',1,'']]], + ['mechanisms_1',['Key encapsulation mechanisms',['../index.html#key-encapsulation-mechanisms',1,'']]], + ['model_2',['Threat Model',['../security-policy.html#threat-model',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_a.js b/liboqs/api/doxygen/search/pages_a.js new file mode 100644 index 0000000..bee3b5a --- /dev/null +++ b/liboqs/api/doxygen/search/pages_a.js @@ -0,0 +1,26 @@ +var searchData= +[ + ['options_20for_20configuring_20liboqs_20builds_0',['Options for configuring liboqs builds',['../options-for-configuring-liboqs-builds.html',1,'']]], + ['oqs_5falgs_5fenabled_1',['OQS_ALGS_ENABLED',['../options-for-configuring-liboqs-builds.html#oQS_ALGS_ENABLED',1,'']]], + ['oqs_5fbuild_5ffuzz_5ftests_2',['OQS_BUILD_FUZZ_TESTS',['../options-for-configuring-liboqs-builds.html#oQS_BUILD_FUZZ_TESTS',1,'']]], + ['oqs_5fbuild_5fonly_5flib_3',['OQS_BUILD_ONLY_LIB',['../options-for-configuring-liboqs-builds.html#oQS_BUILD_ONLY_LIB',1,'']]], + ['oqs_5fdist_5fbuild_4',['OQS_DIST_BUILD',['../options-for-configuring-liboqs-builds.html#oQS_DIST_BUILD',1,'']]], + ['oqs_5fdlopen_5fopenssl_5',['OQS_DLOPEN_OPENSSL',['../options-for-configuring-liboqs-builds.html#oQS_DLOPEN_OPENSSL',1,'']]], + ['oqs_5fembedded_5fbuild_6',['OQS_EMBEDDED_BUILD',['../options-for-configuring-liboqs-builds.html#oQS_EMBEDDED_BUILD',1,'']]], + ['oqs_5fenable_5fkem_5falg_20oqs_5fenable_5fsig_5falg_20oqs_5fenable_5fsig_5fstfl_5falg_7',['OQS_ENABLE_KEM_ALG/OQS_ENABLE_SIG_ALG/OQS_ENABLE_SIG_STFL_ALG',['../options-for-configuring-liboqs-builds.html#oQS_ENABLE_KEM_ALGOQS_ENABLE_SIG_ALGOQS_ENABLE_SIG_STFL_ALG',1,'']]], + ['oqs_5fenable_5flibjade_5fkem_5falg_20oqs_5fenable_5flibjade_5fsig_5falg_8',['OQS_ENABLE_LIBJADE_KEM_ALG/OQS_ENABLE_LIBJADE_SIG_ALG',['../options-for-configuring-liboqs-builds.html#oQS_ENABLE_LIBJADE_KEM_ALGOQS_ENABLE_LIBJADE_SIG_ALG',1,'']]], + ['oqs_5fenable_5flibjade_5fsig_5falg_9',['OQS_ENABLE_LIBJADE_KEM_ALG/OQS_ENABLE_LIBJADE_SIG_ALG',['../options-for-configuring-liboqs-builds.html#oQS_ENABLE_LIBJADE_KEM_ALGOQS_ENABLE_LIBJADE_SIG_ALG',1,'']]], + ['oqs_5fenable_5fsig_5falg_20oqs_5fenable_5fsig_5fstfl_5falg_10',['OQS_ENABLE_KEM_ALG/OQS_ENABLE_SIG_ALG/OQS_ENABLE_SIG_STFL_ALG',['../options-for-configuring-liboqs-builds.html#oQS_ENABLE_KEM_ALGOQS_ENABLE_SIG_ALGOQS_ENABLE_SIG_STFL_ALG',1,'']]], + ['oqs_5fenable_5fsig_5fstfl_5falg_11',['OQS_ENABLE_KEM_ALG/OQS_ENABLE_SIG_ALG/OQS_ENABLE_SIG_STFL_ALG',['../options-for-configuring-liboqs-builds.html#oQS_ENABLE_KEM_ALGOQS_ENABLE_SIG_ALGOQS_ENABLE_SIG_STFL_ALG',1,'']]], + ['oqs_5fenable_5ftest_5fconstant_5ftime_12',['OQS_ENABLE_TEST_CONSTANT_TIME',['../options-for-configuring-liboqs-builds.html#oQS_ENABLE_TEST_CONSTANT_TIME',1,'']]], + ['oqs_5flibjade_5fbuild_13',['OQS_LIBJADE_BUILD',['../options-for-configuring-liboqs-builds.html#oQS_LIBJADE_BUILD',1,'']]], + ['oqs_5fminimal_5fbuild_14',['OQS_MINIMAL_BUILD',['../options-for-configuring-liboqs-builds.html#oQS_MINIMAL_BUILD',1,'']]], + ['oqs_5fopt_5ftarget_15',['OQS_OPT_TARGET',['../options-for-configuring-liboqs-builds.html#oQS_OPT_TARGET',1,'']]], + ['oqs_5fspeed_5fuse_5farm_5fpmu_16',['OQS_SPEED_USE_ARM_PMU',['../options-for-configuring-liboqs-builds.html#oQS_SPEED_USE_ARM_PMU',1,'']]], + ['oqs_5fstrict_5fwarnings_17',['OQS_STRICT_WARNINGS',['../options-for-configuring-liboqs-builds.html#oQS_STRICT_WARNINGS',1,'']]], + ['oqs_5fuse_5fcpufeature_5finstructions_18',['OQS_USE_CPUFEATURE_INSTRUCTIONS',['../options-for-configuring-liboqs-builds.html#oQS_USE_CPUFEATURE_INSTRUCTIONS',1,'']]], + ['oqs_5fuse_5fcupqc_19',['OQS_USE_CUPQC',['../options-for-configuring-liboqs-builds.html#oQS_USE_CUPQC',1,'']]], + ['oqs_5fuse_5ficicle_20',['OQS_USE_ICICLE',['../options-for-configuring-liboqs-builds.html#oQS_USE_ICICLE',1,'']]], + ['oqs_5fuse_5fopenssl_21',['OQS_USE_OPENSSL',['../options-for-configuring-liboqs-builds.html#oQS_USE_OPENSSL',1,'']]], + ['overview_22',['Overview',['../index.html#overview',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_b.js b/liboqs/api/doxygen/search/pages_b.js new file mode 100644 index 0000000..fd7ccb8 --- /dev/null +++ b/liboqs/api/doxygen/search/pages_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['platform_20limitations_0',['Platform limitations',['../index.html#platform-limitations',1,'']]], + ['policy_1',['Security Policy',['../security-policy.html',1,'']]], + ['process_2',['Security Response Process',['../security-policy.html#security-response-process',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_c.js b/liboqs/api/doxygen/search/pages_c.js new file mode 100644 index 0000000..a17bd8c --- /dev/null +++ b/liboqs/api/doxygen/search/pages_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['quickstart_0',['Quickstart',['../index.html#quickstart',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_d.js b/liboqs/api/doxygen/search/pages_d.js new file mode 100644 index 0000000..68c02c1 --- /dev/null +++ b/liboqs/api/doxygen/search/pages_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['reporting_20a_20vulnerability_0',['Reporting a Vulnerability',['../security-policy.html#reporting-a-vulnerability',1,'']]], + ['response_20process_1',['Security Response Process',['../security-policy.html#security-response-process',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_e.js b/liboqs/api/doxygen/search/pages_e.js new file mode 100644 index 0000000..22600fd --- /dev/null +++ b/liboqs/api/doxygen/search/pages_e.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['schemes_0',['schemes',['../index.html#signature-schemes',1,'Signature schemes'],['../index.html#stateful-signature-schemes',1,'Stateful signature schemes']]], + ['security_1',['Limitations and Security',['../index.html#limitations-and-security',1,'']]], + ['security_20policy_2',['Security Policy',['../security-policy.html',1,'']]], + ['security_20response_20process_3',['Security Response Process',['../security-policy.html#security-response-process',1,'']]], + ['signature_20schemes_4',['Signature schemes',['../index.html#signature-schemes',1,'']]], + ['signature_20schemes_5',['Stateful signature schemes',['../index.html#stateful-signature-schemes',1,'']]], + ['signatures_6',['Stateful Hash Based Signatures',['../options-for-configuring-liboqs-builds.html#stateful-hash-based-signatures',1,'']]], + ['stateful_20hash_20based_20signatures_7',['Stateful Hash Based Signatures',['../options-for-configuring-liboqs-builds.html#stateful-hash-based-signatures',1,'']]], + ['stateful_20signature_20schemes_8',['Stateful signature schemes',['../index.html#stateful-signature-schemes',1,'']]], + ['status_9',['Status',['../index.html#status',1,'']]], + ['support_20limitations_10',['Support limitations',['../index.html#support-limitations',1,'']]], + ['supported_20algorithms_11',['Supported Algorithms',['../index.html#supported-algorithms',1,'']]], + ['supported_20versions_12',['Supported Versions',['../security-policy.html#supported-versions',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/pages_f.js b/liboqs/api/doxygen/search/pages_f.js new file mode 100644 index 0000000..2449b80 --- /dev/null +++ b/liboqs/api/doxygen/search/pages_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['threat_20model_0',['Threat Model',['../security-policy.html#threat-model',1,'']]] +]; diff --git a/liboqs/api/doxygen/search/search.css b/liboqs/api/doxygen/search/search.css new file mode 100644 index 0000000..956f31f --- /dev/null +++ b/liboqs/api/doxygen/search/search.css @@ -0,0 +1,378 @@ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 43px; + margin-right: 0; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: var(--search-background-color); + border-radius: 0.65em; + border: 1px solid var(--search-box-border-color); + z-index: 102; + margin-right: 4px; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.6em; +} + +#MSearchField { + display: inline-block; + vertical-align: top; + width: 7.5em; + height: 22px; + margin: 0 0 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: var(--search-foreground-color); + outline: none; + font-family: var(--font-family-search); + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.6em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + margin: 6px 0 0 4px; +} + +.close-icon { + width: 11px; + height: 11px; + background-color: var(--search-close-icon-bg-color); + border-radius: 50%; + position: relative; + display: flex; + justify-content: center; + align-items: center; + box-sizing: content-box; +} + +.close-icon:before, +.close-icon:after { + content: ''; + position: absolute; + width: 7px; + height: 1px; + background-color: var(--search-close-icon-fg-color); +} + +.close-icon:before { + transform: rotate(45deg); +} + +.close-icon:after { + transform: rotate(-45deg); +} + + +.MSearchBoxActive #MSearchField { + color: var(--search-active-color); +} + +.search-icon { + width: 20px; + height: 20px; + display: inline-block; + position: relative; + margin-left: 3px; +} + +#MSearchSelectExt.search-icon { + width: 10px; +} + +#MSearchSelectExt + input { + margin-left: 5px; +} + +.search-icon::before, .search-icon::after { + content: ''; + position: absolute; + border: 1.5px solid var(--search-foreground-color); + box-sizing: content-box; +} + +.search-icon::before { + width: 6px; + height: 6px; + border-radius: 50%; + top: 7px; + left: 2px; + background: var(--search-background-color); +} + +.search-icon::after { + border: 1px solid var(--search-foreground-color); + width: 0px; + height: 3px; + border-radius: 2px; + top: 15px; + left: 8px; + transform: rotate(-45deg); + transform-origin: top left; +} + +.search-icon-dropdown { + content: ''; + width: 0; + height: 0; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid var(--search-foreground-color); + top: 8px; + left: 15px; + transform: translateX(-50%); + position: absolute; +} + + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); + backdrop-filter: var(--search-filter-backdrop-filter); + -webkit-backdrop-filter: var(--search-filter-backdrop-filter); + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + border-radius: 4px; +} + +.SelectItem { + font: 8pt var(--font-family-search); + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: var(--font-family-monospace); + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: var(--search-filter-foreground-color); + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: var(--search-filter-foreground-color); + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +@keyframes slideInSearchResults { + from { + opacity: 0; + transform: translate(0, 15px); + } + + to { + opacity: 1; + transform: translate(0, 20px); + } +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: auto; + right: 4px; + top: 0; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); + backdrop-filter: var(--search-results-backdrop-filter); + -webkit-backdrop-filter: var(--search-results-backdrop-filter); + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; + border-radius: 8px; + transform: translate(0, 20px); + animation: ease-out 280ms slideInSearchResults; + box-shadow: 0 2px 8px 0 rgba(0,0,0,.075); +} + + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 10pt; + padding: 2px 5px; +} + +div.SRPage { + margin: 5px 2px; + /*background-color: var(--search-results-background-color);*/ +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: var(--font-family-search); +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: var(--font-family-search); +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +#searchBoxPos1 dark-mode-toggle { + margin-top: 4px; +} + +/*---------------- External search page results */ + +.pages b { + color: var(--nav-foreground-color); + padding: 5px 5px 3px 5px; + background-color: var(--nav-menu-active-bg); + border-radius: 4px; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/liboqs/api/doxygen/search/search.js b/liboqs/api/doxygen/search/search.js new file mode 100644 index 0000000..dc14410 --- /dev/null +++ b/liboqs/api/doxygen/search/search.js @@ -0,0 +1,708 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +const SEARCH_COOKIE_NAME = ''+'search_grp'; + +const searchResults = new SearchResults(); + +/* A class handling everything associated with the search panel. + + Parameters: + name - The name of the global variable that will be + storing this instance. Is needed to be able to set timeouts. + resultPath - path to use for external files +*/ +function SearchBox(name, resultsPath, extension) { + if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); } + if (!extension || extension == "") { extension = ".html"; } + + function getXPos(item) { + let x = 0; + if (item.offsetWidth) { + while (item && item!=document.body) { + x += item.offsetLeft; + item = item.offsetParent; + } + } + return x; + } + + function getYPos(item) { + let y = 0; + if (item.offsetWidth) { + while (item && item!=document.body) { + y += item.offsetTop; + item = item.offsetParent; + } + } + return y; + } + + // ---------- Instance variables + this.name = name; + this.resultsPath = resultsPath; + this.keyTimeout = 0; + this.keyTimeoutLength = 500; + this.closeSelectionTimeout = 300; + this.lastSearchValue = ""; + this.lastResultsPage = ""; + this.hideTimeout = 0; + this.searchIndex = 0; + this.searchActive = false; + this.extension = extension; + + // ----------- DOM Elements + + this.DOMSearchField = () => document.getElementById("MSearchField"); + this.DOMSearchSelect = () => document.getElementById("MSearchSelect"); + this.DOMSearchSelectWindow = () => document.getElementById("MSearchSelectWindow"); + this.DOMPopupSearchResults = () => document.getElementById("MSearchResults"); + this.DOMPopupSearchResultsWindow = () => document.getElementById("MSearchResultsWindow"); + this.DOMSearchClose = () => document.getElementById("MSearchClose"); + this.DOMSearchBox = () => document.getElementById("MSearchBox"); + + // ------------ Event Handlers + + // Called when focus is added or removed from the search field. + this.OnSearchFieldFocus = function(isActive) { + this.Activate(isActive); + } + + this.OnSearchSelectShow = function() { + const searchSelectWindow = this.DOMSearchSelectWindow(); + const searchField = this.DOMSearchSelect(); + + const left = getXPos(searchField); + const top = getYPos(searchField) + searchField.offsetHeight; + + // show search selection popup + searchSelectWindow.style.display='block'; + searchSelectWindow.style.left = left + 'px'; + searchSelectWindow.style.top = top + 'px'; + + // stop selection hide timer + if (this.hideTimeout) { + clearTimeout(this.hideTimeout); + this.hideTimeout=0; + } + return false; // to avoid "image drag" default event + } + + this.OnSearchSelectHide = function() { + this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this), + this.closeSelectionTimeout); + } + + // Called when the content of the search field is changed. + this.OnSearchFieldChange = function(evt) { + if (this.keyTimeout) { // kill running timer + clearTimeout(this.keyTimeout); + this.keyTimeout = 0; + } + + const e = evt ? evt : window.event; // for IE + if (e.keyCode==40 || e.keyCode==13) { + if (e.shiftKey==1) { + this.OnSearchSelectShow(); + const win=this.DOMSearchSelectWindow(); + for (let i=0;i do a search + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) { // Up + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } else if (e.keyCode==13 || e.keyCode==27) { + e.stopPropagation(); + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() { + this.keyTimeout = 0; + + // strip leading whitespace + const searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + const code = searchValue.toLowerCase().charCodeAt(0); + let idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) { // surrogate pair + idxChar = searchValue.substr(0, 2); + } + + let jsFile; + let idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) { + const hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + const loadJS = function(url, impl, loc) { + const scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + const domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + const domSearchBox = this.DOMSearchBox(); + const domPopupSearchResults = this.DOMPopupSearchResults(); + const domSearchClose = this.DOMSearchClose(); + const resultsPath = this.resultsPath; + + const handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + if (idx!=-1) { + searchResults.Search(searchValue); + } else { // no file with search results => force empty search results + searchResults.Search('===='); + } + + if (domPopupSearchResultsWindow.style.display!='block') { + domSearchClose.style.display = 'inline-block'; + let left = getXPos(domSearchBox) + 150; + let top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + const maxWidth = document.body.clientWidth; + const maxHeight = document.body.clientHeight; + let width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + let height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } else if (!isActive) { // directly remove the panel + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults() { + + function convertToId(search) { + let result = ''; + for (let i=0;i. + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) { + const parentElement = document.getElementById(id); + let element = parentElement.firstChild; + + while (element && element!=parentElement) { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) { + element = element.firstChild; + } else if (element.nextSibling) { + element = element.nextSibling; + } else { + do { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) { + const element = this.FindChildElement(id); + if (element) { + if (element.style.display == 'block') { + element.style.display = 'none'; + } else { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) { + if (!search) { // get search word from URL + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + const resultRows = document.getElementsByTagName("div"); + let matches = 0; + + let i = 0; + while (i < resultRows.length) { + const row = resultRows.item(i); + if (row.className == "SRResult") { + let rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) { + row.style.display = 'block'; + matches++; + } else { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) { // no results + document.getElementById("NoMatches").style.display='block'; + } else { // at least one result + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) { + if (e.type == "keydown") { + this.repeatOn = false; + this.lastKey = e.keyCode; + } else if (e.type == "keypress") { + if (!this.repeatOn) { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } else if (e.type == "keyup") { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + const newIndex = itemIndex-1; + let focusItem = this.NavPrev(newIndex); + if (focusItem) { + let child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') { // children visible + let n=0; + let tmpElem; + for (;;) { // search for last child + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) { + focusItem = tmpElem; + } else { // found it! + break; + } + n++; + } + } + } + if (focusItem) { + focusItem.focus(); + } else { // return focus to search field + document.getElementById("MSearchField").focus(); + } + } else if (this.lastKey==40) { // Down + const newIndex = itemIndex+1; + let focusItem; + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') { // children visible + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } else if (this.lastKey==39) { // Right + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } else if (this.lastKey==37) { // Left + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + if (childIndex>0) { + const newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } else { // already at first child, jump to parent + document.getElementById('Item'+itemIndex).focus(); + } + } else if (this.lastKey==40) { // Down + const newIndex = childIndex+1; + let elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) { // last child, jump to parent next parent + elem = this.NavNext(itemIndex+1); + } + if (elem) { + elem.focus(); + } + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; + } + return false; + } +} + +function createResults(resultsPath) { + + function setKeyActions(elem,action) { + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); + } + + function setClassAttr(elem,attr) { + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); + } + + const decodeHtml = (html) => { + const txt = document.createElement("textarea"); + txt.innerHTML = html; + return txt.value; + }; + + const results = document.getElementById("SRResults"); + results.innerHTML = ''; + searchData.forEach((elem,index) => { + const id = elem[0]; + const srResult = document.createElement('div'); + srResult.setAttribute('id','SR_'+id); + setClassAttr(srResult,'SRResult'); + const srEntry = document.createElement('div'); + setClassAttr(srEntry,'SREntry'); + const srLink = document.createElement('a'); + srLink.setAttribute('id','Item'+index); + setKeyActions(srLink,'return searchResults.Nav(event,'+index+')'); + setClassAttr(srLink,'SRSymbol'); + srLink.innerHTML = decodeHtml(elem[1][0]); + srEntry.appendChild(srLink); + if (elem[1].length==2) { // single result + if (elem[1][1][0].startsWith('http://') || elem[1][1][0].startsWith('https://')) { // absolute path + srLink.setAttribute('href',elem[1][1][0]); + } else { // relative path + srLink.setAttribute('href',resultsPath+elem[1][1][0]); + } + srLink.setAttribute('onclick','searchBox.CloseResultsWindow()'); + if (elem[1][1][1]) { + srLink.setAttribute('target','_parent'); + } else { + srLink.setAttribute('target','_blank'); + } + const srScope = document.createElement('span'); + setClassAttr(srScope,'SRScope'); + srScope.innerHTML = decodeHtml(elem[1][1][2]); + srEntry.appendChild(srScope); + } else { // multiple results + srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")'); + const srChildren = document.createElement('div'); + setClassAttr(srChildren,'SRChildren'); + for (let c=0; c + + + + + + +liboqs: Security Policy + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    +
    Security Policy
    +
    +
    +

    +

    +Supported Versions

    +

    We only support the most recent release.

    +

    Using any code prior to 0.12.0 is strongly discouraged due to a known security vulnerability in HQC.

    + + + + + + + +
    Version Supported
    0.14.0 :white_check_mark:
    < 0.14 :x:
    +

    +Reporting a Vulnerability

    +

    Please follow this information to report a vulnerability.

    +

    +Threat Model

    +

    Some timing-based side-channel attacks are within the scope of our threat model. OQS tests for secret-dependent branches and memory accesses on Linux on x86_64 for some algorithms. Where executed, all test failures are documented as either "passes," which we have assessed to be false positives, or "issues," which may constitute non–constant-time behaviour. The algorithm datasheets indicate whether or not an implementation passes our constant-time tests, as well as whether or not it is expected to pass; a no-pass expectation also encompasses the case that no constant-time analysis has been done and not just the case that the algorithm is expected/has been ascertained to not pass. Details about passes and issues are available in the tests/constant_time directory. These tests do not encompass all classes of non–constant-time behaviour; for example, they do not detect possible variable-time instructions, such as DIV. Reports of non–constant-time behaviour that fall outside this scope will be considered on a case-by-case basis, with a priority on Tier 1 platforms.

    +

    The following types of attacks are outside the scope of our threat model:

    +
      +
    • same physical system side channel
    • +
    • CPU / hardware flaws
    • +
    • physical fault injection attacks (including Rowhammer-style attacks)
    • +
    • physical observation side channels (such as power consumption, electromagnetic emissions)
    • +
    +

    Mitigations for security issues outside the stated threat model may still be applied depending on the nature of the issue and the mitigation.

    +

    (Based in part on https://openssl-library.org/policies/general/security-policy/index.html)

    +

    +Security Response Process

    +

    Security reports for liboqs will be handled in accordance with the OQS security response process. Please also see the general support disclaimer for liboqs.

    +
    +
    + + +
    + + diff --git a/liboqs/api/doxygen/sha2__ops_8h.html b/liboqs/api/doxygen/sha2__ops_8h.html new file mode 100644 index 0000000..0bb9e73 --- /dev/null +++ b/liboqs/api/doxygen/sha2__ops_8h.html @@ -0,0 +1,149 @@ + + + + + + + +liboqs: src/common/sha2/sha2_ops.h File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    + +
    sha2_ops.h File Reference
    +
    +
    + +

    Header defining the callback API for OQS SHA2. +More...

    +
    #include <stddef.h>
    +#include <stdint.h>
    +#include <oqs/common.h>
    +
    +

    Go to the source code of this file.

    + + + + + + + +

    +Data Structures

    struct  OQS_SHA2_sha224_ctx
    struct  OQS_SHA2_sha256_ctx
    struct  OQS_SHA2_sha384_ctx
    struct  OQS_SHA2_sha512_ctx
    struct  OQS_SHA2_callbacks
    + + +

    +Functions

    OQS_API void OQS_SHA2_set_callbacks (struct OQS_SHA2_callbacks *new_callbacks)
    +

    Detailed Description

    +

    Header defining the callback API for OQS SHA2.

    +
    Author
    Douglas Stebila
    +

    SPDX-License-Identifier: MIT

    +

    Function Documentation

    + +

    ◆ OQS_SHA2_set_callbacks()

    + +
    +
    + + + + + + + +
    OQS_API void OQS_SHA2_set_callbacks (struct OQS_SHA2_callbacks * new_callbacks)
    +
    +

    Set callback functions for SHA2 operations.

    +

    This function may be called before OQS_init to switch the cryptographic provider for SHA2 operations. If it is not called, the default provider determined at build time will be used.

    +
    Parameters
    + + +
    [in]new_callbacksCallback functions defined in OQS_SHA2_callbacks
    +
    +
    + +
    +
    +
    + + +
    + + diff --git a/liboqs/api/doxygen/sha2__ops_8h_source.html b/liboqs/api/doxygen/sha2__ops_8h_source.html new file mode 100644 index 0000000..0253c99 --- /dev/null +++ b/liboqs/api/doxygen/sha2__ops_8h_source.html @@ -0,0 +1,228 @@ + + + + + + + +liboqs: src/common/sha2/sha2_ops.h Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    +
    sha2_ops.h
    +
    +
    +Go to the documentation of this file.
    1
    +
    9
    +
    10#ifndef OQS_SHA2_OPS_H
    +
    11#define OQS_SHA2_OPS_H
    +
    12
    +
    13#include <stddef.h>
    +
    14#include <stdint.h>
    +
    15
    +
    16#include <oqs/common.h>
    +
    17
    +
    18#if defined(__cplusplus)
    +
    19extern "C" {
    +
    20#endif
    +
    21
    +
    +
    23typedef struct {
    +
    25 void *ctx;
    +
    27 size_t data_len;
    +
    29 uint8_t data[128];
    + +
    +
    31
    +
    +
    33typedef struct {
    +
    35 void *ctx;
    +
    37 size_t data_len;
    +
    39 uint8_t data[128];
    + +
    +
    41
    +
    +
    43typedef struct {
    +
    45 void *ctx;
    +
    47 size_t data_len;
    +
    49 uint8_t data[128];
    + +
    +
    51
    +
    +
    53typedef struct {
    +
    55 void *ctx;
    +
    57 size_t data_len;
    +
    59 uint8_t data[128];
    + +
    +
    61
    +
    + +
    68 void (*SHA2_sha256)(uint8_t *output, const uint8_t *input, size_t inplen);
    +
    69
    + +
    74
    + +
    79
    +
    83 void (*SHA2_sha256_inc)(OQS_SHA2_sha256_ctx *state, const uint8_t *in, size_t len);
    +
    84
    +
    88 void (*SHA2_sha256_inc_blocks)(OQS_SHA2_sha256_ctx *state, const uint8_t *in, size_t inblocks);
    +
    89
    +
    93 void (*SHA2_sha256_inc_finalize)(uint8_t *out, OQS_SHA2_sha256_ctx *state, const uint8_t *in, size_t inlen);
    +
    94
    + +
    99
    +
    103 void (*SHA2_sha384)(uint8_t *output, const uint8_t *input, size_t inplen);
    +
    104
    + +
    109
    + +
    114
    +
    118 void (*SHA2_sha384_inc_blocks)(OQS_SHA2_sha384_ctx *state, const uint8_t *in, size_t inblocks);
    +
    119
    +
    123 void (*SHA2_sha384_inc_finalize)(uint8_t *out, OQS_SHA2_sha384_ctx *state, const uint8_t *in, size_t inlen);
    +
    124
    + +
    129
    +
    133 void (*SHA2_sha512)(uint8_t *output, const uint8_t *input, size_t inplen);
    +
    134
    + +
    139
    + +
    144
    +
    148 void (*SHA2_sha512_inc_blocks)(OQS_SHA2_sha512_ctx *state, const uint8_t *in, size_t inblocks);
    +
    149
    +
    153 void (*SHA2_sha512_inc_finalize)(uint8_t *out, OQS_SHA2_sha512_ctx *state, const uint8_t *in, size_t inlen);
    +
    154
    + +
    159};
    +
    +
    160
    + +
    171
    +
    172#if defined(__cplusplus)
    +
    173} // extern "C"
    +
    174#endif
    +
    175
    +
    176#endif // OQS_SHA2_OPS_H
    +
    #define OQS_API
    Definition common.h:94
    +
    OQS_API void OQS_SHA2_set_callbacks(struct OQS_SHA2_callbacks *new_callbacks)
    +
    Definition sha2_ops.h:64
    +
    void(* SHA2_sha512_inc_finalize)(uint8_t *out, OQS_SHA2_sha512_ctx *state, const uint8_t *in, size_t inlen)
    Definition sha2_ops.h:153
    +
    void(* SHA2_sha384_inc_init)(OQS_SHA2_sha384_ctx *state)
    Definition sha2_ops.h:108
    +
    void(* SHA2_sha256_inc_finalize)(uint8_t *out, OQS_SHA2_sha256_ctx *state, const uint8_t *in, size_t inlen)
    Definition sha2_ops.h:93
    +
    void(* SHA2_sha256_inc_ctx_clone)(OQS_SHA2_sha256_ctx *dest, const OQS_SHA2_sha256_ctx *src)
    Definition sha2_ops.h:78
    +
    void(* SHA2_sha256_inc_init)(OQS_SHA2_sha256_ctx *state)
    Definition sha2_ops.h:73
    +
    void(* SHA2_sha384)(uint8_t *output, const uint8_t *input, size_t inplen)
    Definition sha2_ops.h:103
    +
    void(* SHA2_sha256)(uint8_t *output, const uint8_t *input, size_t inplen)
    Definition sha2_ops.h:68
    +
    void(* SHA2_sha256_inc_blocks)(OQS_SHA2_sha256_ctx *state, const uint8_t *in, size_t inblocks)
    Definition sha2_ops.h:88
    +
    void(* SHA2_sha384_inc_ctx_release)(OQS_SHA2_sha384_ctx *state)
    Definition sha2_ops.h:128
    +
    void(* SHA2_sha384_inc_finalize)(uint8_t *out, OQS_SHA2_sha384_ctx *state, const uint8_t *in, size_t inlen)
    Definition sha2_ops.h:123
    +
    void(* SHA2_sha512)(uint8_t *output, const uint8_t *input, size_t inplen)
    Definition sha2_ops.h:133
    +
    void(* SHA2_sha512_inc_init)(OQS_SHA2_sha512_ctx *state)
    Definition sha2_ops.h:138
    +
    void(* SHA2_sha256_inc)(OQS_SHA2_sha256_ctx *state, const uint8_t *in, size_t len)
    Definition sha2_ops.h:83
    +
    void(* SHA2_sha384_inc_blocks)(OQS_SHA2_sha384_ctx *state, const uint8_t *in, size_t inblocks)
    Definition sha2_ops.h:118
    +
    void(* SHA2_sha512_inc_ctx_release)(OQS_SHA2_sha512_ctx *state)
    Definition sha2_ops.h:158
    +
    void(* SHA2_sha256_inc_ctx_release)(OQS_SHA2_sha256_ctx *state)
    Definition sha2_ops.h:98
    +
    void(* SHA2_sha384_inc_ctx_clone)(OQS_SHA2_sha384_ctx *dest, const OQS_SHA2_sha384_ctx *src)
    Definition sha2_ops.h:113
    +
    void(* SHA2_sha512_inc_blocks)(OQS_SHA2_sha512_ctx *state, const uint8_t *in, size_t inblocks)
    Definition sha2_ops.h:148
    +
    void(* SHA2_sha512_inc_ctx_clone)(OQS_SHA2_sha512_ctx *dest, const OQS_SHA2_sha512_ctx *src)
    Definition sha2_ops.h:143
    +
    Definition sha2_ops.h:23
    +
    uint8_t data[128]
    Definition sha2_ops.h:29
    +
    size_t data_len
    Definition sha2_ops.h:27
    +
    void * ctx
    Definition sha2_ops.h:25
    +
    Definition sha2_ops.h:33
    +
    uint8_t data[128]
    Definition sha2_ops.h:39
    +
    void * ctx
    Definition sha2_ops.h:35
    +
    size_t data_len
    Definition sha2_ops.h:37
    +
    Definition sha2_ops.h:43
    +
    size_t data_len
    Definition sha2_ops.h:47
    +
    uint8_t data[128]
    Definition sha2_ops.h:49
    +
    void * ctx
    Definition sha2_ops.h:45
    +
    Definition sha2_ops.h:53
    +
    size_t data_len
    Definition sha2_ops.h:57
    +
    uint8_t data[128]
    Definition sha2_ops.h:59
    +
    void * ctx
    Definition sha2_ops.h:55
    +
    + + +
    + + diff --git a/liboqs/api/doxygen/sha3__ops_8h.html b/liboqs/api/doxygen/sha3__ops_8h.html new file mode 100644 index 0000000..ec5dd09 --- /dev/null +++ b/liboqs/api/doxygen/sha3__ops_8h.html @@ -0,0 +1,150 @@ + + + + + + + +liboqs: src/common/sha3/sha3_ops.h File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    + +
    sha3_ops.h File Reference
    +
    +
    + +

    Header defining the callback API for OQS SHA3 and SHAKE. +More...

    +
    #include <stddef.h>
    +#include <stdint.h>
    +#include <oqs/common.h>
    +
    +

    Go to the source code of this file.

    + + + + + + + + +

    +Data Structures

    struct  OQS_SHA3_sha3_256_inc_ctx
    struct  OQS_SHA3_sha3_384_inc_ctx
    struct  OQS_SHA3_sha3_512_inc_ctx
    struct  OQS_SHA3_shake128_inc_ctx
    struct  OQS_SHA3_shake256_inc_ctx
    struct  OQS_SHA3_callbacks
    + + +

    +Functions

    OQS_API void OQS_SHA3_set_callbacks (struct OQS_SHA3_callbacks *new_callbacks)
    +

    Detailed Description

    +

    Header defining the callback API for OQS SHA3 and SHAKE.

    +
    Author
    John Underhill, Douglas Stebila
    +

    SPDX-License-Identifier: MIT

    +

    Function Documentation

    + +

    ◆ OQS_SHA3_set_callbacks()

    + +
    +
    + + + + + + + +
    OQS_API void OQS_SHA3_set_callbacks (struct OQS_SHA3_callbacks * new_callbacks)
    +
    +

    Set callback functions for SHA3 operations.

    +

    This function may be called before OQS_init to switch the cryptographic provider for SHA3 operations. If it is not called, the default provider determined at build time will be used.

    +
    Parameters
    + + +
    new_callbacksCallback functions defined in OQS_SHA3_callbacks struct
    +
    +
    + +
    +
    +
    + + +
    + + diff --git a/liboqs/api/doxygen/sha3__ops_8h_source.html b/liboqs/api/doxygen/sha3__ops_8h_source.html new file mode 100644 index 0000000..7622d1e --- /dev/null +++ b/liboqs/api/doxygen/sha3__ops_8h_source.html @@ -0,0 +1,274 @@ + + + + + + + +liboqs: src/common/sha3/sha3_ops.h Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    +
    sha3_ops.h
    +
    +
    +Go to the documentation of this file.
    1
    +
    9
    +
    10#ifndef OQS_SHA3_OPS_H
    +
    11#define OQS_SHA3_OPS_H
    +
    12
    +
    13#include <stddef.h>
    +
    14#include <stdint.h>
    +
    15
    +
    16#include <oqs/common.h>
    +
    17
    +
    18#if defined(__cplusplus)
    +
    19extern "C" {
    +
    20#endif
    +
    21
    +
    +
    23typedef struct {
    +
    25 void *ctx;
    + +
    +
    27
    +
    +
    29typedef struct {
    +
    31 void *ctx;
    + +
    +
    33
    +
    +
    35typedef struct {
    +
    37 void *ctx;
    + +
    +
    39
    +
    +
    41typedef struct {
    +
    43 void *ctx;
    + +
    +
    45
    +
    +
    47typedef struct {
    +
    49 void *ctx;
    + +
    +
    51
    +
    + +
    58 void (*SHA3_sha3_256)(uint8_t *output, const uint8_t *input, size_t inplen);
    +
    59
    + +
    64
    +
    68 void (*SHA3_sha3_256_inc_absorb)(OQS_SHA3_sha3_256_inc_ctx *state, const uint8_t *input, size_t inlen);
    +
    69
    +
    73 void (*SHA3_sha3_256_inc_finalize)(uint8_t *output, OQS_SHA3_sha3_256_inc_ctx *state);
    +
    74
    + +
    79
    + +
    84
    + +
    89
    +
    93 void (*SHA3_sha3_384)(uint8_t *output, const uint8_t *input, size_t inplen);
    +
    94
    + +
    99
    +
    103 void (*SHA3_sha3_384_inc_absorb)(OQS_SHA3_sha3_384_inc_ctx *state, const uint8_t *input, size_t inlen);
    +
    104
    + +
    109
    + +
    114
    + +
    119
    + +
    124
    +
    128 void (*SHA3_sha3_512)(uint8_t *output, const uint8_t *input, size_t inplen);
    +
    129
    + +
    134
    +
    138 void (*SHA3_sha3_512_inc_absorb)(OQS_SHA3_sha3_512_inc_ctx *state, const uint8_t *input, size_t inlen);
    +
    139
    + +
    144
    + +
    149
    + +
    154
    + +
    159
    +
    163 void (*SHA3_shake128)(uint8_t *output, size_t outlen, const uint8_t *input, size_t inplen);
    +
    164
    + +
    169
    +
    173 void (*SHA3_shake128_inc_absorb)(OQS_SHA3_shake128_inc_ctx *state, const uint8_t *input, size_t inlen);
    +
    174
    + +
    179
    +
    183 void (*SHA3_shake128_inc_squeeze)(uint8_t *output, size_t outlen, OQS_SHA3_shake128_inc_ctx *state);
    +
    184
    + +
    189
    + +
    194
    + +
    199
    +
    203 void (*SHA3_shake256)(uint8_t *output, size_t outlen, const uint8_t *input, size_t inplen);
    +
    204
    + +
    209
    +
    213 void (*SHA3_shake256_inc_absorb)(OQS_SHA3_shake256_inc_ctx *state, const uint8_t *input, size_t inlen);
    +
    214
    + +
    219
    +
    223 void (*SHA3_shake256_inc_squeeze)(uint8_t *output, size_t outlen, OQS_SHA3_shake256_inc_ctx *state);
    +
    224
    + +
    229
    + +
    234
    + +
    239};
    +
    +
    240
    + +
    251
    +
    252#if defined(__cplusplus)
    +
    253} // extern "C"
    +
    254#endif
    +
    255
    +
    256#endif // OQS_SHA3_OPS_H
    +
    #define OQS_API
    Definition common.h:94
    +
    OQS_API void OQS_SHA3_set_callbacks(struct OQS_SHA3_callbacks *new_callbacks)
    +
    Definition sha3_ops.h:54
    +
    void(* SHA3_sha3_384)(uint8_t *output, const uint8_t *input, size_t inplen)
    Definition sha3_ops.h:93
    +
    void(* SHA3_sha3_512_inc_ctx_clone)(OQS_SHA3_sha3_512_inc_ctx *dest, const OQS_SHA3_sha3_512_inc_ctx *src)
    Definition sha3_ops.h:158
    +
    void(* SHA3_shake256_inc_init)(OQS_SHA3_shake256_inc_ctx *state)
    Definition sha3_ops.h:208
    +
    void(* SHA3_sha3_256_inc_ctx_clone)(OQS_SHA3_sha3_256_inc_ctx *dest, const OQS_SHA3_sha3_256_inc_ctx *src)
    Definition sha3_ops.h:88
    +
    void(* SHA3_shake128_inc_init)(OQS_SHA3_shake128_inc_ctx *state)
    Definition sha3_ops.h:168
    +
    void(* SHA3_sha3_256_inc_ctx_reset)(OQS_SHA3_sha3_256_inc_ctx *state)
    Definition sha3_ops.h:83
    +
    void(* SHA3_sha3_384_inc_ctx_clone)(OQS_SHA3_sha3_384_inc_ctx *dest, const OQS_SHA3_sha3_384_inc_ctx *src)
    Definition sha3_ops.h:123
    +
    void(* SHA3_shake256_inc_ctx_clone)(OQS_SHA3_shake256_inc_ctx *dest, const OQS_SHA3_shake256_inc_ctx *src)
    Definition sha3_ops.h:233
    +
    void(* SHA3_sha3_512_inc_init)(OQS_SHA3_sha3_512_inc_ctx *state)
    Definition sha3_ops.h:133
    +
    void(* SHA3_sha3_512)(uint8_t *output, const uint8_t *input, size_t inplen)
    Definition sha3_ops.h:128
    +
    void(* SHA3_sha3_512_inc_absorb)(OQS_SHA3_sha3_512_inc_ctx *state, const uint8_t *input, size_t inlen)
    Definition sha3_ops.h:138
    +
    void(* SHA3_shake128_inc_finalize)(OQS_SHA3_shake128_inc_ctx *state)
    Definition sha3_ops.h:178
    +
    void(* SHA3_sha3_384_inc_ctx_release)(OQS_SHA3_sha3_384_inc_ctx *state)
    Definition sha3_ops.h:113
    +
    void(* SHA3_shake256_inc_absorb)(OQS_SHA3_shake256_inc_ctx *state, const uint8_t *input, size_t inlen)
    Definition sha3_ops.h:213
    +
    void(* SHA3_shake128_inc_absorb)(OQS_SHA3_shake128_inc_ctx *state, const uint8_t *input, size_t inlen)
    Definition sha3_ops.h:173
    +
    void(* SHA3_shake256)(uint8_t *output, size_t outlen, const uint8_t *input, size_t inplen)
    Definition sha3_ops.h:203
    +
    void(* SHA3_shake128)(uint8_t *output, size_t outlen, const uint8_t *input, size_t inplen)
    Definition sha3_ops.h:163
    +
    void(* SHA3_shake256_inc_squeeze)(uint8_t *output, size_t outlen, OQS_SHA3_shake256_inc_ctx *state)
    Definition sha3_ops.h:223
    +
    void(* SHA3_shake256_inc_ctx_reset)(OQS_SHA3_shake256_inc_ctx *state)
    Definition sha3_ops.h:238
    +
    void(* SHA3_shake256_inc_finalize)(OQS_SHA3_shake256_inc_ctx *state)
    Definition sha3_ops.h:218
    +
    void(* SHA3_sha3_256_inc_init)(OQS_SHA3_sha3_256_inc_ctx *state)
    Definition sha3_ops.h:63
    +
    void(* SHA3_shake128_inc_squeeze)(uint8_t *output, size_t outlen, OQS_SHA3_shake128_inc_ctx *state)
    Definition sha3_ops.h:183
    +
    void(* SHA3_shake128_inc_ctx_clone)(OQS_SHA3_shake128_inc_ctx *dest, const OQS_SHA3_shake128_inc_ctx *src)
    Definition sha3_ops.h:193
    +
    void(* SHA3_sha3_384_inc_ctx_reset)(OQS_SHA3_sha3_384_inc_ctx *state)
    Definition sha3_ops.h:118
    +
    void(* SHA3_sha3_512_inc_ctx_reset)(OQS_SHA3_sha3_512_inc_ctx *state)
    Definition sha3_ops.h:153
    +
    void(* SHA3_sha3_384_inc_init)(OQS_SHA3_sha3_384_inc_ctx *state)
    Definition sha3_ops.h:98
    +
    void(* SHA3_shake256_inc_ctx_release)(OQS_SHA3_shake256_inc_ctx *state)
    Definition sha3_ops.h:228
    +
    void(* SHA3_sha3_256_inc_ctx_release)(OQS_SHA3_sha3_256_inc_ctx *state)
    Definition sha3_ops.h:78
    +
    void(* SHA3_sha3_384_inc_absorb)(OQS_SHA3_sha3_384_inc_ctx *state, const uint8_t *input, size_t inlen)
    Definition sha3_ops.h:103
    +
    void(* SHA3_sha3_512_inc_finalize)(uint8_t *output, OQS_SHA3_sha3_512_inc_ctx *state)
    Definition sha3_ops.h:143
    +
    void(* SHA3_shake128_inc_ctx_release)(OQS_SHA3_shake128_inc_ctx *state)
    Definition sha3_ops.h:188
    +
    void(* SHA3_sha3_384_inc_finalize)(uint8_t *output, OQS_SHA3_sha3_384_inc_ctx *state)
    Definition sha3_ops.h:108
    +
    void(* SHA3_sha3_256_inc_absorb)(OQS_SHA3_sha3_256_inc_ctx *state, const uint8_t *input, size_t inlen)
    Definition sha3_ops.h:68
    +
    void(* SHA3_sha3_256_inc_finalize)(uint8_t *output, OQS_SHA3_sha3_256_inc_ctx *state)
    Definition sha3_ops.h:73
    +
    void(* SHA3_shake128_inc_ctx_reset)(OQS_SHA3_shake128_inc_ctx *state)
    Definition sha3_ops.h:198
    +
    void(* SHA3_sha3_512_inc_ctx_release)(OQS_SHA3_sha3_512_inc_ctx *state)
    Definition sha3_ops.h:148
    +
    void(* SHA3_sha3_256)(uint8_t *output, const uint8_t *input, size_t inplen)
    Definition sha3_ops.h:58
    +
    Definition sha3_ops.h:23
    +
    void * ctx
    Definition sha3_ops.h:25
    +
    Definition sha3_ops.h:29
    +
    void * ctx
    Definition sha3_ops.h:31
    +
    Definition sha3_ops.h:35
    +
    void * ctx
    Definition sha3_ops.h:37
    +
    Definition sha3_ops.h:41
    +
    void * ctx
    Definition sha3_ops.h:43
    +
    Definition sha3_ops.h:47
    +
    void * ctx
    Definition sha3_ops.h:49
    +
    + + +
    + + diff --git a/liboqs/api/doxygen/sha3x4__ops_8h.html b/liboqs/api/doxygen/sha3x4__ops_8h.html new file mode 100644 index 0000000..0e8afef --- /dev/null +++ b/liboqs/api/doxygen/sha3x4__ops_8h.html @@ -0,0 +1,147 @@ + + + + + + + +liboqs: src/common/sha3/sha3x4_ops.h File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    + +
    sha3x4_ops.h File Reference
    +
    +
    + +

    Header defining the callback API for OQS SHA3 and SHAKE. +More...

    +
    #include <stddef.h>
    +#include <stdint.h>
    +#include <oqs/common.h>
    +
    +

    Go to the source code of this file.

    + + + + + +

    +Data Structures

    struct  OQS_SHA3_shake128_x4_inc_ctx
    struct  OQS_SHA3_shake256_x4_inc_ctx
    struct  OQS_SHA3_x4_callbacks
    + + +

    +Functions

    OQS_API void OQS_SHA3_x4_set_callbacks (struct OQS_SHA3_x4_callbacks *new_callbacks)
    +

    Detailed Description

    +

    Header defining the callback API for OQS SHA3 and SHAKE.

    +
    Author
    John Underhill, Douglas Stebila
    +

    SPDX-License-Identifier: MIT

    +

    Function Documentation

    + +

    ◆ OQS_SHA3_x4_set_callbacks()

    + +
    +
    + + + + + + + +
    OQS_API void OQS_SHA3_x4_set_callbacks (struct OQS_SHA3_x4_callbacks * new_callbacks)
    +
    +

    Set callback functions for 4-parallel SHA3 operations.

    +

    This function may be called before OQS_init to switch the cryptographic provider for 4-parallel SHA3 operations. If it is not called, the default provider determined at build time will be used.

    +
    Parameters
    + + +
    new_callbacksCallback functions defined in OQS_SHA3_x4_callbacks struct
    +
    +
    + +
    +
    +
    + + +
    + + diff --git a/liboqs/api/doxygen/sha3x4__ops_8h_source.html b/liboqs/api/doxygen/sha3x4__ops_8h_source.html new file mode 100644 index 0000000..702ba38 --- /dev/null +++ b/liboqs/api/doxygen/sha3x4__ops_8h_source.html @@ -0,0 +1,235 @@ + + + + + + + +liboqs: src/common/sha3/sha3x4_ops.h Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    +
    sha3x4_ops.h
    +
    +
    +Go to the documentation of this file.
    1
    +
    9
    +
    10#ifndef OQS_SHA3X4_OPS_H
    +
    11#define OQS_SHA3X4_OPS_H
    +
    12
    +
    13#include <stddef.h>
    +
    14#include <stdint.h>
    +
    15
    +
    16#include <oqs/common.h>
    +
    17
    +
    18#if defined(__cplusplus)
    +
    19extern "C" {
    +
    20#endif
    +
    21
    +
    +
    23typedef struct {
    +
    25 void *ctx;
    + +
    +
    27
    +
    +
    29typedef struct {
    +
    31 void *ctx;
    + +
    +
    33
    +
    + + +
    42 uint8_t *out0,
    +
    43 uint8_t *out1,
    +
    44 uint8_t *out2,
    +
    45 uint8_t *out3,
    +
    46 size_t outlen,
    +
    47 const uint8_t *in0,
    +
    48 const uint8_t *in1,
    +
    49 const uint8_t *in2,
    +
    50 const uint8_t *in3,
    +
    51 size_t inlen);
    +
    52
    + +
    57
    + + +
    63 const uint8_t *in0,
    +
    64 const uint8_t *in1,
    +
    65 const uint8_t *in2,
    +
    66 const uint8_t *in3,
    +
    67 size_t inlen);
    +
    68
    + +
    73
    + +
    78 uint8_t *out0,
    +
    79 uint8_t *out1,
    +
    80 uint8_t *out2,
    +
    81 uint8_t *out3,
    +
    82 size_t outlen,
    + +
    84
    + +
    89
    + + + +
    96
    + +
    101
    + +
    106 uint8_t *out0,
    +
    107 uint8_t *out1,
    +
    108 uint8_t *out2,
    +
    109 uint8_t *out3,
    +
    110 size_t outlen,
    +
    111 const uint8_t *in0,
    +
    112 const uint8_t *in1,
    +
    113 const uint8_t *in2,
    +
    114 const uint8_t *in3,
    +
    115 size_t inlen);
    +
    116
    + +
    121
    + + +
    127 const uint8_t *in0,
    +
    128 const uint8_t *in1,
    +
    129 const uint8_t *in2,
    +
    130 const uint8_t *in3,
    +
    131 size_t inlen);
    +
    132
    + +
    137
    + +
    142 uint8_t *out0,
    +
    143 uint8_t *out1,
    +
    144 uint8_t *out2,
    +
    145 uint8_t *out3,
    +
    146 size_t outlen,
    + +
    148
    + +
    153
    + + + +
    160
    + +
    165};
    +
    +
    166
    + +
    177
    +
    178#if defined(__cplusplus)
    +
    179} // extern "C"
    +
    180#endif
    +
    181
    +
    182#endif // OQS_SHA3X4_OPS_H
    +
    #define OQS_API
    Definition common.h:94
    +
    OQS_API void OQS_SHA3_x4_set_callbacks(struct OQS_SHA3_x4_callbacks *new_callbacks)
    +
    Definition sha3x4_ops.h:23
    +
    void * ctx
    Definition sha3x4_ops.h:25
    +
    Definition sha3x4_ops.h:29
    +
    void * ctx
    Definition sha3x4_ops.h:31
    +
    Definition sha3x4_ops.h:37
    +
    void(* SHA3_shake256_x4_inc_absorb)(OQS_SHA3_shake256_x4_inc_ctx *state, const uint8_t *in0, const uint8_t *in1, const uint8_t *in2, const uint8_t *in3, size_t inlen)
    Definition sha3x4_ops.h:125
    +
    void(* SHA3_shake128_x4_inc_squeeze)(uint8_t *out0, uint8_t *out1, uint8_t *out2, uint8_t *out3, size_t outlen, OQS_SHA3_shake128_x4_inc_ctx *state)
    Definition sha3x4_ops.h:77
    +
    void(* SHA3_shake256_x4_inc_finalize)(OQS_SHA3_shake256_x4_inc_ctx *state)
    Definition sha3x4_ops.h:136
    +
    void(* SHA3_shake256_x4_inc_squeeze)(uint8_t *out0, uint8_t *out1, uint8_t *out2, uint8_t *out3, size_t outlen, OQS_SHA3_shake256_x4_inc_ctx *state)
    Definition sha3x4_ops.h:141
    +
    void(* SHA3_shake128_x4_inc_ctx_reset)(OQS_SHA3_shake128_x4_inc_ctx *state)
    Definition sha3x4_ops.h:100
    +
    void(* SHA3_shake256_x4_inc_init)(OQS_SHA3_shake256_x4_inc_ctx *state)
    Definition sha3x4_ops.h:120
    +
    void(* SHA3_shake256_x4_inc_ctx_release)(OQS_SHA3_shake256_x4_inc_ctx *state)
    Definition sha3x4_ops.h:152
    +
    void(* SHA3_shake256_x4)(uint8_t *out0, uint8_t *out1, uint8_t *out2, uint8_t *out3, size_t outlen, const uint8_t *in0, const uint8_t *in1, const uint8_t *in2, const uint8_t *in3, size_t inlen)
    Definition sha3x4_ops.h:105
    +
    void(* SHA3_shake128_x4)(uint8_t *out0, uint8_t *out1, uint8_t *out2, uint8_t *out3, size_t outlen, const uint8_t *in0, const uint8_t *in1, const uint8_t *in2, const uint8_t *in3, size_t inlen)
    Definition sha3x4_ops.h:41
    +
    void(* SHA3_shake128_x4_inc_absorb)(OQS_SHA3_shake128_x4_inc_ctx *state, const uint8_t *in0, const uint8_t *in1, const uint8_t *in2, const uint8_t *in3, size_t inlen)
    Definition sha3x4_ops.h:61
    +
    void(* SHA3_shake128_x4_inc_ctx_release)(OQS_SHA3_shake128_x4_inc_ctx *state)
    Definition sha3x4_ops.h:88
    +
    void(* SHA3_shake128_x4_inc_init)(OQS_SHA3_shake128_x4_inc_ctx *state)
    Definition sha3x4_ops.h:56
    +
    void(* SHA3_shake128_x4_inc_finalize)(OQS_SHA3_shake128_x4_inc_ctx *state)
    Definition sha3x4_ops.h:72
    +
    void(* SHA3_shake256_x4_inc_ctx_reset)(OQS_SHA3_shake256_x4_inc_ctx *state)
    Definition sha3x4_ops.h:164
    +
    void(* SHA3_shake128_x4_inc_ctx_clone)(OQS_SHA3_shake128_x4_inc_ctx *dest, const OQS_SHA3_shake128_x4_inc_ctx *src)
    Definition sha3x4_ops.h:93
    +
    void(* SHA3_shake256_x4_inc_ctx_clone)(OQS_SHA3_shake256_x4_inc_ctx *dest, const OQS_SHA3_shake256_x4_inc_ctx *src)
    Definition sha3x4_ops.h:157
    +
    + + +
    + + diff --git a/liboqs/api/doxygen/sig_8h.html b/liboqs/api/doxygen/sig_8h.html new file mode 100644 index 0000000..58348d7 --- /dev/null +++ b/liboqs/api/doxygen/sig_8h.html @@ -0,0 +1,4152 @@ + + + + + + + +liboqs: src/sig/sig.h File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    + +
    sig.h File Reference
    +
    +
    + +

    Signature schemes. +More...

    +
    #include <stdbool.h>
    +#include <stddef.h>
    +#include <stdint.h>
    +#include <oqs/oqs.h>
    +
    +

    Go to the source code of this file.

    + + + +

    +Data Structures

    struct  OQS_SIG
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Macros

    #define OQS_SIG_alg_ml_dsa_44   "ML-DSA-44"
    #define OQS_SIG_alg_ml_dsa_65   "ML-DSA-65"
    #define OQS_SIG_alg_ml_dsa_87   "ML-DSA-87"
    #define OQS_SIG_alg_falcon_512   "Falcon-512"
    #define OQS_SIG_alg_falcon_1024   "Falcon-1024"
    #define OQS_SIG_alg_falcon_padded_512   "Falcon-padded-512"
    #define OQS_SIG_alg_falcon_padded_1024   "Falcon-padded-1024"
    #define OQS_SIG_alg_sphincs_sha2_128f_simple   "SPHINCS+-SHA2-128f-simple"
    #define OQS_SIG_alg_sphincs_sha2_128s_simple   "SPHINCS+-SHA2-128s-simple"
    #define OQS_SIG_alg_sphincs_sha2_192f_simple   "SPHINCS+-SHA2-192f-simple"
    #define OQS_SIG_alg_sphincs_sha2_192s_simple   "SPHINCS+-SHA2-192s-simple"
    #define OQS_SIG_alg_sphincs_sha2_256f_simple   "SPHINCS+-SHA2-256f-simple"
    #define OQS_SIG_alg_sphincs_sha2_256s_simple   "SPHINCS+-SHA2-256s-simple"
    #define OQS_SIG_alg_sphincs_shake_128f_simple   "SPHINCS+-SHAKE-128f-simple"
    #define OQS_SIG_alg_sphincs_shake_128s_simple   "SPHINCS+-SHAKE-128s-simple"
    #define OQS_SIG_alg_sphincs_shake_192f_simple   "SPHINCS+-SHAKE-192f-simple"
    #define OQS_SIG_alg_sphincs_shake_192s_simple   "SPHINCS+-SHAKE-192s-simple"
    #define OQS_SIG_alg_sphincs_shake_256f_simple   "SPHINCS+-SHAKE-256f-simple"
    #define OQS_SIG_alg_sphincs_shake_256s_simple   "SPHINCS+-SHAKE-256s-simple"
    #define OQS_SIG_alg_mayo_1   "MAYO-1"
    #define OQS_SIG_alg_mayo_2   "MAYO-2"
    #define OQS_SIG_alg_mayo_3   "MAYO-3"
    #define OQS_SIG_alg_mayo_5   "MAYO-5"
    #define OQS_SIG_alg_cross_rsdp_128_balanced   "cross-rsdp-128-balanced"
    #define OQS_SIG_alg_cross_rsdp_128_fast   "cross-rsdp-128-fast"
    #define OQS_SIG_alg_cross_rsdp_128_small   "cross-rsdp-128-small"
    #define OQS_SIG_alg_cross_rsdp_192_balanced   "cross-rsdp-192-balanced"
    #define OQS_SIG_alg_cross_rsdp_192_fast   "cross-rsdp-192-fast"
    #define OQS_SIG_alg_cross_rsdp_192_small   "cross-rsdp-192-small"
    #define OQS_SIG_alg_cross_rsdp_256_balanced   "cross-rsdp-256-balanced"
    #define OQS_SIG_alg_cross_rsdp_256_fast   "cross-rsdp-256-fast"
    #define OQS_SIG_alg_cross_rsdp_256_small   "cross-rsdp-256-small"
    #define OQS_SIG_alg_cross_rsdpg_128_balanced   "cross-rsdpg-128-balanced"
    #define OQS_SIG_alg_cross_rsdpg_128_fast   "cross-rsdpg-128-fast"
    #define OQS_SIG_alg_cross_rsdpg_128_small   "cross-rsdpg-128-small"
    #define OQS_SIG_alg_cross_rsdpg_192_balanced   "cross-rsdpg-192-balanced"
    #define OQS_SIG_alg_cross_rsdpg_192_fast   "cross-rsdpg-192-fast"
    #define OQS_SIG_alg_cross_rsdpg_192_small   "cross-rsdpg-192-small"
    #define OQS_SIG_alg_cross_rsdpg_256_balanced   "cross-rsdpg-256-balanced"
    #define OQS_SIG_alg_cross_rsdpg_256_fast   "cross-rsdpg-256-fast"
    #define OQS_SIG_alg_cross_rsdpg_256_small   "cross-rsdpg-256-small"
    #define OQS_SIG_alg_uov_ov_Is   "OV-Is"
    #define OQS_SIG_alg_uov_ov_Ip   "OV-Ip"
    #define OQS_SIG_alg_uov_ov_III   "OV-III"
    #define OQS_SIG_alg_uov_ov_V   "OV-V"
    #define OQS_SIG_alg_uov_ov_Is_pkc   "OV-Is-pkc"
    #define OQS_SIG_alg_uov_ov_Ip_pkc   "OV-Ip-pkc"
    #define OQS_SIG_alg_uov_ov_III_pkc   "OV-III-pkc"
    #define OQS_SIG_alg_uov_ov_V_pkc   "OV-V-pkc"
    #define OQS_SIG_alg_uov_ov_Is_pkc_skc   "OV-Is-pkc-skc"
    #define OQS_SIG_alg_uov_ov_Ip_pkc_skc   "OV-Ip-pkc-skc"
    #define OQS_SIG_alg_uov_ov_III_pkc_skc   "OV-III-pkc-skc"
    #define OQS_SIG_alg_uov_ov_V_pkc_skc   "OV-V-pkc-skc"
    #define OQS_SIG_alg_snova_SNOVA_24_5_4   "SNOVA_24_5_4"
    #define OQS_SIG_alg_snova_SNOVA_24_5_4_SHAKE   "SNOVA_24_5_4_SHAKE"
    #define OQS_SIG_alg_snova_SNOVA_24_5_4_esk   "SNOVA_24_5_4_esk"
    #define OQS_SIG_alg_snova_SNOVA_24_5_4_SHAKE_esk   "SNOVA_24_5_4_SHAKE_esk"
    #define OQS_SIG_alg_snova_SNOVA_37_17_2   "SNOVA_37_17_2"
    #define OQS_SIG_alg_snova_SNOVA_25_8_3   "SNOVA_25_8_3"
    #define OQS_SIG_alg_snova_SNOVA_56_25_2   "SNOVA_56_25_2"
    #define OQS_SIG_alg_snova_SNOVA_49_11_3   "SNOVA_49_11_3"
    #define OQS_SIG_alg_snova_SNOVA_37_8_4   "SNOVA_37_8_4"
    #define OQS_SIG_alg_snova_SNOVA_24_5_5   "SNOVA_24_5_5"
    #define OQS_SIG_alg_snova_SNOVA_60_10_4   "SNOVA_60_10_4"
    #define OQS_SIG_alg_snova_SNOVA_29_6_5   "SNOVA_29_6_5"
    #define OQS_SIG_alg_slh_dsa_pure_sha2_128s   "SLH_DSA_PURE_SHA2_128S"
    #define OQS_SIG_alg_slh_dsa_pure_sha2_128f   "SLH_DSA_PURE_SHA2_128F"
    #define OQS_SIG_alg_slh_dsa_pure_sha2_192s   "SLH_DSA_PURE_SHA2_192S"
    #define OQS_SIG_alg_slh_dsa_pure_sha2_192f   "SLH_DSA_PURE_SHA2_192F"
    #define OQS_SIG_alg_slh_dsa_pure_sha2_256s   "SLH_DSA_PURE_SHA2_256S"
    #define OQS_SIG_alg_slh_dsa_pure_sha2_256f   "SLH_DSA_PURE_SHA2_256F"
    #define OQS_SIG_alg_slh_dsa_pure_shake_128s   "SLH_DSA_PURE_SHAKE_128S"
    #define OQS_SIG_alg_slh_dsa_pure_shake_128f   "SLH_DSA_PURE_SHAKE_128F"
    #define OQS_SIG_alg_slh_dsa_pure_shake_192s   "SLH_DSA_PURE_SHAKE_192S"
    #define OQS_SIG_alg_slh_dsa_pure_shake_192f   "SLH_DSA_PURE_SHAKE_192F"
    #define OQS_SIG_alg_slh_dsa_pure_shake_256s   "SLH_DSA_PURE_SHAKE_256S"
    #define OQS_SIG_alg_slh_dsa_pure_shake_256f   "SLH_DSA_PURE_SHAKE_256F"
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_128s   "SLH_DSA_SHA2_224_PREHASH_SHA2_128S"
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_128f   "SLH_DSA_SHA2_224_PREHASH_SHA2_128F"
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_192s   "SLH_DSA_SHA2_224_PREHASH_SHA2_192S"
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_192f   "SLH_DSA_SHA2_224_PREHASH_SHA2_192F"
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_256s   "SLH_DSA_SHA2_224_PREHASH_SHA2_256S"
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_256f   "SLH_DSA_SHA2_224_PREHASH_SHA2_256F"
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_128s   "SLH_DSA_SHA2_224_PREHASH_SHAKE_128S"
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_128f   "SLH_DSA_SHA2_224_PREHASH_SHAKE_128F"
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_192s   "SLH_DSA_SHA2_224_PREHASH_SHAKE_192S"
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_192f   "SLH_DSA_SHA2_224_PREHASH_SHAKE_192F"
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_256s   "SLH_DSA_SHA2_224_PREHASH_SHAKE_256S"
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_256f   "SLH_DSA_SHA2_224_PREHASH_SHAKE_256F"
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_128s   "SLH_DSA_SHA2_256_PREHASH_SHA2_128S"
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_128f   "SLH_DSA_SHA2_256_PREHASH_SHA2_128F"
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_192s   "SLH_DSA_SHA2_256_PREHASH_SHA2_192S"
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_192f   "SLH_DSA_SHA2_256_PREHASH_SHA2_192F"
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_256s   "SLH_DSA_SHA2_256_PREHASH_SHA2_256S"
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_256f   "SLH_DSA_SHA2_256_PREHASH_SHA2_256F"
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_128s   "SLH_DSA_SHA2_256_PREHASH_SHAKE_128S"
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_128f   "SLH_DSA_SHA2_256_PREHASH_SHAKE_128F"
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_192s   "SLH_DSA_SHA2_256_PREHASH_SHAKE_192S"
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_192f   "SLH_DSA_SHA2_256_PREHASH_SHAKE_192F"
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_256s   "SLH_DSA_SHA2_256_PREHASH_SHAKE_256S"
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_256f   "SLH_DSA_SHA2_256_PREHASH_SHAKE_256F"
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_128s   "SLH_DSA_SHA2_384_PREHASH_SHA2_128S"
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_128f   "SLH_DSA_SHA2_384_PREHASH_SHA2_128F"
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_192s   "SLH_DSA_SHA2_384_PREHASH_SHA2_192S"
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_192f   "SLH_DSA_SHA2_384_PREHASH_SHA2_192F"
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_256s   "SLH_DSA_SHA2_384_PREHASH_SHA2_256S"
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_256f   "SLH_DSA_SHA2_384_PREHASH_SHA2_256F"
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_128s   "SLH_DSA_SHA2_384_PREHASH_SHAKE_128S"
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_128f   "SLH_DSA_SHA2_384_PREHASH_SHAKE_128F"
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_192s   "SLH_DSA_SHA2_384_PREHASH_SHAKE_192S"
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_192f   "SLH_DSA_SHA2_384_PREHASH_SHAKE_192F"
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_256s   "SLH_DSA_SHA2_384_PREHASH_SHAKE_256S"
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_256f   "SLH_DSA_SHA2_384_PREHASH_SHAKE_256F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_128s   "SLH_DSA_SHA2_512_PREHASH_SHA2_128S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_128f   "SLH_DSA_SHA2_512_PREHASH_SHA2_128F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_192s   "SLH_DSA_SHA2_512_PREHASH_SHA2_192S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_192f   "SLH_DSA_SHA2_512_PREHASH_SHA2_192F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_256s   "SLH_DSA_SHA2_512_PREHASH_SHA2_256S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_256f   "SLH_DSA_SHA2_512_PREHASH_SHA2_256F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_128s   "SLH_DSA_SHA2_512_PREHASH_SHAKE_128S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_128f   "SLH_DSA_SHA2_512_PREHASH_SHAKE_128F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_192s   "SLH_DSA_SHA2_512_PREHASH_SHAKE_192S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_192f   "SLH_DSA_SHA2_512_PREHASH_SHAKE_192F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_256s   "SLH_DSA_SHA2_512_PREHASH_SHAKE_256S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_256f   "SLH_DSA_SHA2_512_PREHASH_SHAKE_256F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_128s   "SLH_DSA_SHA2_512_224_PREHASH_SHA2_128S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_128f   "SLH_DSA_SHA2_512_224_PREHASH_SHA2_128F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_192s   "SLH_DSA_SHA2_512_224_PREHASH_SHA2_192S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_192f   "SLH_DSA_SHA2_512_224_PREHASH_SHA2_192F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_256s   "SLH_DSA_SHA2_512_224_PREHASH_SHA2_256S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_256f   "SLH_DSA_SHA2_512_224_PREHASH_SHA2_256F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_128s   "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_128S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_128f   "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_128F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_192s   "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_192S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_192f   "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_192F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_256s   "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_256S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_256f   "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_256F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_128s   "SLH_DSA_SHA2_512_256_PREHASH_SHA2_128S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_128f   "SLH_DSA_SHA2_512_256_PREHASH_SHA2_128F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_192s   "SLH_DSA_SHA2_512_256_PREHASH_SHA2_192S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_192f   "SLH_DSA_SHA2_512_256_PREHASH_SHA2_192F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_256s   "SLH_DSA_SHA2_512_256_PREHASH_SHA2_256S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_256f   "SLH_DSA_SHA2_512_256_PREHASH_SHA2_256F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_128s   "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_128S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_128f   "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_128F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_192s   "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_192S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_192f   "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_192F"
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_256s   "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_256S"
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_256f   "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_256F"
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_128s   "SLH_DSA_SHA3_224_PREHASH_SHA2_128S"
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_128f   "SLH_DSA_SHA3_224_PREHASH_SHA2_128F"
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_192s   "SLH_DSA_SHA3_224_PREHASH_SHA2_192S"
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_192f   "SLH_DSA_SHA3_224_PREHASH_SHA2_192F"
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_256s   "SLH_DSA_SHA3_224_PREHASH_SHA2_256S"
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_256f   "SLH_DSA_SHA3_224_PREHASH_SHA2_256F"
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_128s   "SLH_DSA_SHA3_224_PREHASH_SHAKE_128S"
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_128f   "SLH_DSA_SHA3_224_PREHASH_SHAKE_128F"
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_192s   "SLH_DSA_SHA3_224_PREHASH_SHAKE_192S"
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_192f   "SLH_DSA_SHA3_224_PREHASH_SHAKE_192F"
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_256s   "SLH_DSA_SHA3_224_PREHASH_SHAKE_256S"
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_256f   "SLH_DSA_SHA3_224_PREHASH_SHAKE_256F"
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_128s   "SLH_DSA_SHA3_256_PREHASH_SHA2_128S"
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_128f   "SLH_DSA_SHA3_256_PREHASH_SHA2_128F"
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_192s   "SLH_DSA_SHA3_256_PREHASH_SHA2_192S"
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_192f   "SLH_DSA_SHA3_256_PREHASH_SHA2_192F"
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_256s   "SLH_DSA_SHA3_256_PREHASH_SHA2_256S"
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_256f   "SLH_DSA_SHA3_256_PREHASH_SHA2_256F"
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_128s   "SLH_DSA_SHA3_256_PREHASH_SHAKE_128S"
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_128f   "SLH_DSA_SHA3_256_PREHASH_SHAKE_128F"
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_192s   "SLH_DSA_SHA3_256_PREHASH_SHAKE_192S"
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_192f   "SLH_DSA_SHA3_256_PREHASH_SHAKE_192F"
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_256s   "SLH_DSA_SHA3_256_PREHASH_SHAKE_256S"
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_256f   "SLH_DSA_SHA3_256_PREHASH_SHAKE_256F"
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_128s   "SLH_DSA_SHA3_384_PREHASH_SHA2_128S"
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_128f   "SLH_DSA_SHA3_384_PREHASH_SHA2_128F"
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_192s   "SLH_DSA_SHA3_384_PREHASH_SHA2_192S"
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_192f   "SLH_DSA_SHA3_384_PREHASH_SHA2_192F"
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_256s   "SLH_DSA_SHA3_384_PREHASH_SHA2_256S"
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_256f   "SLH_DSA_SHA3_384_PREHASH_SHA2_256F"
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_128s   "SLH_DSA_SHA3_384_PREHASH_SHAKE_128S"
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_128f   "SLH_DSA_SHA3_384_PREHASH_SHAKE_128F"
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_192s   "SLH_DSA_SHA3_384_PREHASH_SHAKE_192S"
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_192f   "SLH_DSA_SHA3_384_PREHASH_SHAKE_192F"
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_256s   "SLH_DSA_SHA3_384_PREHASH_SHAKE_256S"
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_256f   "SLH_DSA_SHA3_384_PREHASH_SHAKE_256F"
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_128s   "SLH_DSA_SHA3_512_PREHASH_SHA2_128S"
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_128f   "SLH_DSA_SHA3_512_PREHASH_SHA2_128F"
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_192s   "SLH_DSA_SHA3_512_PREHASH_SHA2_192S"
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_192f   "SLH_DSA_SHA3_512_PREHASH_SHA2_192F"
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_256s   "SLH_DSA_SHA3_512_PREHASH_SHA2_256S"
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_256f   "SLH_DSA_SHA3_512_PREHASH_SHA2_256F"
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_128s   "SLH_DSA_SHA3_512_PREHASH_SHAKE_128S"
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_128f   "SLH_DSA_SHA3_512_PREHASH_SHAKE_128F"
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_192s   "SLH_DSA_SHA3_512_PREHASH_SHAKE_192S"
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_192f   "SLH_DSA_SHA3_512_PREHASH_SHAKE_192F"
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_256s   "SLH_DSA_SHA3_512_PREHASH_SHAKE_256S"
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_256f   "SLH_DSA_SHA3_512_PREHASH_SHAKE_256F"
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_128s   "SLH_DSA_SHAKE_128_PREHASH_SHA2_128S"
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_128f   "SLH_DSA_SHAKE_128_PREHASH_SHA2_128F"
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_192s   "SLH_DSA_SHAKE_128_PREHASH_SHA2_192S"
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_192f   "SLH_DSA_SHAKE_128_PREHASH_SHA2_192F"
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_256s   "SLH_DSA_SHAKE_128_PREHASH_SHA2_256S"
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_256f   "SLH_DSA_SHAKE_128_PREHASH_SHA2_256F"
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_128s   "SLH_DSA_SHAKE_128_PREHASH_SHAKE_128S"
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_128f   "SLH_DSA_SHAKE_128_PREHASH_SHAKE_128F"
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_192s   "SLH_DSA_SHAKE_128_PREHASH_SHAKE_192S"
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_192f   "SLH_DSA_SHAKE_128_PREHASH_SHAKE_192F"
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_256s   "SLH_DSA_SHAKE_128_PREHASH_SHAKE_256S"
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_256f   "SLH_DSA_SHAKE_128_PREHASH_SHAKE_256F"
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_128s   "SLH_DSA_SHAKE_256_PREHASH_SHA2_128S"
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_128f   "SLH_DSA_SHAKE_256_PREHASH_SHA2_128F"
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_192s   "SLH_DSA_SHAKE_256_PREHASH_SHA2_192S"
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_192f   "SLH_DSA_SHAKE_256_PREHASH_SHA2_192F"
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_256s   "SLH_DSA_SHAKE_256_PREHASH_SHA2_256S"
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_256f   "SLH_DSA_SHAKE_256_PREHASH_SHA2_256F"
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_128s   "SLH_DSA_SHAKE_256_PREHASH_SHAKE_128S"
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_128f   "SLH_DSA_SHAKE_256_PREHASH_SHAKE_128F"
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_192s   "SLH_DSA_SHAKE_256_PREHASH_SHAKE_192S"
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_192f   "SLH_DSA_SHAKE_256_PREHASH_SHAKE_192F"
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_256s   "SLH_DSA_SHAKE_256_PREHASH_SHAKE_256S"
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_256f   "SLH_DSA_SHAKE_256_PREHASH_SHAKE_256F"
    #define OQS_SIG_SLH_DSA_algs_length   156
    #define OQS_SIG_algs_length   65 + OQS_SIG_SLH_DSA_algs_length
    + + +

    +Typedefs

    typedef struct OQS_SIG OQS_SIG
    + + + + + + + + + + + + +

    +Functions

    OQS_API const char * OQS_SIG_alg_identifier (size_t i)
    OQS_API int OQS_SIG_alg_count (void)
    OQS_API int OQS_SIG_alg_is_enabled (const char *method_name)
    OQS_API OQS_SIGOQS_SIG_new (const char *method_name)
    OQS_API OQS_STATUS OQS_SIG_keypair (const OQS_SIG *sig, uint8_t *public_key, uint8_t *secret_key)
    OQS_API OQS_STATUS OQS_SIG_sign (const OQS_SIG *sig, uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key)
    OQS_API OQS_STATUS OQS_SIG_sign_with_ctx_str (const OQS_SIG *sig, uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *secret_key)
    OQS_API OQS_STATUS OQS_SIG_verify (const OQS_SIG *sig, const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key)
    OQS_API OQS_STATUS OQS_SIG_verify_with_ctx_str (const OQS_SIG *sig, const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *public_key)
    OQS_API void OQS_SIG_free (OQS_SIG *sig)
    OQS_API bool OQS_SIG_supports_ctx_str (const char *alg_name)
    +

    Detailed Description

    +

    Signature schemes.

    +

    The file tests/example_sig.c contains two examples on using the OQS_SIG API.

    +

    The first example uses the individual scheme's algorithms directly and uses no dynamic memory allocation – all buffers are allocated on the stack, with sizes indicated using preprocessor macros. Since algorithms can be disabled at compile-time, the programmer should wrap the code in #ifdefs.

    +

    The second example uses an OQS_SIG object to use an algorithm specified at runtime. Therefore it uses dynamic memory allocation – all buffers must be malloc'ed by the programmer, with sizes indicated using the corresponding length member of the OQS_SIG object in question. Since algorithms can be disabled at compile-time, the programmer should check that the OQS_SIG object is not NULL.

    +

    SPDX-License-Identifier: MIT

    +

    Macro Definition Documentation

    + +

    ◆ OQS_SIG_alg_cross_rsdp_128_balanced

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdp_128_balanced   "cross-rsdp-128-balanced"
    +
    +

    Algorithm identifier for cross-rsdp-128-balanced

    + +
    +
    + +

    ◆ OQS_SIG_alg_cross_rsdp_128_fast

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdp_128_fast   "cross-rsdp-128-fast"
    +
    +

    Algorithm identifier for cross-rsdp-128-fast

    + +
    +
    + +

    ◆ OQS_SIG_alg_cross_rsdp_128_small

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdp_128_small   "cross-rsdp-128-small"
    +
    +

    Algorithm identifier for cross-rsdp-128-small

    + +
    +
    + +

    ◆ OQS_SIG_alg_cross_rsdp_192_balanced

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdp_192_balanced   "cross-rsdp-192-balanced"
    +
    +

    Algorithm identifier for cross-rsdp-192-balanced

    + +
    +
    + +

    ◆ OQS_SIG_alg_cross_rsdp_192_fast

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdp_192_fast   "cross-rsdp-192-fast"
    +
    +

    Algorithm identifier for cross-rsdp-192-fast

    + +
    +
    + +

    ◆ OQS_SIG_alg_cross_rsdp_192_small

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdp_192_small   "cross-rsdp-192-small"
    +
    +

    Algorithm identifier for cross-rsdp-192-small

    + +
    +
    + +

    ◆ OQS_SIG_alg_cross_rsdp_256_balanced

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdp_256_balanced   "cross-rsdp-256-balanced"
    +
    +

    Algorithm identifier for cross-rsdp-256-balanced

    + +
    +
    + +

    ◆ OQS_SIG_alg_cross_rsdp_256_fast

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdp_256_fast   "cross-rsdp-256-fast"
    +
    +

    Algorithm identifier for cross-rsdp-256-fast

    + +
    +
    + +

    ◆ OQS_SIG_alg_cross_rsdp_256_small

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdp_256_small   "cross-rsdp-256-small"
    +
    +

    Algorithm identifier for cross-rsdp-256-small

    + +
    +
    + +

    ◆ OQS_SIG_alg_cross_rsdpg_128_balanced

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdpg_128_balanced   "cross-rsdpg-128-balanced"
    +
    +

    Algorithm identifier for cross-rsdpg-128-balanced

    + +
    +
    + +

    ◆ OQS_SIG_alg_cross_rsdpg_128_fast

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdpg_128_fast   "cross-rsdpg-128-fast"
    +
    +

    Algorithm identifier for cross-rsdpg-128-fast

    + +
    +
    + +

    ◆ OQS_SIG_alg_cross_rsdpg_128_small

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdpg_128_small   "cross-rsdpg-128-small"
    +
    +

    Algorithm identifier for cross-rsdpg-128-small

    + +
    +
    + +

    ◆ OQS_SIG_alg_cross_rsdpg_192_balanced

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdpg_192_balanced   "cross-rsdpg-192-balanced"
    +
    +

    Algorithm identifier for cross-rsdpg-192-balanced

    + +
    +
    + +

    ◆ OQS_SIG_alg_cross_rsdpg_192_fast

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdpg_192_fast   "cross-rsdpg-192-fast"
    +
    +

    Algorithm identifier for cross-rsdpg-192-fast

    + +
    +
    + +

    ◆ OQS_SIG_alg_cross_rsdpg_192_small

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdpg_192_small   "cross-rsdpg-192-small"
    +
    +

    Algorithm identifier for cross-rsdpg-192-small

    + +
    +
    + +

    ◆ OQS_SIG_alg_cross_rsdpg_256_balanced

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdpg_256_balanced   "cross-rsdpg-256-balanced"
    +
    +

    Algorithm identifier for cross-rsdpg-256-balanced

    + +
    +
    + +

    ◆ OQS_SIG_alg_cross_rsdpg_256_fast

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdpg_256_fast   "cross-rsdpg-256-fast"
    +
    +

    Algorithm identifier for cross-rsdpg-256-fast

    + +
    +
    + +

    ◆ OQS_SIG_alg_cross_rsdpg_256_small

    + +
    +
    + + + + +
    #define OQS_SIG_alg_cross_rsdpg_256_small   "cross-rsdpg-256-small"
    +
    +

    Algorithm identifier for cross-rsdpg-256-small

    + +
    +
    + +

    ◆ OQS_SIG_alg_falcon_1024

    + +
    +
    + + + + +
    #define OQS_SIG_alg_falcon_1024   "Falcon-1024"
    +
    +

    Algorithm identifier for Falcon-1024

    + +
    +
    + +

    ◆ OQS_SIG_alg_falcon_512

    + +
    +
    + + + + +
    #define OQS_SIG_alg_falcon_512   "Falcon-512"
    +
    +

    Algorithm identifier for Falcon-512

    + +
    +
    + +

    ◆ OQS_SIG_alg_falcon_padded_1024

    + +
    +
    + + + + +
    #define OQS_SIG_alg_falcon_padded_1024   "Falcon-padded-1024"
    +
    +

    Algorithm identifier for Falcon-padded-1024

    + +
    +
    + +

    ◆ OQS_SIG_alg_falcon_padded_512

    + +
    +
    + + + + +
    #define OQS_SIG_alg_falcon_padded_512   "Falcon-padded-512"
    +
    +

    Algorithm identifier for Falcon-padded-512

    + +
    +
    + +

    ◆ OQS_SIG_alg_mayo_1

    + +
    +
    + + + + +
    #define OQS_SIG_alg_mayo_1   "MAYO-1"
    +
    +

    Algorithm identifier for MAYO-1

    + +
    +
    + +

    ◆ OQS_SIG_alg_mayo_2

    + +
    +
    + + + + +
    #define OQS_SIG_alg_mayo_2   "MAYO-2"
    +
    +

    Algorithm identifier for MAYO-2

    + +
    +
    + +

    ◆ OQS_SIG_alg_mayo_3

    + +
    +
    + + + + +
    #define OQS_SIG_alg_mayo_3   "MAYO-3"
    +
    +

    Algorithm identifier for MAYO-3

    + +
    +
    + +

    ◆ OQS_SIG_alg_mayo_5

    + +
    +
    + + + + +
    #define OQS_SIG_alg_mayo_5   "MAYO-5"
    +
    +

    Algorithm identifier for MAYO-5

    + +
    +
    + +

    ◆ OQS_SIG_alg_ml_dsa_44

    + +
    +
    + + + + +
    #define OQS_SIG_alg_ml_dsa_44   "ML-DSA-44"
    +
    +

    Algorithm identifier for ML-DSA-44

    + +
    +
    + +

    ◆ OQS_SIG_alg_ml_dsa_65

    + +
    +
    + + + + +
    #define OQS_SIG_alg_ml_dsa_65   "ML-DSA-65"
    +
    +

    Algorithm identifier for ML-DSA-65

    + +
    +
    + +

    ◆ OQS_SIG_alg_ml_dsa_87

    + +
    +
    + + + + +
    #define OQS_SIG_alg_ml_dsa_87   "ML-DSA-87"
    +
    +

    Algorithm identifier for ML-DSA-87

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_pure_sha2_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_pure_sha2_128f   "SLH_DSA_PURE_SHA2_128F"
    +
    +

    Algorithm identifier for slh_dsa_pure_sha2_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_pure_sha2_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_pure_sha2_128s   "SLH_DSA_PURE_SHA2_128S"
    +
    +

    Algorithm identifier for slh_dsa_pure_sha2_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_pure_sha2_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_pure_sha2_192f   "SLH_DSA_PURE_SHA2_192F"
    +
    +

    Algorithm identifier for slh_dsa_pure_sha2_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_pure_sha2_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_pure_sha2_192s   "SLH_DSA_PURE_SHA2_192S"
    +
    +

    Algorithm identifier for slh_dsa_pure_sha2_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_pure_sha2_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_pure_sha2_256f   "SLH_DSA_PURE_SHA2_256F"
    +
    +

    Algorithm identifier for slh_dsa_pure_sha2_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_pure_sha2_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_pure_sha2_256s   "SLH_DSA_PURE_SHA2_256S"
    +
    +

    Algorithm identifier for slh_dsa_pure_sha2_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_pure_shake_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_pure_shake_128f   "SLH_DSA_PURE_SHAKE_128F"
    +
    +

    Algorithm identifier for slh_dsa_pure_shake_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_pure_shake_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_pure_shake_128s   "SLH_DSA_PURE_SHAKE_128S"
    +
    +

    Algorithm identifier for slh_dsa_pure_shake_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_pure_shake_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_pure_shake_192f   "SLH_DSA_PURE_SHAKE_192F"
    +
    +

    Algorithm identifier for slh_dsa_pure_shake_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_pure_shake_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_pure_shake_192s   "SLH_DSA_PURE_SHAKE_192S"
    +
    +

    Algorithm identifier for slh_dsa_pure_shake_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_pure_shake_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_pure_shake_256f   "SLH_DSA_PURE_SHAKE_256F"
    +
    +

    Algorithm identifier for slh_dsa_pure_shake_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_pure_shake_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_pure_shake_256s   "SLH_DSA_PURE_SHAKE_256S"
    +
    +

    Algorithm identifier for slh_dsa_pure_shake_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_128f   "SLH_DSA_SHA2_224_PREHASH_SHA2_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_224_prehash_sha2_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_128s   "SLH_DSA_SHA2_224_PREHASH_SHA2_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_224_prehash_sha2_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_192f   "SLH_DSA_SHA2_224_PREHASH_SHA2_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_224_prehash_sha2_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_192s   "SLH_DSA_SHA2_224_PREHASH_SHA2_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_224_prehash_sha2_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_256f   "SLH_DSA_SHA2_224_PREHASH_SHA2_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_224_prehash_sha2_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_256s   "SLH_DSA_SHA2_224_PREHASH_SHA2_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_224_prehash_sha2_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_128f   "SLH_DSA_SHA2_224_PREHASH_SHAKE_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_224_prehash_shake_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_128s   "SLH_DSA_SHA2_224_PREHASH_SHAKE_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_224_prehash_shake_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_192f   "SLH_DSA_SHA2_224_PREHASH_SHAKE_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_224_prehash_shake_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_192s   "SLH_DSA_SHA2_224_PREHASH_SHAKE_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_224_prehash_shake_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_256f   "SLH_DSA_SHA2_224_PREHASH_SHAKE_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_224_prehash_shake_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_256s   "SLH_DSA_SHA2_224_PREHASH_SHAKE_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_224_prehash_shake_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_128f   "SLH_DSA_SHA2_256_PREHASH_SHA2_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_256_prehash_sha2_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_128s   "SLH_DSA_SHA2_256_PREHASH_SHA2_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_256_prehash_sha2_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_192f   "SLH_DSA_SHA2_256_PREHASH_SHA2_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_256_prehash_sha2_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_192s   "SLH_DSA_SHA2_256_PREHASH_SHA2_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_256_prehash_sha2_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_256f   "SLH_DSA_SHA2_256_PREHASH_SHA2_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_256_prehash_sha2_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_256s   "SLH_DSA_SHA2_256_PREHASH_SHA2_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_256_prehash_sha2_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_128f   "SLH_DSA_SHA2_256_PREHASH_SHAKE_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_256_prehash_shake_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_128s   "SLH_DSA_SHA2_256_PREHASH_SHAKE_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_256_prehash_shake_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_192f   "SLH_DSA_SHA2_256_PREHASH_SHAKE_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_256_prehash_shake_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_192s   "SLH_DSA_SHA2_256_PREHASH_SHAKE_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_256_prehash_shake_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_256f   "SLH_DSA_SHA2_256_PREHASH_SHAKE_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_256_prehash_shake_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_256s   "SLH_DSA_SHA2_256_PREHASH_SHAKE_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_256_prehash_shake_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_128f   "SLH_DSA_SHA2_384_PREHASH_SHA2_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_384_prehash_sha2_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_128s   "SLH_DSA_SHA2_384_PREHASH_SHA2_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_384_prehash_sha2_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_192f   "SLH_DSA_SHA2_384_PREHASH_SHA2_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_384_prehash_sha2_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_192s   "SLH_DSA_SHA2_384_PREHASH_SHA2_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_384_prehash_sha2_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_256f   "SLH_DSA_SHA2_384_PREHASH_SHA2_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_384_prehash_sha2_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_256s   "SLH_DSA_SHA2_384_PREHASH_SHA2_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_384_prehash_sha2_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_128f   "SLH_DSA_SHA2_384_PREHASH_SHAKE_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_384_prehash_shake_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_128s   "SLH_DSA_SHA2_384_PREHASH_SHAKE_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_384_prehash_shake_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_192f   "SLH_DSA_SHA2_384_PREHASH_SHAKE_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_384_prehash_shake_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_192s   "SLH_DSA_SHA2_384_PREHASH_SHAKE_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_384_prehash_shake_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_256f   "SLH_DSA_SHA2_384_PREHASH_SHAKE_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_384_prehash_shake_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_256s   "SLH_DSA_SHA2_384_PREHASH_SHAKE_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_384_prehash_shake_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_128f   "SLH_DSA_SHA2_512_224_PREHASH_SHA2_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_224_prehash_sha2_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_128s   "SLH_DSA_SHA2_512_224_PREHASH_SHA2_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_224_prehash_sha2_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_192f   "SLH_DSA_SHA2_512_224_PREHASH_SHA2_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_224_prehash_sha2_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_192s   "SLH_DSA_SHA2_512_224_PREHASH_SHA2_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_224_prehash_sha2_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_256f   "SLH_DSA_SHA2_512_224_PREHASH_SHA2_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_224_prehash_sha2_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_256s   "SLH_DSA_SHA2_512_224_PREHASH_SHA2_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_224_prehash_sha2_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_128f   "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_224_prehash_shake_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_128s   "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_224_prehash_shake_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_192f   "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_224_prehash_shake_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_192s   "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_224_prehash_shake_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_256f   "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_224_prehash_shake_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_256s   "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_224_prehash_shake_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_128f   "SLH_DSA_SHA2_512_256_PREHASH_SHA2_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_256_prehash_sha2_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_128s   "SLH_DSA_SHA2_512_256_PREHASH_SHA2_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_256_prehash_sha2_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_192f   "SLH_DSA_SHA2_512_256_PREHASH_SHA2_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_256_prehash_sha2_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_192s   "SLH_DSA_SHA2_512_256_PREHASH_SHA2_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_256_prehash_sha2_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_256f   "SLH_DSA_SHA2_512_256_PREHASH_SHA2_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_256_prehash_sha2_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_256s   "SLH_DSA_SHA2_512_256_PREHASH_SHA2_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_256_prehash_sha2_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_128f   "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_256_prehash_shake_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_128s   "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_256_prehash_shake_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_192f   "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_256_prehash_shake_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_192s   "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_256_prehash_shake_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_256f   "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_256_prehash_shake_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_256s   "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_256_prehash_shake_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_128f   "SLH_DSA_SHA2_512_PREHASH_SHA2_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_prehash_sha2_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_128s   "SLH_DSA_SHA2_512_PREHASH_SHA2_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_prehash_sha2_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_192f   "SLH_DSA_SHA2_512_PREHASH_SHA2_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_prehash_sha2_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_192s   "SLH_DSA_SHA2_512_PREHASH_SHA2_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_prehash_sha2_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_256f   "SLH_DSA_SHA2_512_PREHASH_SHA2_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_prehash_sha2_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_256s   "SLH_DSA_SHA2_512_PREHASH_SHA2_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_prehash_sha2_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_128f   "SLH_DSA_SHA2_512_PREHASH_SHAKE_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_prehash_shake_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_128s   "SLH_DSA_SHA2_512_PREHASH_SHAKE_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_prehash_shake_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_192f   "SLH_DSA_SHA2_512_PREHASH_SHAKE_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_prehash_shake_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_192s   "SLH_DSA_SHA2_512_PREHASH_SHAKE_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_prehash_shake_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_256f   "SLH_DSA_SHA2_512_PREHASH_SHAKE_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_prehash_shake_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_256s   "SLH_DSA_SHA2_512_PREHASH_SHAKE_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha2_512_prehash_shake_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_128f   "SLH_DSA_SHA3_224_PREHASH_SHA2_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_224_prehash_sha2_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_128s   "SLH_DSA_SHA3_224_PREHASH_SHA2_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_224_prehash_sha2_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_192f   "SLH_DSA_SHA3_224_PREHASH_SHA2_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_224_prehash_sha2_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_192s   "SLH_DSA_SHA3_224_PREHASH_SHA2_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_224_prehash_sha2_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_256f   "SLH_DSA_SHA3_224_PREHASH_SHA2_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_224_prehash_sha2_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_256s   "SLH_DSA_SHA3_224_PREHASH_SHA2_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_224_prehash_sha2_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_128f   "SLH_DSA_SHA3_224_PREHASH_SHAKE_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_224_prehash_shake_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_128s   "SLH_DSA_SHA3_224_PREHASH_SHAKE_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_224_prehash_shake_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_192f   "SLH_DSA_SHA3_224_PREHASH_SHAKE_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_224_prehash_shake_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_192s   "SLH_DSA_SHA3_224_PREHASH_SHAKE_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_224_prehash_shake_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_256f   "SLH_DSA_SHA3_224_PREHASH_SHAKE_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_224_prehash_shake_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_256s   "SLH_DSA_SHA3_224_PREHASH_SHAKE_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_224_prehash_shake_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_128f   "SLH_DSA_SHA3_256_PREHASH_SHA2_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_256_prehash_sha2_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_128s   "SLH_DSA_SHA3_256_PREHASH_SHA2_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_256_prehash_sha2_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_192f   "SLH_DSA_SHA3_256_PREHASH_SHA2_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_256_prehash_sha2_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_192s   "SLH_DSA_SHA3_256_PREHASH_SHA2_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_256_prehash_sha2_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_256f   "SLH_DSA_SHA3_256_PREHASH_SHA2_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_256_prehash_sha2_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_256s   "SLH_DSA_SHA3_256_PREHASH_SHA2_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_256_prehash_sha2_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_128f   "SLH_DSA_SHA3_256_PREHASH_SHAKE_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_256_prehash_shake_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_128s   "SLH_DSA_SHA3_256_PREHASH_SHAKE_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_256_prehash_shake_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_192f   "SLH_DSA_SHA3_256_PREHASH_SHAKE_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_256_prehash_shake_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_192s   "SLH_DSA_SHA3_256_PREHASH_SHAKE_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_256_prehash_shake_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_256f   "SLH_DSA_SHA3_256_PREHASH_SHAKE_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_256_prehash_shake_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_256s   "SLH_DSA_SHA3_256_PREHASH_SHAKE_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_256_prehash_shake_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_128f   "SLH_DSA_SHA3_384_PREHASH_SHA2_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_384_prehash_sha2_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_128s   "SLH_DSA_SHA3_384_PREHASH_SHA2_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_384_prehash_sha2_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_192f   "SLH_DSA_SHA3_384_PREHASH_SHA2_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_384_prehash_sha2_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_192s   "SLH_DSA_SHA3_384_PREHASH_SHA2_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_384_prehash_sha2_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_256f   "SLH_DSA_SHA3_384_PREHASH_SHA2_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_384_prehash_sha2_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_256s   "SLH_DSA_SHA3_384_PREHASH_SHA2_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_384_prehash_sha2_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_128f   "SLH_DSA_SHA3_384_PREHASH_SHAKE_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_384_prehash_shake_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_128s   "SLH_DSA_SHA3_384_PREHASH_SHAKE_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_384_prehash_shake_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_192f   "SLH_DSA_SHA3_384_PREHASH_SHAKE_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_384_prehash_shake_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_192s   "SLH_DSA_SHA3_384_PREHASH_SHAKE_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_384_prehash_shake_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_256f   "SLH_DSA_SHA3_384_PREHASH_SHAKE_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_384_prehash_shake_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_256s   "SLH_DSA_SHA3_384_PREHASH_SHAKE_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_384_prehash_shake_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_128f   "SLH_DSA_SHA3_512_PREHASH_SHA2_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_512_prehash_sha2_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_128s   "SLH_DSA_SHA3_512_PREHASH_SHA2_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_512_prehash_sha2_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_192f   "SLH_DSA_SHA3_512_PREHASH_SHA2_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_512_prehash_sha2_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_192s   "SLH_DSA_SHA3_512_PREHASH_SHA2_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_512_prehash_sha2_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_256f   "SLH_DSA_SHA3_512_PREHASH_SHA2_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_512_prehash_sha2_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_256s   "SLH_DSA_SHA3_512_PREHASH_SHA2_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_512_prehash_sha2_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_128f   "SLH_DSA_SHA3_512_PREHASH_SHAKE_128F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_512_prehash_shake_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_128s   "SLH_DSA_SHA3_512_PREHASH_SHAKE_128S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_512_prehash_shake_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_192f   "SLH_DSA_SHA3_512_PREHASH_SHAKE_192F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_512_prehash_shake_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_192s   "SLH_DSA_SHA3_512_PREHASH_SHAKE_192S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_512_prehash_shake_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_256f   "SLH_DSA_SHA3_512_PREHASH_SHAKE_256F"
    +
    +

    Algorithm identifier for slh_dsa_sha3_512_prehash_shake_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_256s   "SLH_DSA_SHA3_512_PREHASH_SHAKE_256S"
    +
    +

    Algorithm identifier for slh_dsa_sha3_512_prehash_shake_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_128f   "SLH_DSA_SHAKE_128_PREHASH_SHA2_128F"
    +
    +

    Algorithm identifier for slh_dsa_shake_128_prehash_sha2_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_128s   "SLH_DSA_SHAKE_128_PREHASH_SHA2_128S"
    +
    +

    Algorithm identifier for slh_dsa_shake_128_prehash_sha2_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_192f   "SLH_DSA_SHAKE_128_PREHASH_SHA2_192F"
    +
    +

    Algorithm identifier for slh_dsa_shake_128_prehash_sha2_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_192s   "SLH_DSA_SHAKE_128_PREHASH_SHA2_192S"
    +
    +

    Algorithm identifier for slh_dsa_shake_128_prehash_sha2_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_256f   "SLH_DSA_SHAKE_128_PREHASH_SHA2_256F"
    +
    +

    Algorithm identifier for slh_dsa_shake_128_prehash_sha2_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_256s   "SLH_DSA_SHAKE_128_PREHASH_SHA2_256S"
    +
    +

    Algorithm identifier for slh_dsa_shake_128_prehash_sha2_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_128f   "SLH_DSA_SHAKE_128_PREHASH_SHAKE_128F"
    +
    +

    Algorithm identifier for slh_dsa_shake_128_prehash_shake_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_128s   "SLH_DSA_SHAKE_128_PREHASH_SHAKE_128S"
    +
    +

    Algorithm identifier for slh_dsa_shake_128_prehash_shake_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_192f   "SLH_DSA_SHAKE_128_PREHASH_SHAKE_192F"
    +
    +

    Algorithm identifier for slh_dsa_shake_128_prehash_shake_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_192s   "SLH_DSA_SHAKE_128_PREHASH_SHAKE_192S"
    +
    +

    Algorithm identifier for slh_dsa_shake_128_prehash_shake_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_256f   "SLH_DSA_SHAKE_128_PREHASH_SHAKE_256F"
    +
    +

    Algorithm identifier for slh_dsa_shake_128_prehash_shake_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_256s   "SLH_DSA_SHAKE_128_PREHASH_SHAKE_256S"
    +
    +

    Algorithm identifier for slh_dsa_shake_128_prehash_shake_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_128f   "SLH_DSA_SHAKE_256_PREHASH_SHA2_128F"
    +
    +

    Algorithm identifier for slh_dsa_shake_256_prehash_sha2_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_128s   "SLH_DSA_SHAKE_256_PREHASH_SHA2_128S"
    +
    +

    Algorithm identifier for slh_dsa_shake_256_prehash_sha2_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_192f   "SLH_DSA_SHAKE_256_PREHASH_SHA2_192F"
    +
    +

    Algorithm identifier for slh_dsa_shake_256_prehash_sha2_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_192s   "SLH_DSA_SHAKE_256_PREHASH_SHA2_192S"
    +
    +

    Algorithm identifier for slh_dsa_shake_256_prehash_sha2_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_256f   "SLH_DSA_SHAKE_256_PREHASH_SHA2_256F"
    +
    +

    Algorithm identifier for slh_dsa_shake_256_prehash_sha2_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_256s   "SLH_DSA_SHAKE_256_PREHASH_SHA2_256S"
    +
    +

    Algorithm identifier for slh_dsa_shake_256_prehash_sha2_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_128f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_128f   "SLH_DSA_SHAKE_256_PREHASH_SHAKE_128F"
    +
    +

    Algorithm identifier for slh_dsa_shake_256_prehash_shake_128f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_128s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_128s   "SLH_DSA_SHAKE_256_PREHASH_SHAKE_128S"
    +
    +

    Algorithm identifier for slh_dsa_shake_256_prehash_shake_128s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_192f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_192f   "SLH_DSA_SHAKE_256_PREHASH_SHAKE_192F"
    +
    +

    Algorithm identifier for slh_dsa_shake_256_prehash_shake_192f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_192s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_192s   "SLH_DSA_SHAKE_256_PREHASH_SHAKE_192S"
    +
    +

    Algorithm identifier for slh_dsa_shake_256_prehash_shake_192s

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_256f

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_256f   "SLH_DSA_SHAKE_256_PREHASH_SHAKE_256F"
    +
    +

    Algorithm identifier for slh_dsa_shake_256_prehash_shake_256f

    + +
    +
    + +

    ◆ OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_256s

    + +
    +
    + + + + +
    #define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_256s   "SLH_DSA_SHAKE_256_PREHASH_SHAKE_256S"
    +
    +

    Algorithm identifier for slh_dsa_shake_256_prehash_shake_256s

    + +
    +
    + +

    ◆ OQS_SIG_alg_snova_SNOVA_24_5_4

    + +
    +
    + + + + +
    #define OQS_SIG_alg_snova_SNOVA_24_5_4   "SNOVA_24_5_4"
    +
    +

    Algorithm identifier for SNOVA_24_5_4

    + +
    +
    + +

    ◆ OQS_SIG_alg_snova_SNOVA_24_5_4_esk

    + +
    +
    + + + + +
    #define OQS_SIG_alg_snova_SNOVA_24_5_4_esk   "SNOVA_24_5_4_esk"
    +
    +

    Algorithm identifier for SNOVA_24_5_4_esk

    + +
    +
    + +

    ◆ OQS_SIG_alg_snova_SNOVA_24_5_4_SHAKE

    + +
    +
    + + + + +
    #define OQS_SIG_alg_snova_SNOVA_24_5_4_SHAKE   "SNOVA_24_5_4_SHAKE"
    +
    +

    Algorithm identifier for SNOVA_24_5_4_SHAKE

    + +
    +
    + +

    ◆ OQS_SIG_alg_snova_SNOVA_24_5_4_SHAKE_esk

    + +
    +
    + + + + +
    #define OQS_SIG_alg_snova_SNOVA_24_5_4_SHAKE_esk   "SNOVA_24_5_4_SHAKE_esk"
    +
    +

    Algorithm identifier for SNOVA_24_5_4_SHAKE_esk

    + +
    +
    + +

    ◆ OQS_SIG_alg_snova_SNOVA_24_5_5

    + +
    +
    + + + + +
    #define OQS_SIG_alg_snova_SNOVA_24_5_5   "SNOVA_24_5_5"
    +
    +

    Algorithm identifier for SNOVA_24_5_5

    + +
    +
    + +

    ◆ OQS_SIG_alg_snova_SNOVA_25_8_3

    + +
    +
    + + + + +
    #define OQS_SIG_alg_snova_SNOVA_25_8_3   "SNOVA_25_8_3"
    +
    +

    Algorithm identifier for SNOVA_25_8_3

    + +
    +
    + +

    ◆ OQS_SIG_alg_snova_SNOVA_29_6_5

    + +
    +
    + + + + +
    #define OQS_SIG_alg_snova_SNOVA_29_6_5   "SNOVA_29_6_5"
    +
    +

    Algorithm identifier for SNOVA_29_6_5

    + +
    +
    + +

    ◆ OQS_SIG_alg_snova_SNOVA_37_17_2

    + +
    +
    + + + + +
    #define OQS_SIG_alg_snova_SNOVA_37_17_2   "SNOVA_37_17_2"
    +
    +

    Algorithm identifier for SNOVA_37_17_2

    + +
    +
    + +

    ◆ OQS_SIG_alg_snova_SNOVA_37_8_4

    + +
    +
    + + + + +
    #define OQS_SIG_alg_snova_SNOVA_37_8_4   "SNOVA_37_8_4"
    +
    +

    Algorithm identifier for SNOVA_37_8_4

    + +
    +
    + +

    ◆ OQS_SIG_alg_snova_SNOVA_49_11_3

    + +
    +
    + + + + +
    #define OQS_SIG_alg_snova_SNOVA_49_11_3   "SNOVA_49_11_3"
    +
    +

    Algorithm identifier for SNOVA_49_11_3

    + +
    +
    + +

    ◆ OQS_SIG_alg_snova_SNOVA_56_25_2

    + +
    +
    + + + + +
    #define OQS_SIG_alg_snova_SNOVA_56_25_2   "SNOVA_56_25_2"
    +
    +

    Algorithm identifier for SNOVA_56_25_2

    + +
    +
    + +

    ◆ OQS_SIG_alg_snova_SNOVA_60_10_4

    + +
    +
    + + + + +
    #define OQS_SIG_alg_snova_SNOVA_60_10_4   "SNOVA_60_10_4"
    +
    +

    Algorithm identifier for SNOVA_60_10_4

    + +
    +
    + +

    ◆ OQS_SIG_alg_sphincs_sha2_128f_simple

    + +
    +
    + + + + +
    #define OQS_SIG_alg_sphincs_sha2_128f_simple   "SPHINCS+-SHA2-128f-simple"
    +
    +

    Algorithm identifier for SPHINCS+-SHA2-128f-simple

    + +
    +
    + +

    ◆ OQS_SIG_alg_sphincs_sha2_128s_simple

    + +
    +
    + + + + +
    #define OQS_SIG_alg_sphincs_sha2_128s_simple   "SPHINCS+-SHA2-128s-simple"
    +
    +

    Algorithm identifier for SPHINCS+-SHA2-128s-simple

    + +
    +
    + +

    ◆ OQS_SIG_alg_sphincs_sha2_192f_simple

    + +
    +
    + + + + +
    #define OQS_SIG_alg_sphincs_sha2_192f_simple   "SPHINCS+-SHA2-192f-simple"
    +
    +

    Algorithm identifier for SPHINCS+-SHA2-192f-simple

    + +
    +
    + +

    ◆ OQS_SIG_alg_sphincs_sha2_192s_simple

    + +
    +
    + + + + +
    #define OQS_SIG_alg_sphincs_sha2_192s_simple   "SPHINCS+-SHA2-192s-simple"
    +
    +

    Algorithm identifier for SPHINCS+-SHA2-192s-simple

    + +
    +
    + +

    ◆ OQS_SIG_alg_sphincs_sha2_256f_simple

    + +
    +
    + + + + +
    #define OQS_SIG_alg_sphincs_sha2_256f_simple   "SPHINCS+-SHA2-256f-simple"
    +
    +

    Algorithm identifier for SPHINCS+-SHA2-256f-simple

    + +
    +
    + +

    ◆ OQS_SIG_alg_sphincs_sha2_256s_simple

    + +
    +
    + + + + +
    #define OQS_SIG_alg_sphincs_sha2_256s_simple   "SPHINCS+-SHA2-256s-simple"
    +
    +

    Algorithm identifier for SPHINCS+-SHA2-256s-simple

    + +
    +
    + +

    ◆ OQS_SIG_alg_sphincs_shake_128f_simple

    + +
    +
    + + + + +
    #define OQS_SIG_alg_sphincs_shake_128f_simple   "SPHINCS+-SHAKE-128f-simple"
    +
    +

    Algorithm identifier for SPHINCS+-SHAKE-128f-simple

    + +
    +
    + +

    ◆ OQS_SIG_alg_sphincs_shake_128s_simple

    + +
    +
    + + + + +
    #define OQS_SIG_alg_sphincs_shake_128s_simple   "SPHINCS+-SHAKE-128s-simple"
    +
    +

    Algorithm identifier for SPHINCS+-SHAKE-128s-simple

    + +
    +
    + +

    ◆ OQS_SIG_alg_sphincs_shake_192f_simple

    + +
    +
    + + + + +
    #define OQS_SIG_alg_sphincs_shake_192f_simple   "SPHINCS+-SHAKE-192f-simple"
    +
    +

    Algorithm identifier for SPHINCS+-SHAKE-192f-simple

    + +
    +
    + +

    ◆ OQS_SIG_alg_sphincs_shake_192s_simple

    + +
    +
    + + + + +
    #define OQS_SIG_alg_sphincs_shake_192s_simple   "SPHINCS+-SHAKE-192s-simple"
    +
    +

    Algorithm identifier for SPHINCS+-SHAKE-192s-simple

    + +
    +
    + +

    ◆ OQS_SIG_alg_sphincs_shake_256f_simple

    + +
    +
    + + + + +
    #define OQS_SIG_alg_sphincs_shake_256f_simple   "SPHINCS+-SHAKE-256f-simple"
    +
    +

    Algorithm identifier for SPHINCS+-SHAKE-256f-simple

    + +
    +
    + +

    ◆ OQS_SIG_alg_sphincs_shake_256s_simple

    + +
    +
    + + + + +
    #define OQS_SIG_alg_sphincs_shake_256s_simple   "SPHINCS+-SHAKE-256s-simple"
    +
    +

    Algorithm identifier for SPHINCS+-SHAKE-256s-simple

    + +
    +
    + +

    ◆ OQS_SIG_alg_uov_ov_III

    + +
    +
    + + + + +
    #define OQS_SIG_alg_uov_ov_III   "OV-III"
    +
    +

    Algorithm identifier for OV-III

    + +
    +
    + +

    ◆ OQS_SIG_alg_uov_ov_III_pkc

    + +
    +
    + + + + +
    #define OQS_SIG_alg_uov_ov_III_pkc   "OV-III-pkc"
    +
    +

    Algorithm identifier for OV-III-pkc

    + +
    +
    + +

    ◆ OQS_SIG_alg_uov_ov_III_pkc_skc

    + +
    +
    + + + + +
    #define OQS_SIG_alg_uov_ov_III_pkc_skc   "OV-III-pkc-skc"
    +
    +

    Algorithm identifier for OV-III-pkc-skc

    + +
    +
    + +

    ◆ OQS_SIG_alg_uov_ov_Ip

    + +
    +
    + + + + +
    #define OQS_SIG_alg_uov_ov_Ip   "OV-Ip"
    +
    +

    Algorithm identifier for OV-Ip

    + +
    +
    + +

    ◆ OQS_SIG_alg_uov_ov_Ip_pkc

    + +
    +
    + + + + +
    #define OQS_SIG_alg_uov_ov_Ip_pkc   "OV-Ip-pkc"
    +
    +

    Algorithm identifier for OV-Ip-pkc

    + +
    +
    + +

    ◆ OQS_SIG_alg_uov_ov_Ip_pkc_skc

    + +
    +
    + + + + +
    #define OQS_SIG_alg_uov_ov_Ip_pkc_skc   "OV-Ip-pkc-skc"
    +
    +

    Algorithm identifier for OV-Ip-pkc-skc

    + +
    +
    + +

    ◆ OQS_SIG_alg_uov_ov_Is

    + +
    +
    + + + + +
    #define OQS_SIG_alg_uov_ov_Is   "OV-Is"
    +
    +

    Algorithm identifier for OV-Is

    + +
    +
    + +

    ◆ OQS_SIG_alg_uov_ov_Is_pkc

    + +
    +
    + + + + +
    #define OQS_SIG_alg_uov_ov_Is_pkc   "OV-Is-pkc"
    +
    +

    Algorithm identifier for OV-Is-pkc

    + +
    +
    + +

    ◆ OQS_SIG_alg_uov_ov_Is_pkc_skc

    + +
    +
    + + + + +
    #define OQS_SIG_alg_uov_ov_Is_pkc_skc   "OV-Is-pkc-skc"
    +
    +

    Algorithm identifier for OV-Is-pkc-skc

    + +
    +
    + +

    ◆ OQS_SIG_alg_uov_ov_V

    + +
    +
    + + + + +
    #define OQS_SIG_alg_uov_ov_V   "OV-V"
    +
    +

    Algorithm identifier for OV-V

    + +
    +
    + +

    ◆ OQS_SIG_alg_uov_ov_V_pkc

    + +
    +
    + + + + +
    #define OQS_SIG_alg_uov_ov_V_pkc   "OV-V-pkc"
    +
    +

    Algorithm identifier for OV-V-pkc

    + +
    +
    + +

    ◆ OQS_SIG_alg_uov_ov_V_pkc_skc

    + +
    +
    + + + + +
    #define OQS_SIG_alg_uov_ov_V_pkc_skc   "OV-V-pkc-skc"
    +
    +

    Algorithm identifier for OV-V-pkc-skc

    + +
    +
    + +

    ◆ OQS_SIG_algs_length

    + +
    +
    + + + + +
    #define OQS_SIG_algs_length   65 + OQS_SIG_SLH_DSA_algs_length
    +
    +

    Number of algorithm identifiers above.

    + +
    +
    + +

    ◆ OQS_SIG_SLH_DSA_algs_length

    + +
    +
    + + + + +
    #define OQS_SIG_SLH_DSA_algs_length   156
    +
    +

    Number of algorithm identifiers above.

    + +
    +
    +

    Typedef Documentation

    + +

    ◆ OQS_SIG

    + +
    +
    + + + + +
    typedef struct OQS_SIG OQS_SIG
    +
    +

    Signature schemes object

    + +
    +
    +

    Function Documentation

    + +

    ◆ OQS_SIG_alg_count()

    + +
    +
    + + + + + + + +
    OQS_API int OQS_SIG_alg_count (void )
    +
    +

    Returns the number of signature mechanisms in liboqs. They can be enumerated with OQS_SIG_alg_identifier.

    +

    Note that some mechanisms may be disabled at compile time.

    +
    Returns
    The number of signature mechanisms.
    + +
    +
    + +

    ◆ OQS_SIG_alg_identifier()

    + +
    +
    + + + + + + + +
    OQS_API const char * OQS_SIG_alg_identifier (size_t i)
    +
    +

    Returns identifiers for available signature schemes in liboqs. Used with OQS_SIG_new.

    +

    Note that algorithm identifiers are present in this list even when the algorithm is disabled at compile time.

    +
    Parameters
    + + +
    [in]iIndex of the algorithm identifier to return, 0 <= i < OQS_SIG_algs_length
    +
    +
    +
    Returns
    Algorithm identifier as a string, or NULL.
    + +
    +
    + +

    ◆ OQS_SIG_alg_is_enabled()

    + +
    +
    + + + + + + + +
    OQS_API int OQS_SIG_alg_is_enabled (const char * method_name)
    +
    +

    Indicates whether the specified algorithm was enabled at compile-time or not.

    +
    Parameters
    + + +
    [in]method_nameName of the desired algorithm; one of the names in OQS_SIG_algs.
    +
    +
    +
    Returns
    1 if enabled, 0 if disabled or not found
    + +
    +
    + +

    ◆ OQS_SIG_free()

    + +
    +
    + + + + + + + +
    OQS_API void OQS_SIG_free (OQS_SIG * sig)
    +
    +

    Frees an OQS_SIG object that was constructed by OQS_SIG_new.

    +
    Parameters
    + + +
    [in]sigThe OQS_SIG object to free.
    +
    +
    + +
    +
    + +

    ◆ OQS_SIG_keypair()

    + +
    +
    + + + + + + + + + + + + + + + + +
    OQS_API OQS_STATUS OQS_SIG_keypair (const OQS_SIG * sig,
    uint8_t * public_key,
    uint8_t * secret_key )
    +
    +

    Keypair generation algorithm.

    +

    Caller is responsible for allocating sufficient memory for public_key and secret_key, based on the length_* members in this object or the per-scheme compile-time macros OQS_SIG_*_length_*.

    +
    Parameters
    + + + + +
    [in]sigThe OQS_SIG object representing the signature scheme.
    [out]public_keyThe public key represented as a byte string.
    [out]secret_keyThe secret key represented as a byte string.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    + +

    ◆ OQS_SIG_new()

    + +
    +
    + + + + + + + +
    OQS_API OQS_SIG * OQS_SIG_new (const char * method_name)
    +
    +

    Constructs an OQS_SIG object for a particular algorithm.

    +

    Callers should always check whether the return value is NULL, which indicates either than an invalid algorithm name was provided, or that the requested algorithm was disabled at compile-time.

    +
    Parameters
    + + +
    [in]method_nameName of the desired algorithm; one of the names in OQS_SIG_algs.
    +
    +
    +
    Returns
    An OQS_SIG for the particular algorithm, or NULL if the algorithm has been disabled at compile-time.
    + +
    +
    + +

    ◆ OQS_SIG_sign()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OQS_API OQS_STATUS OQS_SIG_sign (const OQS_SIG * sig,
    uint8_t * signature,
    size_t * signature_len,
    const uint8_t * message,
    size_t message_len,
    const uint8_t * secret_key )
    +
    +

    Signature generation algorithm.

    +

    Caller is responsible for allocating sufficient memory for signnature, based on the length_* members in this object or the per-scheme compile-time macros OQS_SIG_*_length_*.

    +
    Parameters
    + + + + + + + +
    [in]sigThe OQS_SIG object representing the signature scheme.
    [out]signatureThe signature on the message represented as a byte string.
    [out]signature_lenThe length of the signature.
    [in]messageThe message to sign represented as a byte string.
    [in]message_lenThe length of the message to sign.
    [in]secret_keyThe secret key represented as a byte string.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    + +

    ◆ OQS_SIG_sign_with_ctx_str()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OQS_API OQS_STATUS OQS_SIG_sign_with_ctx_str (const OQS_SIG * sig,
    uint8_t * signature,
    size_t * signature_len,
    const uint8_t * message,
    size_t message_len,
    const uint8_t * ctx_str,
    size_t ctx_str_len,
    const uint8_t * secret_key )
    +
    +

    Signature generation algorithm, with custom context string.

    +

    Caller is responsible for allocating sufficient memory for signature, based on the length_* members in this object or the per-scheme compile-time macros OQS_SIG_*_length_*.

    +
    Parameters
    + + + + + + + + + +
    [in]sigThe OQS_SIG object representing the signature scheme.
    [out]signatureThe signature on the message represented as a byte string.
    [out]signature_lenThe actual length of the signature. May be smaller than length_signature for some algorithms since some algorithms have variable length signatures.
    [in]messageThe message to sign represented as a byte string.
    [in]message_lenThe length of the message to sign.
    [in]ctx_strThe context string used for the signature. This value can be set to NULL if a context string is not needed (i.e., for algorithms that do not support context strings or if an empty context string is used).
    [in]ctx_str_lenThe context string used for the signature. This value can be set to 0 if a context string is not needed (i.e., for algorithms that do not support context strings or if an empty context string is used).
    [in]secret_keyThe secret key represented as a byte string.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    + +

    ◆ OQS_SIG_supports_ctx_str()

    + +
    +
    + + + + + + + +
    OQS_API bool OQS_SIG_supports_ctx_str (const char * alg_name)
    +
    +

    Indicates whether the specified signature algorithm supports signing with a context string.

    +
    Parameters
    + + +
    [in]alg_nameName of the desired algorithm; one of the names in OQS_SIG_algs.
    +
    +
    +
    Returns
    true if the algorithm supports context string signing, false otherwise.
    + +
    +
    + +

    ◆ OQS_SIG_verify()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OQS_API OQS_STATUS OQS_SIG_verify (const OQS_SIG * sig,
    const uint8_t * message,
    size_t message_len,
    const uint8_t * signature,
    size_t signature_len,
    const uint8_t * public_key )
    +
    +

    Signature verification algorithm.

    +
    Parameters
    + + + + + + + +
    [in]sigThe OQS_SIG object representing the signature scheme.
    [in]messageThe message represented as a byte string.
    [in]message_lenThe length of the message.
    [in]signatureThe signature on the message represented as a byte string.
    [in]signature_lenThe length of the signature.
    [in]public_keyThe public key represented as a byte string.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    + +

    ◆ OQS_SIG_verify_with_ctx_str()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OQS_API OQS_STATUS OQS_SIG_verify_with_ctx_str (const OQS_SIG * sig,
    const uint8_t * message,
    size_t message_len,
    const uint8_t * signature,
    size_t signature_len,
    const uint8_t * ctx_str,
    size_t ctx_str_len,
    const uint8_t * public_key )
    +
    +

    Signature verification algorithm, with custom context string.

    +
    Parameters
    + + + + + + + + + +
    [in]sigThe OQS_SIG object representing the signature scheme.
    [in]messageThe message represented as a byte string.
    [in]message_lenThe length of the message.
    [in]signatureThe signature on the message represented as a byte string.
    [in]signature_lenThe length of the signature.
    [in]ctx_strThe context string used for the signature. This value can be set to NULL if a context string is not needed (i.e., for algorithms that do not support context strings or if an empty context string is used).
    [in]ctx_str_lenThe context string used for the signature. This value can be set to 0 if a context string is not needed (i.e., for algorithms that do not support context strings or if an empty context string is used).
    [in]public_keyThe public key represented as a byte string.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    +
    + + +
    + + diff --git a/liboqs/api/doxygen/sig_8h_source.html b/liboqs/api/doxygen/sig_8h_source.html new file mode 100644 index 0000000..e0aa32d --- /dev/null +++ b/liboqs/api/doxygen/sig_8h_source.html @@ -0,0 +1,453 @@ + + + + + + + +liboqs: src/sig/sig.h Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    +
    sig.h
    +
    +
    +Go to the documentation of this file.
    1
    +
    20
    +
    21#ifndef OQS_SIG_H
    +
    22#define OQS_SIG_H
    +
    23
    +
    24#include <stdbool.h>
    +
    25#include <stddef.h>
    +
    26#include <stdint.h>
    +
    27
    +
    28#include <oqs/oqs.h>
    +
    29
    +
    30#if defined(__cplusplus)
    +
    31extern "C" {
    +
    32#endif
    +
    33
    +
    35
    +
    36#define OQS_SIG_alg_ml_dsa_44 "ML-DSA-44"
    +
    38#define OQS_SIG_alg_ml_dsa_65 "ML-DSA-65"
    +
    40#define OQS_SIG_alg_ml_dsa_87 "ML-DSA-87"
    +
    42#define OQS_SIG_alg_falcon_512 "Falcon-512"
    +
    44#define OQS_SIG_alg_falcon_1024 "Falcon-1024"
    +
    46#define OQS_SIG_alg_falcon_padded_512 "Falcon-padded-512"
    +
    48#define OQS_SIG_alg_falcon_padded_1024 "Falcon-padded-1024"
    +
    50#define OQS_SIG_alg_sphincs_sha2_128f_simple "SPHINCS+-SHA2-128f-simple"
    +
    52#define OQS_SIG_alg_sphincs_sha2_128s_simple "SPHINCS+-SHA2-128s-simple"
    +
    54#define OQS_SIG_alg_sphincs_sha2_192f_simple "SPHINCS+-SHA2-192f-simple"
    +
    56#define OQS_SIG_alg_sphincs_sha2_192s_simple "SPHINCS+-SHA2-192s-simple"
    +
    58#define OQS_SIG_alg_sphincs_sha2_256f_simple "SPHINCS+-SHA2-256f-simple"
    +
    60#define OQS_SIG_alg_sphincs_sha2_256s_simple "SPHINCS+-SHA2-256s-simple"
    +
    62#define OQS_SIG_alg_sphincs_shake_128f_simple "SPHINCS+-SHAKE-128f-simple"
    +
    64#define OQS_SIG_alg_sphincs_shake_128s_simple "SPHINCS+-SHAKE-128s-simple"
    +
    66#define OQS_SIG_alg_sphincs_shake_192f_simple "SPHINCS+-SHAKE-192f-simple"
    +
    68#define OQS_SIG_alg_sphincs_shake_192s_simple "SPHINCS+-SHAKE-192s-simple"
    +
    70#define OQS_SIG_alg_sphincs_shake_256f_simple "SPHINCS+-SHAKE-256f-simple"
    +
    72#define OQS_SIG_alg_sphincs_shake_256s_simple "SPHINCS+-SHAKE-256s-simple"
    +
    74#define OQS_SIG_alg_mayo_1 "MAYO-1"
    +
    76#define OQS_SIG_alg_mayo_2 "MAYO-2"
    +
    78#define OQS_SIG_alg_mayo_3 "MAYO-3"
    +
    80#define OQS_SIG_alg_mayo_5 "MAYO-5"
    +
    82#define OQS_SIG_alg_cross_rsdp_128_balanced "cross-rsdp-128-balanced"
    +
    84#define OQS_SIG_alg_cross_rsdp_128_fast "cross-rsdp-128-fast"
    +
    86#define OQS_SIG_alg_cross_rsdp_128_small "cross-rsdp-128-small"
    +
    88#define OQS_SIG_alg_cross_rsdp_192_balanced "cross-rsdp-192-balanced"
    +
    90#define OQS_SIG_alg_cross_rsdp_192_fast "cross-rsdp-192-fast"
    +
    92#define OQS_SIG_alg_cross_rsdp_192_small "cross-rsdp-192-small"
    +
    94#define OQS_SIG_alg_cross_rsdp_256_balanced "cross-rsdp-256-balanced"
    +
    96#define OQS_SIG_alg_cross_rsdp_256_fast "cross-rsdp-256-fast"
    +
    98#define OQS_SIG_alg_cross_rsdp_256_small "cross-rsdp-256-small"
    +
    100#define OQS_SIG_alg_cross_rsdpg_128_balanced "cross-rsdpg-128-balanced"
    +
    102#define OQS_SIG_alg_cross_rsdpg_128_fast "cross-rsdpg-128-fast"
    +
    104#define OQS_SIG_alg_cross_rsdpg_128_small "cross-rsdpg-128-small"
    +
    106#define OQS_SIG_alg_cross_rsdpg_192_balanced "cross-rsdpg-192-balanced"
    +
    108#define OQS_SIG_alg_cross_rsdpg_192_fast "cross-rsdpg-192-fast"
    +
    110#define OQS_SIG_alg_cross_rsdpg_192_small "cross-rsdpg-192-small"
    +
    112#define OQS_SIG_alg_cross_rsdpg_256_balanced "cross-rsdpg-256-balanced"
    +
    114#define OQS_SIG_alg_cross_rsdpg_256_fast "cross-rsdpg-256-fast"
    +
    116#define OQS_SIG_alg_cross_rsdpg_256_small "cross-rsdpg-256-small"
    +
    118#define OQS_SIG_alg_uov_ov_Is "OV-Is"
    +
    120#define OQS_SIG_alg_uov_ov_Ip "OV-Ip"
    +
    122#define OQS_SIG_alg_uov_ov_III "OV-III"
    +
    124#define OQS_SIG_alg_uov_ov_V "OV-V"
    +
    126#define OQS_SIG_alg_uov_ov_Is_pkc "OV-Is-pkc"
    +
    128#define OQS_SIG_alg_uov_ov_Ip_pkc "OV-Ip-pkc"
    +
    130#define OQS_SIG_alg_uov_ov_III_pkc "OV-III-pkc"
    +
    132#define OQS_SIG_alg_uov_ov_V_pkc "OV-V-pkc"
    +
    134#define OQS_SIG_alg_uov_ov_Is_pkc_skc "OV-Is-pkc-skc"
    +
    136#define OQS_SIG_alg_uov_ov_Ip_pkc_skc "OV-Ip-pkc-skc"
    +
    138#define OQS_SIG_alg_uov_ov_III_pkc_skc "OV-III-pkc-skc"
    +
    140#define OQS_SIG_alg_uov_ov_V_pkc_skc "OV-V-pkc-skc"
    +
    142#define OQS_SIG_alg_snova_SNOVA_24_5_4 "SNOVA_24_5_4"
    +
    144#define OQS_SIG_alg_snova_SNOVA_24_5_4_SHAKE "SNOVA_24_5_4_SHAKE"
    +
    146#define OQS_SIG_alg_snova_SNOVA_24_5_4_esk "SNOVA_24_5_4_esk"
    +
    148#define OQS_SIG_alg_snova_SNOVA_24_5_4_SHAKE_esk "SNOVA_24_5_4_SHAKE_esk"
    +
    150#define OQS_SIG_alg_snova_SNOVA_37_17_2 "SNOVA_37_17_2"
    +
    152#define OQS_SIG_alg_snova_SNOVA_25_8_3 "SNOVA_25_8_3"
    +
    154#define OQS_SIG_alg_snova_SNOVA_56_25_2 "SNOVA_56_25_2"
    +
    156#define OQS_SIG_alg_snova_SNOVA_49_11_3 "SNOVA_49_11_3"
    +
    158#define OQS_SIG_alg_snova_SNOVA_37_8_4 "SNOVA_37_8_4"
    +
    160#define OQS_SIG_alg_snova_SNOVA_24_5_5 "SNOVA_24_5_5"
    +
    162#define OQS_SIG_alg_snova_SNOVA_60_10_4 "SNOVA_60_10_4"
    +
    164#define OQS_SIG_alg_snova_SNOVA_29_6_5 "SNOVA_29_6_5"
    +
    167
    +
    168#define OQS_SIG_alg_slh_dsa_pure_sha2_128s "SLH_DSA_PURE_SHA2_128S"
    +
    170#define OQS_SIG_alg_slh_dsa_pure_sha2_128f "SLH_DSA_PURE_SHA2_128F"
    +
    172#define OQS_SIG_alg_slh_dsa_pure_sha2_192s "SLH_DSA_PURE_SHA2_192S"
    +
    174#define OQS_SIG_alg_slh_dsa_pure_sha2_192f "SLH_DSA_PURE_SHA2_192F"
    +
    176#define OQS_SIG_alg_slh_dsa_pure_sha2_256s "SLH_DSA_PURE_SHA2_256S"
    +
    178#define OQS_SIG_alg_slh_dsa_pure_sha2_256f "SLH_DSA_PURE_SHA2_256F"
    +
    180#define OQS_SIG_alg_slh_dsa_pure_shake_128s "SLH_DSA_PURE_SHAKE_128S"
    +
    182#define OQS_SIG_alg_slh_dsa_pure_shake_128f "SLH_DSA_PURE_SHAKE_128F"
    +
    184#define OQS_SIG_alg_slh_dsa_pure_shake_192s "SLH_DSA_PURE_SHAKE_192S"
    +
    186#define OQS_SIG_alg_slh_dsa_pure_shake_192f "SLH_DSA_PURE_SHAKE_192F"
    +
    188#define OQS_SIG_alg_slh_dsa_pure_shake_256s "SLH_DSA_PURE_SHAKE_256S"
    +
    190#define OQS_SIG_alg_slh_dsa_pure_shake_256f "SLH_DSA_PURE_SHAKE_256F"
    +
    192#define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_128s "SLH_DSA_SHA2_224_PREHASH_SHA2_128S"
    +
    194#define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_128f "SLH_DSA_SHA2_224_PREHASH_SHA2_128F"
    +
    196#define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_192s "SLH_DSA_SHA2_224_PREHASH_SHA2_192S"
    +
    198#define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_192f "SLH_DSA_SHA2_224_PREHASH_SHA2_192F"
    +
    200#define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_256s "SLH_DSA_SHA2_224_PREHASH_SHA2_256S"
    +
    202#define OQS_SIG_alg_slh_dsa_sha2_224_prehash_sha2_256f "SLH_DSA_SHA2_224_PREHASH_SHA2_256F"
    +
    204#define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_128s "SLH_DSA_SHA2_224_PREHASH_SHAKE_128S"
    +
    206#define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_128f "SLH_DSA_SHA2_224_PREHASH_SHAKE_128F"
    +
    208#define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_192s "SLH_DSA_SHA2_224_PREHASH_SHAKE_192S"
    +
    210#define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_192f "SLH_DSA_SHA2_224_PREHASH_SHAKE_192F"
    +
    212#define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_256s "SLH_DSA_SHA2_224_PREHASH_SHAKE_256S"
    +
    214#define OQS_SIG_alg_slh_dsa_sha2_224_prehash_shake_256f "SLH_DSA_SHA2_224_PREHASH_SHAKE_256F"
    +
    216#define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_128s "SLH_DSA_SHA2_256_PREHASH_SHA2_128S"
    +
    218#define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_128f "SLH_DSA_SHA2_256_PREHASH_SHA2_128F"
    +
    220#define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_192s "SLH_DSA_SHA2_256_PREHASH_SHA2_192S"
    +
    222#define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_192f "SLH_DSA_SHA2_256_PREHASH_SHA2_192F"
    +
    224#define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_256s "SLH_DSA_SHA2_256_PREHASH_SHA2_256S"
    +
    226#define OQS_SIG_alg_slh_dsa_sha2_256_prehash_sha2_256f "SLH_DSA_SHA2_256_PREHASH_SHA2_256F"
    +
    228#define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_128s "SLH_DSA_SHA2_256_PREHASH_SHAKE_128S"
    +
    230#define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_128f "SLH_DSA_SHA2_256_PREHASH_SHAKE_128F"
    +
    232#define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_192s "SLH_DSA_SHA2_256_PREHASH_SHAKE_192S"
    +
    234#define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_192f "SLH_DSA_SHA2_256_PREHASH_SHAKE_192F"
    +
    236#define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_256s "SLH_DSA_SHA2_256_PREHASH_SHAKE_256S"
    +
    238#define OQS_SIG_alg_slh_dsa_sha2_256_prehash_shake_256f "SLH_DSA_SHA2_256_PREHASH_SHAKE_256F"
    +
    240#define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_128s "SLH_DSA_SHA2_384_PREHASH_SHA2_128S"
    +
    242#define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_128f "SLH_DSA_SHA2_384_PREHASH_SHA2_128F"
    +
    244#define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_192s "SLH_DSA_SHA2_384_PREHASH_SHA2_192S"
    +
    246#define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_192f "SLH_DSA_SHA2_384_PREHASH_SHA2_192F"
    +
    248#define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_256s "SLH_DSA_SHA2_384_PREHASH_SHA2_256S"
    +
    250#define OQS_SIG_alg_slh_dsa_sha2_384_prehash_sha2_256f "SLH_DSA_SHA2_384_PREHASH_SHA2_256F"
    +
    252#define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_128s "SLH_DSA_SHA2_384_PREHASH_SHAKE_128S"
    +
    254#define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_128f "SLH_DSA_SHA2_384_PREHASH_SHAKE_128F"
    +
    256#define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_192s "SLH_DSA_SHA2_384_PREHASH_SHAKE_192S"
    +
    258#define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_192f "SLH_DSA_SHA2_384_PREHASH_SHAKE_192F"
    +
    260#define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_256s "SLH_DSA_SHA2_384_PREHASH_SHAKE_256S"
    +
    262#define OQS_SIG_alg_slh_dsa_sha2_384_prehash_shake_256f "SLH_DSA_SHA2_384_PREHASH_SHAKE_256F"
    +
    264#define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_128s "SLH_DSA_SHA2_512_PREHASH_SHA2_128S"
    +
    266#define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_128f "SLH_DSA_SHA2_512_PREHASH_SHA2_128F"
    +
    268#define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_192s "SLH_DSA_SHA2_512_PREHASH_SHA2_192S"
    +
    270#define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_192f "SLH_DSA_SHA2_512_PREHASH_SHA2_192F"
    +
    272#define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_256s "SLH_DSA_SHA2_512_PREHASH_SHA2_256S"
    +
    274#define OQS_SIG_alg_slh_dsa_sha2_512_prehash_sha2_256f "SLH_DSA_SHA2_512_PREHASH_SHA2_256F"
    +
    276#define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_128s "SLH_DSA_SHA2_512_PREHASH_SHAKE_128S"
    +
    278#define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_128f "SLH_DSA_SHA2_512_PREHASH_SHAKE_128F"
    +
    280#define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_192s "SLH_DSA_SHA2_512_PREHASH_SHAKE_192S"
    +
    282#define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_192f "SLH_DSA_SHA2_512_PREHASH_SHAKE_192F"
    +
    284#define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_256s "SLH_DSA_SHA2_512_PREHASH_SHAKE_256S"
    +
    286#define OQS_SIG_alg_slh_dsa_sha2_512_prehash_shake_256f "SLH_DSA_SHA2_512_PREHASH_SHAKE_256F"
    +
    288#define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_128s "SLH_DSA_SHA2_512_224_PREHASH_SHA2_128S"
    +
    290#define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_128f "SLH_DSA_SHA2_512_224_PREHASH_SHA2_128F"
    +
    292#define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_192s "SLH_DSA_SHA2_512_224_PREHASH_SHA2_192S"
    +
    294#define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_192f "SLH_DSA_SHA2_512_224_PREHASH_SHA2_192F"
    +
    296#define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_256s "SLH_DSA_SHA2_512_224_PREHASH_SHA2_256S"
    +
    298#define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_sha2_256f "SLH_DSA_SHA2_512_224_PREHASH_SHA2_256F"
    +
    300#define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_128s "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_128S"
    +
    302#define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_128f "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_128F"
    +
    304#define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_192s "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_192S"
    +
    306#define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_192f "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_192F"
    +
    308#define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_256s "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_256S"
    +
    310#define OQS_SIG_alg_slh_dsa_sha2_512_224_prehash_shake_256f "SLH_DSA_SHA2_512_224_PREHASH_SHAKE_256F"
    +
    312#define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_128s "SLH_DSA_SHA2_512_256_PREHASH_SHA2_128S"
    +
    314#define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_128f "SLH_DSA_SHA2_512_256_PREHASH_SHA2_128F"
    +
    316#define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_192s "SLH_DSA_SHA2_512_256_PREHASH_SHA2_192S"
    +
    318#define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_192f "SLH_DSA_SHA2_512_256_PREHASH_SHA2_192F"
    +
    320#define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_256s "SLH_DSA_SHA2_512_256_PREHASH_SHA2_256S"
    +
    322#define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_sha2_256f "SLH_DSA_SHA2_512_256_PREHASH_SHA2_256F"
    +
    324#define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_128s "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_128S"
    +
    326#define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_128f "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_128F"
    +
    328#define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_192s "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_192S"
    +
    330#define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_192f "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_192F"
    +
    332#define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_256s "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_256S"
    +
    334#define OQS_SIG_alg_slh_dsa_sha2_512_256_prehash_shake_256f "SLH_DSA_SHA2_512_256_PREHASH_SHAKE_256F"
    +
    336#define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_128s "SLH_DSA_SHA3_224_PREHASH_SHA2_128S"
    +
    338#define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_128f "SLH_DSA_SHA3_224_PREHASH_SHA2_128F"
    +
    340#define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_192s "SLH_DSA_SHA3_224_PREHASH_SHA2_192S"
    +
    342#define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_192f "SLH_DSA_SHA3_224_PREHASH_SHA2_192F"
    +
    344#define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_256s "SLH_DSA_SHA3_224_PREHASH_SHA2_256S"
    +
    346#define OQS_SIG_alg_slh_dsa_sha3_224_prehash_sha2_256f "SLH_DSA_SHA3_224_PREHASH_SHA2_256F"
    +
    348#define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_128s "SLH_DSA_SHA3_224_PREHASH_SHAKE_128S"
    +
    350#define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_128f "SLH_DSA_SHA3_224_PREHASH_SHAKE_128F"
    +
    352#define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_192s "SLH_DSA_SHA3_224_PREHASH_SHAKE_192S"
    +
    354#define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_192f "SLH_DSA_SHA3_224_PREHASH_SHAKE_192F"
    +
    356#define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_256s "SLH_DSA_SHA3_224_PREHASH_SHAKE_256S"
    +
    358#define OQS_SIG_alg_slh_dsa_sha3_224_prehash_shake_256f "SLH_DSA_SHA3_224_PREHASH_SHAKE_256F"
    +
    360#define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_128s "SLH_DSA_SHA3_256_PREHASH_SHA2_128S"
    +
    362#define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_128f "SLH_DSA_SHA3_256_PREHASH_SHA2_128F"
    +
    364#define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_192s "SLH_DSA_SHA3_256_PREHASH_SHA2_192S"
    +
    366#define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_192f "SLH_DSA_SHA3_256_PREHASH_SHA2_192F"
    +
    368#define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_256s "SLH_DSA_SHA3_256_PREHASH_SHA2_256S"
    +
    370#define OQS_SIG_alg_slh_dsa_sha3_256_prehash_sha2_256f "SLH_DSA_SHA3_256_PREHASH_SHA2_256F"
    +
    372#define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_128s "SLH_DSA_SHA3_256_PREHASH_SHAKE_128S"
    +
    374#define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_128f "SLH_DSA_SHA3_256_PREHASH_SHAKE_128F"
    +
    376#define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_192s "SLH_DSA_SHA3_256_PREHASH_SHAKE_192S"
    +
    378#define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_192f "SLH_DSA_SHA3_256_PREHASH_SHAKE_192F"
    +
    380#define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_256s "SLH_DSA_SHA3_256_PREHASH_SHAKE_256S"
    +
    382#define OQS_SIG_alg_slh_dsa_sha3_256_prehash_shake_256f "SLH_DSA_SHA3_256_PREHASH_SHAKE_256F"
    +
    384#define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_128s "SLH_DSA_SHA3_384_PREHASH_SHA2_128S"
    +
    386#define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_128f "SLH_DSA_SHA3_384_PREHASH_SHA2_128F"
    +
    388#define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_192s "SLH_DSA_SHA3_384_PREHASH_SHA2_192S"
    +
    390#define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_192f "SLH_DSA_SHA3_384_PREHASH_SHA2_192F"
    +
    392#define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_256s "SLH_DSA_SHA3_384_PREHASH_SHA2_256S"
    +
    394#define OQS_SIG_alg_slh_dsa_sha3_384_prehash_sha2_256f "SLH_DSA_SHA3_384_PREHASH_SHA2_256F"
    +
    396#define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_128s "SLH_DSA_SHA3_384_PREHASH_SHAKE_128S"
    +
    398#define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_128f "SLH_DSA_SHA3_384_PREHASH_SHAKE_128F"
    +
    400#define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_192s "SLH_DSA_SHA3_384_PREHASH_SHAKE_192S"
    +
    402#define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_192f "SLH_DSA_SHA3_384_PREHASH_SHAKE_192F"
    +
    404#define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_256s "SLH_DSA_SHA3_384_PREHASH_SHAKE_256S"
    +
    406#define OQS_SIG_alg_slh_dsa_sha3_384_prehash_shake_256f "SLH_DSA_SHA3_384_PREHASH_SHAKE_256F"
    +
    408#define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_128s "SLH_DSA_SHA3_512_PREHASH_SHA2_128S"
    +
    410#define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_128f "SLH_DSA_SHA3_512_PREHASH_SHA2_128F"
    +
    412#define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_192s "SLH_DSA_SHA3_512_PREHASH_SHA2_192S"
    +
    414#define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_192f "SLH_DSA_SHA3_512_PREHASH_SHA2_192F"
    +
    416#define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_256s "SLH_DSA_SHA3_512_PREHASH_SHA2_256S"
    +
    418#define OQS_SIG_alg_slh_dsa_sha3_512_prehash_sha2_256f "SLH_DSA_SHA3_512_PREHASH_SHA2_256F"
    +
    420#define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_128s "SLH_DSA_SHA3_512_PREHASH_SHAKE_128S"
    +
    422#define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_128f "SLH_DSA_SHA3_512_PREHASH_SHAKE_128F"
    +
    424#define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_192s "SLH_DSA_SHA3_512_PREHASH_SHAKE_192S"
    +
    426#define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_192f "SLH_DSA_SHA3_512_PREHASH_SHAKE_192F"
    +
    428#define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_256s "SLH_DSA_SHA3_512_PREHASH_SHAKE_256S"
    +
    430#define OQS_SIG_alg_slh_dsa_sha3_512_prehash_shake_256f "SLH_DSA_SHA3_512_PREHASH_SHAKE_256F"
    +
    432#define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_128s "SLH_DSA_SHAKE_128_PREHASH_SHA2_128S"
    +
    434#define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_128f "SLH_DSA_SHAKE_128_PREHASH_SHA2_128F"
    +
    436#define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_192s "SLH_DSA_SHAKE_128_PREHASH_SHA2_192S"
    +
    438#define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_192f "SLH_DSA_SHAKE_128_PREHASH_SHA2_192F"
    +
    440#define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_256s "SLH_DSA_SHAKE_128_PREHASH_SHA2_256S"
    +
    442#define OQS_SIG_alg_slh_dsa_shake_128_prehash_sha2_256f "SLH_DSA_SHAKE_128_PREHASH_SHA2_256F"
    +
    444#define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_128s "SLH_DSA_SHAKE_128_PREHASH_SHAKE_128S"
    +
    446#define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_128f "SLH_DSA_SHAKE_128_PREHASH_SHAKE_128F"
    +
    448#define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_192s "SLH_DSA_SHAKE_128_PREHASH_SHAKE_192S"
    +
    450#define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_192f "SLH_DSA_SHAKE_128_PREHASH_SHAKE_192F"
    +
    452#define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_256s "SLH_DSA_SHAKE_128_PREHASH_SHAKE_256S"
    +
    454#define OQS_SIG_alg_slh_dsa_shake_128_prehash_shake_256f "SLH_DSA_SHAKE_128_PREHASH_SHAKE_256F"
    +
    456#define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_128s "SLH_DSA_SHAKE_256_PREHASH_SHA2_128S"
    +
    458#define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_128f "SLH_DSA_SHAKE_256_PREHASH_SHA2_128F"
    +
    460#define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_192s "SLH_DSA_SHAKE_256_PREHASH_SHA2_192S"
    +
    462#define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_192f "SLH_DSA_SHAKE_256_PREHASH_SHA2_192F"
    +
    464#define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_256s "SLH_DSA_SHAKE_256_PREHASH_SHA2_256S"
    +
    466#define OQS_SIG_alg_slh_dsa_shake_256_prehash_sha2_256f "SLH_DSA_SHAKE_256_PREHASH_SHA2_256F"
    +
    468#define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_128s "SLH_DSA_SHAKE_256_PREHASH_SHAKE_128S"
    +
    470#define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_128f "SLH_DSA_SHAKE_256_PREHASH_SHAKE_128F"
    +
    472#define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_192s "SLH_DSA_SHAKE_256_PREHASH_SHAKE_192S"
    +
    474#define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_192f "SLH_DSA_SHAKE_256_PREHASH_SHAKE_192F"
    +
    476#define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_256s "SLH_DSA_SHAKE_256_PREHASH_SHAKE_256S"
    +
    478#define OQS_SIG_alg_slh_dsa_shake_256_prehash_shake_256f "SLH_DSA_SHAKE_256_PREHASH_SHAKE_256F"
    +
    480// EDIT-WHEN-ADDING-SIG
    +
    482
    +
    484#define OQS_SIG_SLH_DSA_algs_length 156
    +
    487
    +
    489#define OQS_SIG_algs_length 65 + OQS_SIG_SLH_DSA_algs_length
    +
    491
    +
    501OQS_API const char *OQS_SIG_alg_identifier(size_t i);
    +
    502
    + +
    512
    +
    519OQS_API int OQS_SIG_alg_is_enabled(const char *method_name);
    +
    520
    +
    +
    524typedef struct OQS_SIG {
    +
    525
    +
    527 const char *method_name;
    +
    528
    +
    535 const char *alg_version;
    +
    536
    + +
    539
    + +
    542
    + +
    545
    + +
    548
    + + + +
    555
    +
    567 OQS_STATUS (*keypair)(uint8_t *public_key, uint8_t *secret_key);
    +
    568
    +
    583 OQS_STATUS (*sign)(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key);
    +
    584
    +
    601 OQS_STATUS (*sign_with_ctx_str)(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *secret_key);
    +
    602
    +
    613 OQS_STATUS (*verify)(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key);
    +
    614
    +
    627 OQS_STATUS (*verify_with_ctx_str)(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *public_key);
    +
    628
    +
    629
    + +
    +
    631
    +
    641OQS_API OQS_SIG *OQS_SIG_new(const char *method_name);
    +
    642
    +
    655OQS_API OQS_STATUS OQS_SIG_keypair(const OQS_SIG *sig, uint8_t *public_key, uint8_t *secret_key);
    +
    656
    +
    672OQS_API OQS_STATUS OQS_SIG_sign(const OQS_SIG *sig, uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key);
    +
    673
    +
    691OQS_API OQS_STATUS OQS_SIG_sign_with_ctx_str(const OQS_SIG *sig, uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *secret_key);
    +
    692
    +
    704OQS_API OQS_STATUS OQS_SIG_verify(const OQS_SIG *sig, const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key);
    +
    705
    +
    719OQS_API OQS_STATUS OQS_SIG_verify_with_ctx_str(const OQS_SIG *sig, const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *public_key);
    +
    720
    + +
    727
    +
    734OQS_API bool OQS_SIG_supports_ctx_str(const char *alg_name);
    +
    735
    +
    737#ifdef OQS_ENABLE_SIG_ML_DSA
    +
    738#include <oqs/sig_ml_dsa.h>
    +
    739#endif /* OQS_ENABLE_SIG_ML_DSA */
    +
    740#ifdef OQS_ENABLE_SIG_FALCON
    +
    741#include <oqs/sig_falcon.h>
    +
    742#endif /* OQS_ENABLE_SIG_FALCON */
    +
    743#ifdef OQS_ENABLE_SIG_SPHINCS
    +
    744#include <oqs/sig_sphincs.h>
    +
    745#endif /* OQS_ENABLE_SIG_SPHINCS */
    +
    746#ifdef OQS_ENABLE_SIG_MAYO
    +
    747#include <oqs/sig_mayo.h>
    +
    748#endif /* OQS_ENABLE_SIG_MAYO */
    +
    749#ifdef OQS_ENABLE_SIG_CROSS
    +
    750#include <oqs/sig_cross.h>
    +
    751#endif /* OQS_ENABLE_SIG_CROSS */
    +
    752#ifdef OQS_ENABLE_SIG_UOV
    +
    753#include <oqs/sig_uov.h>
    +
    754#endif /* OQS_ENABLE_SIG_UOV */
    +
    755#ifdef OQS_ENABLE_SIG_SNOVA
    +
    756#include <oqs/sig_snova.h>
    +
    757#endif /* OQS_ENABLE_SIG_SNOVA */
    +
    760#ifdef OQS_ENABLE_SIG_SLH_DSA
    +
    761#include <oqs/sig_slh_dsa.h>
    +
    762#endif /* OQS_ENABLE_SIG_SLH_DSA */
    +
    764// EDIT-WHEN-ADDING-SIG
    +
    765
    +
    766#if defined(__cplusplus)
    +
    767} // extern "C"
    +
    768#endif
    +
    769
    +
    770#endif // OQS_SIG_H
    +
    #define OQS_API
    Definition common.h:94
    +
    OQS_STATUS
    Definition common.h:116
    +
    OQS_API int OQS_SIG_alg_count(void)
    +
    OQS_API void OQS_SIG_free(OQS_SIG *sig)
    +
    OQS_API const char * OQS_SIG_alg_identifier(size_t i)
    +
    OQS_API OQS_STATUS OQS_SIG_sign_with_ctx_str(const OQS_SIG *sig, uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *secret_key)
    +
    OQS_API OQS_STATUS OQS_SIG_verify_with_ctx_str(const OQS_SIG *sig, const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *public_key)
    +
    OQS_API OQS_SIG * OQS_SIG_new(const char *method_name)
    +
    OQS_API int OQS_SIG_alg_is_enabled(const char *method_name)
    +
    OQS_API OQS_STATUS OQS_SIG_sign(const OQS_SIG *sig, uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key)
    +
    OQS_API OQS_STATUS OQS_SIG_keypair(const OQS_SIG *sig, uint8_t *public_key, uint8_t *secret_key)
    +
    OQS_API OQS_STATUS OQS_SIG_verify(const OQS_SIG *sig, const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key)
    +
    OQS_API bool OQS_SIG_supports_ctx_str(const char *alg_name)
    +
    Definition sig.h:524
    +
    size_t length_secret_key
    Definition sig.h:552
    +
    size_t length_signature
    Definition sig.h:554
    +
    bool euf_cma
    Definition sig.h:541
    +
    OQS_STATUS(* keypair)(uint8_t *public_key, uint8_t *secret_key)
    Definition sig.h:567
    +
    const char * method_name
    Definition sig.h:527
    +
    size_t length_public_key
    Definition sig.h:550
    +
    OQS_STATUS(* verify_with_ctx_str)(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *public_key)
    Definition sig.h:627
    +
    OQS_STATUS(* sign_with_ctx_str)(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *secret_key)
    Definition sig.h:601
    +
    const char * alg_version
    Definition sig.h:535
    +
    OQS_STATUS(* sign)(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key)
    Definition sig.h:583
    +
    OQS_STATUS(* verify)(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key)
    Definition sig.h:613
    +
    bool suf_cma
    Definition sig.h:544
    +
    bool sig_with_ctx_support
    Definition sig.h:547
    +
    uint8_t claimed_nist_level
    Definition sig.h:538
    +
    + + +
    + + diff --git a/liboqs/api/doxygen/sig__stfl_8h.html b/liboqs/api/doxygen/sig__stfl_8h.html new file mode 100644 index 0000000..de61d4a --- /dev/null +++ b/liboqs/api/doxygen/sig__stfl_8h.html @@ -0,0 +1,2039 @@ + + + + + + + +liboqs: src/sig_stfl/sig_stfl.h File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    + +
    sig_stfl.h File Reference
    +
    +
    + +

    Stateful Signature schemes. +More...

    +
    #include <stdbool.h>
    +#include <stddef.h>
    +#include <stdint.h>
    +#include <oqs/oqs.h>
    +
    +

    Go to the source code of this file.

    + + + + +

    +Data Structures

    struct  OQS_SIG_STFL_SECRET_KEY
     OQS_SIG_STFL_SECRET_KEY object for stateful signature schemes. More...
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Macros

    #define OQS_SIG_STFL_alg_xmss_sha256_h10   "XMSS-SHA2_10_256"
    #define OQS_SIG_STFL_alg_xmss_sha256_h16   "XMSS-SHA2_16_256"
    #define OQS_SIG_STFL_alg_xmss_sha256_h20   "XMSS-SHA2_20_256"
    #define OQS_SIG_STFL_alg_xmss_shake128_h10   "XMSS-SHAKE_10_256"
    #define OQS_SIG_STFL_alg_xmss_shake128_h16   "XMSS-SHAKE_16_256"
    #define OQS_SIG_STFL_alg_xmss_shake128_h20   "XMSS-SHAKE_20_256"
    #define OQS_SIG_STFL_alg_xmss_sha512_h10   "XMSS-SHA2_10_512"
    #define OQS_SIG_STFL_alg_xmss_sha512_h16   "XMSS-SHA2_16_512"
    #define OQS_SIG_STFL_alg_xmss_sha512_h20   "XMSS-SHA2_20_512"
    #define OQS_SIG_STFL_alg_xmss_shake256_h10   "XMSS-SHAKE_10_512"
    #define OQS_SIG_STFL_alg_xmss_shake256_h16   "XMSS-SHAKE_16_512"
    #define OQS_SIG_STFL_alg_xmss_shake256_h20   "XMSS-SHAKE_20_512"
    #define OQS_SIG_STFL_alg_xmss_sha256_h10_192   "XMSS-SHA2_10_192"
    #define OQS_SIG_STFL_alg_xmss_sha256_h16_192   "XMSS-SHA2_16_192"
    #define OQS_SIG_STFL_alg_xmss_sha256_h20_192   "XMSS-SHA2_20_192"
    #define OQS_SIG_STFL_alg_xmss_shake256_h10_192   "XMSS-SHAKE256_10_192"
    #define OQS_SIG_STFL_alg_xmss_shake256_h16_192   "XMSS-SHAKE256_16_192"
    #define OQS_SIG_STFL_alg_xmss_shake256_h20_192   "XMSS-SHAKE256_20_192"
    #define OQS_SIG_STFL_alg_xmss_shake256_h10_256   "XMSS-SHAKE256_10_256"
    #define OQS_SIG_STFL_alg_xmss_shake256_h16_256   "XMSS-SHAKE256_16_256"
    #define OQS_SIG_STFL_alg_xmss_shake256_h20_256   "XMSS-SHAKE256_20_256"
    #define OQS_SIG_STFL_alg_xmssmt_sha256_h20_2   "XMSSMT-SHA2_20/2_256"
    #define OQS_SIG_STFL_alg_xmssmt_sha256_h20_4   "XMSSMT-SHA2_20/4_256"
    #define OQS_SIG_STFL_alg_xmssmt_sha256_h40_2   "XMSSMT-SHA2_40/2_256"
    #define OQS_SIG_STFL_alg_xmssmt_sha256_h40_4   "XMSSMT-SHA2_40/4_256"
    #define OQS_SIG_STFL_alg_xmssmt_sha256_h40_8   "XMSSMT-SHA2_40/8_256"
    #define OQS_SIG_STFL_alg_xmssmt_sha256_h60_3   "XMSSMT-SHA2_60/3_256"
    #define OQS_SIG_STFL_alg_xmssmt_sha256_h60_6   "XMSSMT-SHA2_60/6_256"
    #define OQS_SIG_STFL_alg_xmssmt_sha256_h60_12   "XMSSMT-SHA2_60/12_256"
    #define OQS_SIG_STFL_alg_xmssmt_shake128_h20_2   "XMSSMT-SHAKE_20/2_256"
    #define OQS_SIG_STFL_alg_xmssmt_shake128_h20_4   "XMSSMT-SHAKE_20/4_256"
    #define OQS_SIG_STFL_alg_xmssmt_shake128_h40_2   "XMSSMT-SHAKE_40/2_256"
    #define OQS_SIG_STFL_alg_xmssmt_shake128_h40_4   "XMSSMT-SHAKE_40/4_256"
    #define OQS_SIG_STFL_alg_xmssmt_shake128_h40_8   "XMSSMT-SHAKE_40/8_256"
    #define OQS_SIG_STFL_alg_xmssmt_shake128_h60_3   "XMSSMT-SHAKE_60/3_256"
    #define OQS_SIG_STFL_alg_xmssmt_shake128_h60_6   "XMSSMT-SHAKE_60/6_256"
    #define OQS_SIG_STFL_alg_xmssmt_shake128_h60_12   "XMSSMT-SHAKE_60/12_256"
    #define OQS_SIG_STFL_alg_lms_sha256_h5_w1   "LMS_SHA256_H5_W1"
    #define OQS_SIG_STFL_alg_lms_sha256_h5_w2   "LMS_SHA256_H5_W2"
    #define OQS_SIG_STFL_alg_lms_sha256_h5_w4   "LMS_SHA256_H5_W4"
    #define OQS_SIG_STFL_alg_lms_sha256_h5_w8   "LMS_SHA256_H5_W8"
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w1   "LMS_SHA256_H10_W1"
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w2   "LMS_SHA256_H10_W2"
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w4   "LMS_SHA256_H10_W4"
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w8   "LMS_SHA256_H10_W8"
    #define OQS_SIG_STFL_alg_lms_sha256_h15_w1   "LMS_SHA256_H15_W1"
    #define OQS_SIG_STFL_alg_lms_sha256_h15_w2   "LMS_SHA256_H15_W2"
    #define OQS_SIG_STFL_alg_lms_sha256_h15_w4   "LMS_SHA256_H15_W4"
    #define OQS_SIG_STFL_alg_lms_sha256_h15_w8   "LMS_SHA256_H15_W8"
    #define OQS_SIG_STFL_alg_lms_sha256_h20_w1   "LMS_SHA256_H20_W1"
    #define OQS_SIG_STFL_alg_lms_sha256_h20_w2   "LMS_SHA256_H20_W2"
    #define OQS_SIG_STFL_alg_lms_sha256_h20_w4   "LMS_SHA256_H20_W4"
    #define OQS_SIG_STFL_alg_lms_sha256_h20_w8   "LMS_SHA256_H20_W8"
    #define OQS_SIG_STFL_alg_lms_sha256_h25_w1   "LMS_SHA256_H25_W1"
    #define OQS_SIG_STFL_alg_lms_sha256_h25_w2   "LMS_SHA256_H25_W2"
    #define OQS_SIG_STFL_alg_lms_sha256_h25_w4   "LMS_SHA256_H25_W4"
    #define OQS_SIG_STFL_alg_lms_sha256_h25_w8   "LMS_SHA256_H25_W8"
    #define OQS_SIG_STFL_alg_lms_sha256_h5_w8_h5_w8   "LMS_SHA256_H5_W8_H5_W8"
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w4_h5_w8   "LMS_SHA256_H10_W4_H5_W8"
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w8_h5_w8   "LMS_SHA256_H10_W8_H5_W8"
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w2_h10_w2   "LMS_SHA256_H10_W2_H10_W2"
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w4_h10_w4   "LMS_SHA256_H10_W4_H10_W4"
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w8_h10_w8   "LMS_SHA256_H10_W8_H10_W8"
    #define OQS_SIG_STFL_alg_lms_sha256_h15_w8_h5_w8   "LMS_SHA256_H15_W8_H5_W8"
    #define OQS_SIG_STFL_alg_lms_sha256_h15_w8_h10_w8   "LMS_SHA256_H15_W8_H10_W8"
    #define OQS_SIG_STFL_alg_lms_sha256_h15_w8_h15_w8   "LMS_SHA256_H15_W8_H15_W8"
    #define OQS_SIG_STFL_alg_lms_sha256_h20_w8_h5_w8   "LMS_SHA256_H20_W8_H5_W8"
    #define OQS_SIG_STFL_alg_lms_sha256_h20_w8_h10_w8   "LMS_SHA256_H20_W8_H10_W8"
    #define OQS_SIG_STFL_alg_lms_sha256_h20_w8_h15_w8   "LMS_SHA256_H20_W8_H15_W8"
    #define OQS_SIG_STFL_alg_lms_sha256_h20_w8_h20_w8   "LMS_SHA256_H20_W8_H20_W8"
    #define OQS_SIG_STFL_algs_length   70
    #define OQS_SIG_STFL   OQS_SIG
    + + + + + + +

    +Typedefs

    +typedef struct OQS_SIG_STFL_SECRET_KEY OQS_SIG_STFL_SECRET_KEY
     OQS_SIG_STFL_SECRET_KEY object for stateful signature schemes.
    typedef OQS_STATUS(* secure_store_sk) (uint8_t *sk_buf, size_t buf_len, void *context)
    typedef OQS_STATUS(* lock_key) (void *mutex)
    typedef OQS_STATUS(* unlock_key) (void *mutex)
    + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    OQS_API const char * OQS_SIG_STFL_alg_identifier (size_t i)
    OQS_API int OQS_SIG_STFL_alg_count (void)
    OQS_API int OQS_SIG_STFL_alg_is_enabled (const char *method_name)
    OQS_API OQS_SIG_STFLOQS_SIG_STFL_new (const char *method_name)
    OQS_API OQS_STATUS OQS_SIG_STFL_keypair (const OQS_SIG_STFL *sig, uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key)
    OQS_API OQS_STATUS OQS_SIG_STFL_sign (const OQS_SIG_STFL *sig, uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, OQS_SIG_STFL_SECRET_KEY *secret_key)
    OQS_API OQS_STATUS OQS_SIG_STFL_verify (const OQS_SIG_STFL *sig, const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key)
    OQS_API OQS_STATUS OQS_SIG_STFL_sigs_remaining (const OQS_SIG_STFL *sig, unsigned long long *remain, const OQS_SIG_STFL_SECRET_KEY *secret_key)
    OQS_API OQS_STATUS OQS_SIG_STFL_sigs_total (const OQS_SIG_STFL *sig, unsigned long long *max, const OQS_SIG_STFL_SECRET_KEY *secret_key)
    OQS_API void OQS_SIG_STFL_free (OQS_SIG_STFL *sig)
    OQS_API OQS_SIG_STFL_SECRET_KEYOQS_SIG_STFL_SECRET_KEY_new (const char *method_name)
    OQS_API void OQS_SIG_STFL_SECRET_KEY_free (OQS_SIG_STFL_SECRET_KEY *sk)
    OQS_API void OQS_SIG_STFL_SECRET_KEY_SET_lock (OQS_SIG_STFL_SECRET_KEY *sk, lock_key lock)
    OQS_API void OQS_SIG_STFL_SECRET_KEY_SET_unlock (OQS_SIG_STFL_SECRET_KEY *sk, unlock_key unlock)
    OQS_API void OQS_SIG_STFL_SECRET_KEY_SET_mutex (OQS_SIG_STFL_SECRET_KEY *sk, void *mutex)
    OQS_STATUS OQS_SIG_STFL_SECRET_KEY_lock (OQS_SIG_STFL_SECRET_KEY *sk)
    OQS_STATUS OQS_SIG_STFL_SECRET_KEY_unlock (OQS_SIG_STFL_SECRET_KEY *sk)
    OQS_API void OQS_SIG_STFL_SECRET_KEY_SET_store_cb (OQS_SIG_STFL_SECRET_KEY *sk, secure_store_sk store_cb, void *context)
    OQS_API OQS_STATUS OQS_SIG_STFL_SECRET_KEY_serialize (uint8_t **sk_buf_ptr, size_t *sk_buf_len, const OQS_SIG_STFL_SECRET_KEY *sk)
    OQS_API OQS_STATUS OQS_SIG_STFL_SECRET_KEY_deserialize (OQS_SIG_STFL_SECRET_KEY *sk, const uint8_t *sk_buf, size_t sk_buf_len, void *context)
    +

    Detailed Description

    +

    Stateful Signature schemes.

    +

    The file tests/example_sig_stfl.c contains an example on using the OQS_SIG_STFL API.

    +

    SPDX-License-Identifier: MIT

    +

    Macro Definition Documentation

    + +

    ◆ OQS_SIG_STFL

    + +
    +
    + + + + +
    #define OQS_SIG_STFL   OQS_SIG
    +
    +

    Stateful signature scheme object

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h10_w1

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w1   "LMS_SHA256_H10_W1"
    +
    +

    Algorithm identifier for LMS-SHA256_H10_W1

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h10_w2

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w2   "LMS_SHA256_H10_W2"
    +
    +

    Algorithm identifier for LMS-SHA256_H10_W2

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h10_w2_h10_w2

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w2_h10_w2   "LMS_SHA256_H10_W2_H10_W2"
    +
    +

    Algorithm identifier for LMS-SHA256_H10_W2_H10_W2

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h10_w4

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w4   "LMS_SHA256_H10_W4"
    +
    +

    Algorithm identifier for LMS-SHA256_H10_W4

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h10_w4_h10_w4

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w4_h10_w4   "LMS_SHA256_H10_W4_H10_W4"
    +
    +

    Algorithm identifier for LMS-SHA256_H10_W4_H10_W4

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h10_w4_h5_w8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w4_h5_w8   "LMS_SHA256_H10_W4_H5_W8"
    +
    +

    Algorithm identifier for LMS-SHA256_H10_W4_H5_W8

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h10_w8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w8   "LMS_SHA256_H10_W8"
    +
    +

    Algorithm identifier for LMS-SHA256_H10_W8

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h10_w8_h10_w8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w8_h10_w8   "LMS_SHA256_H10_W8_H10_W8"
    +
    +

    Algorithm identifier for LMS-SHA256_H10_W8_H10_W8

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h10_w8_h5_w8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h10_w8_h5_w8   "LMS_SHA256_H10_W8_H5_W8"
    +
    +

    Algorithm identifier for LMS-SHA256_H10_W8_H5_W8

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h15_w1

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h15_w1   "LMS_SHA256_H15_W1"
    +
    +

    Algorithm identifier for LMS-SHA256_H15_W1

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h15_w2

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h15_w2   "LMS_SHA256_H15_W2"
    +
    +

    Algorithm identifier for LMS-SHA256_H15_W2

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h15_w4

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h15_w4   "LMS_SHA256_H15_W4"
    +
    +

    Algorithm identifier for LMS-SHA256_H15_W4

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h15_w8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h15_w8   "LMS_SHA256_H15_W8"
    +
    +

    Algorithm identifier for LMS-SHA256_H15_W8

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h15_w8_h10_w8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h15_w8_h10_w8   "LMS_SHA256_H15_W8_H10_W8"
    +
    +

    Algorithm identifier for LMS-SHA256_H15_W8_H10_W8

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h15_w8_h15_w8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h15_w8_h15_w8   "LMS_SHA256_H15_W8_H15_W8"
    +
    +

    Algorithm identifier for LMS-SHA256_H15_W8_H15_W8

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h15_w8_h5_w8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h15_w8_h5_w8   "LMS_SHA256_H15_W8_H5_W8"
    +
    +

    Algorithm identifier for LMS-SHA256_H15_W8_H5_W8

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h20_w1

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h20_w1   "LMS_SHA256_H20_W1"
    +
    +

    Algorithm identifier for LMS-SHA256_H20_W1

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h20_w2

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h20_w2   "LMS_SHA256_H20_W2"
    +
    +

    Algorithm identifier for LMS-SHA256_H20_W2

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h20_w4

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h20_w4   "LMS_SHA256_H20_W4"
    +
    +

    Algorithm identifier for LMS-SHA256_H20_W4

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h20_w8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h20_w8   "LMS_SHA256_H20_W8"
    +
    +

    Algorithm identifier for LMS-SHA256_H20_W8

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h20_w8_h10_w8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h20_w8_h10_w8   "LMS_SHA256_H20_W8_H10_W8"
    +
    +

    Algorithm identifier for LMS-SHA256_H20_W8_H10_W8

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h20_w8_h15_w8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h20_w8_h15_w8   "LMS_SHA256_H20_W8_H15_W8"
    +
    +

    Algorithm identifier for LMS-SHA256_H20_W8_H15_W8

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h20_w8_h20_w8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h20_w8_h20_w8   "LMS_SHA256_H20_W8_H20_W8"
    +
    +

    Algorithm identifier for LMS-SHA256_H20_W8_H20_W8

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h20_w8_h5_w8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h20_w8_h5_w8   "LMS_SHA256_H20_W8_H5_W8"
    +
    +

    Algorithm identifier for LMS-SHA256_H20_W8_H5_W8

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h25_w1

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h25_w1   "LMS_SHA256_H25_W1"
    +
    +

    Algorithm identifier for LMS-SHA256_H25_W1

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h25_w2

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h25_w2   "LMS_SHA256_H25_W2"
    +
    +

    Algorithm identifier for LMS-SHA256_H25_W2

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h25_w4

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h25_w4   "LMS_SHA256_H25_W4"
    +
    +

    Algorithm identifier for LMS-SHA256_H25_W4

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h25_w8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h25_w8   "LMS_SHA256_H25_W8"
    +
    +

    Algorithm identifier for LMS-SHA256_H25_W8

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h5_w1

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h5_w1   "LMS_SHA256_H5_W1"
    +
    +

    Algorithm identifier for LMS-SHA256_H5_W1

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h5_w2

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h5_w2   "LMS_SHA256_H5_W2"
    +
    +

    Algorithm identifier for LMS-SHA256_H5_W2

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h5_w4

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h5_w4   "LMS_SHA256_H5_W4"
    +
    +

    Algorithm identifier for LMS-SHA256_H5_W4

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h5_w8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h5_w8   "LMS_SHA256_H5_W8"
    +
    +

    Algorithm identifier for LMS-SHA256_H5_W8

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_lms_sha256_h5_w8_h5_w8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_lms_sha256_h5_w8_h5_w8   "LMS_SHA256_H5_W8_H5_W8"
    +
    +

    Algorithm identifier for LMS-SHA256_H5_W8_H5_W8

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_sha256_h10

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_sha256_h10   "XMSS-SHA2_10_256"
    +
    +

    Algorithm identifier for XMSS-SHA2_10_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_sha256_h10_192

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_sha256_h10_192   "XMSS-SHA2_10_192"
    +
    +

    Algorithm identifier for XMSS-SHA2_10_192

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_sha256_h16

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_sha256_h16   "XMSS-SHA2_16_256"
    +
    +

    Algorithm identifier for XMSS-SHA2_16_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_sha256_h16_192

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_sha256_h16_192   "XMSS-SHA2_16_192"
    +
    +

    Algorithm identifier for XMSS-SHA2_16_192

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_sha256_h20

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_sha256_h20   "XMSS-SHA2_20_256"
    +
    +

    Algorithm identifier for XMSS-SHA2_20_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_sha256_h20_192

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_sha256_h20_192   "XMSS-SHA2_20_192"
    +
    +

    Algorithm identifier for XMSS-SHA2_20_192

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_sha512_h10

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_sha512_h10   "XMSS-SHA2_10_512"
    +
    +

    Algorithm identifier for XMSS-SHA2_10_512

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_sha512_h16

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_sha512_h16   "XMSS-SHA2_16_512"
    +
    +

    Algorithm identifier for XMSS-SHA2_16_512

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_sha512_h20

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_sha512_h20   "XMSS-SHA2_20_512"
    +
    +

    Algorithm identifier for XMSS-SHA2_20_512

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_shake128_h10

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_shake128_h10   "XMSS-SHAKE_10_256"
    +
    +

    Algorithm identifier for XMSS-SHAKE_10_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_shake128_h16

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_shake128_h16   "XMSS-SHAKE_16_256"
    +
    +

    Algorithm identifier for XMSS-SHAKE_16_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_shake128_h20

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_shake128_h20   "XMSS-SHAKE_20_256"
    +
    +

    Algorithm identifier for XMSS-SHAKE_20_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_shake256_h10

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_shake256_h10   "XMSS-SHAKE_10_512"
    +
    +

    Algorithm identifier for XMSS-SHAKE_10_512

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_shake256_h10_192

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_shake256_h10_192   "XMSS-SHAKE256_10_192"
    +
    +

    Algorithm identifier for XMSS-SHAKE256_10_192

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_shake256_h10_256

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_shake256_h10_256   "XMSS-SHAKE256_10_256"
    +
    +

    Algorithm identifier for XMSS-SHAKE256_10_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_shake256_h16

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_shake256_h16   "XMSS-SHAKE_16_512"
    +
    +

    Algorithm identifier for XMSS-SHAKE_16_512

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_shake256_h16_192

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_shake256_h16_192   "XMSS-SHAKE256_16_192"
    +
    +

    Algorithm identifier for XMSS-SHAKE256_16_192

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_shake256_h16_256

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_shake256_h16_256   "XMSS-SHAKE256_16_256"
    +
    +

    Algorithm identifier for XMSS-SHAKE256_16_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_shake256_h20

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_shake256_h20   "XMSS-SHAKE_20_512"
    +
    +

    Algorithm identifier for XMSS-SHAKE_20_512

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_shake256_h20_192

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_shake256_h20_192   "XMSS-SHAKE256_20_192"
    +
    +

    Algorithm identifier for XMSS-SHAKE256_20_192

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmss_shake256_h20_256

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmss_shake256_h20_256   "XMSS-SHAKE256_20_256"
    +
    +

    Algorithm identifier for XMSS-SHAKE256_20_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmssmt_sha256_h20_2

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmssmt_sha256_h20_2   "XMSSMT-SHA2_20/2_256"
    +
    +

    Algorithm identifier for XMSSMT-SHA2_20/2_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmssmt_sha256_h20_4

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmssmt_sha256_h20_4   "XMSSMT-SHA2_20/4_256"
    +
    +

    Algorithm identifier for XMSSMT-SHA2_20/4_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmssmt_sha256_h40_2

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmssmt_sha256_h40_2   "XMSSMT-SHA2_40/2_256"
    +
    +

    Algorithm identifier for XMSSMT-SHA2_40/2_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmssmt_sha256_h40_4

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmssmt_sha256_h40_4   "XMSSMT-SHA2_40/4_256"
    +
    +

    Algorithm identifier for XMSSMT-SHA2_40/4_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmssmt_sha256_h40_8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmssmt_sha256_h40_8   "XMSSMT-SHA2_40/8_256"
    +
    +

    Algorithm identifier for XMSSMT-SHA2_40/8_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmssmt_sha256_h60_12

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmssmt_sha256_h60_12   "XMSSMT-SHA2_60/12_256"
    +
    +

    Algorithm identifier for XMSSMT-SHA2_60/12_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmssmt_sha256_h60_3

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmssmt_sha256_h60_3   "XMSSMT-SHA2_60/3_256"
    +
    +

    Algorithm identifier for XMSSMT-SHA2_60/3_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmssmt_sha256_h60_6

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmssmt_sha256_h60_6   "XMSSMT-SHA2_60/6_256"
    +
    +

    Algorithm identifier for XMSSMT-SHA2_60/6_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmssmt_shake128_h20_2

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmssmt_shake128_h20_2   "XMSSMT-SHAKE_20/2_256"
    +
    +

    Algorithm identifier for XMSSMT-SHAKE_20/2_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmssmt_shake128_h20_4

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmssmt_shake128_h20_4   "XMSSMT-SHAKE_20/4_256"
    +
    +

    Algorithm identifier for XMSSMT-SHAKE_20/4_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmssmt_shake128_h40_2

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmssmt_shake128_h40_2   "XMSSMT-SHAKE_40/2_256"
    +
    +

    Algorithm identifier for XMSSMT-SHAKE_40/2_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmssmt_shake128_h40_4

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmssmt_shake128_h40_4   "XMSSMT-SHAKE_40/4_256"
    +
    +

    Algorithm identifier for XMSSMT-SHAKE_40/4_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmssmt_shake128_h40_8

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmssmt_shake128_h40_8   "XMSSMT-SHAKE_40/8_256"
    +
    +

    Algorithm identifier for XMSSMT-SHAKE_40/8_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmssmt_shake128_h60_12

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmssmt_shake128_h60_12   "XMSSMT-SHAKE_60/12_256"
    +
    +

    Algorithm identifier for XMSSMT-SHAKE_60/12_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmssmt_shake128_h60_3

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmssmt_shake128_h60_3   "XMSSMT-SHAKE_60/3_256"
    +
    +

    Algorithm identifier for XMSSMT-SHAKE_60/3_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_xmssmt_shake128_h60_6

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_alg_xmssmt_shake128_h60_6   "XMSSMT-SHAKE_60/6_256"
    +
    +

    Algorithm identifier for XMSSMT-SHAKE_60/6_256

    + +
    +
    + +

    ◆ OQS_SIG_STFL_algs_length

    + +
    +
    + + + + +
    #define OQS_SIG_STFL_algs_length   70
    +
    +

    Total number of stateful variants defined above, used to create the tracking array

    + +
    +
    +

    Typedef Documentation

    + +

    ◆ lock_key

    + +
    +
    + + + + +
    typedef OQS_STATUS(* lock_key) (void *mutex)
    +
    +

    Application provided function to lock secret key object serialize access

    Parameters
    + + +
    [in]mutexpointer to mutex struct return OQS_SUCCESS if successful, otherwise OQS_ERROR
    +
    +
    + +
    +
    + +

    ◆ secure_store_sk

    + +
    +
    + + + + +
    typedef OQS_STATUS(* secure_store_sk) (uint8_t *sk_buf, size_t buf_len, void *context)
    +
    +

    Application provided function to securely store data

    Parameters
    + + + + +
    [in]sk_bufpointer to the data to be saved
    [in]buf_lenlength of the data to be stored
    [out]contextpass back application data related to secret key data storage. return OQS_SUCCESS if successful, otherwise OQS_ERROR
    +
    +
    + +
    +
    + +

    ◆ unlock_key

    + +
    +
    + + + + +
    typedef OQS_STATUS(* unlock_key) (void *mutex)
    +
    +

    Application provided function to unlock secret key object

    Parameters
    + + +
    [in]mutexpointer to mutex struct return OQS_SUCCESS if successful, otherwise OQS_ERROR
    +
    +
    + +
    +
    +

    Function Documentation

    + +

    ◆ OQS_SIG_STFL_alg_count()

    + +
    +
    + + + + + + + +
    OQS_API int OQS_SIG_STFL_alg_count (void )
    +
    +

    Returns the number of stateful signature mechanisms in liboqs. They can be enumerated with OQS_SIG_STFL_alg_identifier.

    +

    Note that some mechanisms may be disabled at compile time.

    +
    Returns
    The number of stateful signature mechanisms.
    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_identifier()

    + +
    +
    + + + + + + + +
    OQS_API const char * OQS_SIG_STFL_alg_identifier (size_t i)
    +
    +

    Returns identifiers for available signature schemes in liboqs. Used with OQS_SIG_STFL_new.

    +

    Note that algorithm identifiers are present in this list even when the algorithm is disabled at compile time.

    +
    Parameters
    + + +
    [in]iIndex of the algorithm identifier to return, 0 <= i < OQS_SIG_algs_length
    +
    +
    +
    Returns
    Algorithm identifier as a string, or NULL.
    + +
    +
    + +

    ◆ OQS_SIG_STFL_alg_is_enabled()

    + +
    +
    + + + + + + + +
    OQS_API int OQS_SIG_STFL_alg_is_enabled (const char * method_name)
    +
    +

    Indicates whether the specified algorithm was enabled at compile-time or not.

    +
    Parameters
    + + +
    [in]method_nameName of the desired algorithm; one of the names in OQS_SIG_STFL_algs.
    +
    +
    +
    Returns
    1 if enabled, 0 if disabled or not found
    + +
    +
    + +

    ◆ OQS_SIG_STFL_free()

    + +
    +
    + + + + + + + +
    OQS_API void OQS_SIG_STFL_free (OQS_SIG_STFL * sig)
    +
    +

    Free an OQS_SIG_STFL object that was constructed by OQS_SIG_STFL_new.

    + +
    +
    + +

    ◆ OQS_SIG_STFL_keypair()

    + +
    +
    + + + + + + + + + + + + + + + + +
    OQS_API OQS_STATUS OQS_SIG_STFL_keypair (const OQS_SIG_STFL * sig,
    uint8_t * public_key,
    OQS_SIG_STFL_SECRET_KEY * secret_key )
    +
    +

    Keypair generation algorithm.

    +

    Caller is responsible for allocating sufficient memory for public_key based on the length_* members in this object or the per-scheme compile-time macros OQS_SIG_STFL_*_length_*. The caller is also responsible for initializing secret_key using the OQS_SIG_STFL_SECRET_KEY(*) function.

    +
    Parameters
    + + + + +
    [in]sigThe OQS_SIG_STFL object representing the signature scheme.
    [out]public_keyThe public key is represented as a byte string.
    [out]secret_keyThe secret key object pointer.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    + +

    ◆ OQS_SIG_STFL_new()

    + +
    +
    + + + + + + + +
    OQS_API OQS_SIG_STFL * OQS_SIG_STFL_new (const char * method_name)
    +
    +

    Constructs an OQS_SIG_STFL object for a particular algorithm.

    +

    Callers should always check whether the return value is NULL, which indicates either than an invalid algorithm name was provided, or that the requested algorithm was disabled at compile-time.

    +
    Parameters
    + + +
    [in]method_nameName of the desired algorithm; one of the names in OQS_SIG_STFL_algs.
    +
    +
    +
    Returns
    An OQS_SIG_STFL for the particular algorithm, or NULL if the algorithm has been disabled at compile-time.
    + +
    +
    + +

    ◆ OQS_SIG_STFL_SECRET_KEY_deserialize()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    OQS_API OQS_STATUS OQS_SIG_STFL_SECRET_KEY_deserialize (OQS_SIG_STFL_SECRET_KEY * sk,
    const uint8_t * sk_buf,
    size_t sk_buf_len,
    void * context )
    +
    +

    Deserialize a byte array into an OQS_SIG_STFL_SECRET_KEY object.

    +

    Transforms a binary representation of a secret key into an OQS_SIG_STFL_SECRET_KEY structure. After deserialization, the secret key object can be used for subsequent cryptographic operations.

    +
    Parameters
    + + + + + +
    [out]skA pointer to the secret key object that will be populated from the binary data.
    [in]sk_bufThe buffer containing the serialized secret key data.
    [in]sk_buf_lenThe length of the binary secret key data in bytes.
    [in]contextApplication-specific data used to maintain context about the secret key.
    +
    +
    +
    Returns
    OQS_SUCCESS if deserialization was successful; otherwise, OQS_ERROR.
    +
    Attention
    The caller is responsible for freeing the sk_buf memory when it is no longer needed.
    + +
    +
    + +

    ◆ OQS_SIG_STFL_SECRET_KEY_free()

    + +
    +
    + + + + + + + +
    OQS_API void OQS_SIG_STFL_SECRET_KEY_free (OQS_SIG_STFL_SECRET_KEY * sk)
    +
    +

    Free an OQS_SIG_STFL_SECRET_KEY object that was constructed by OQS_SECRET_KEY_new.

    +
    Parameters
    + + +
    [in]skThe OQS_SIG_STFL_SECRET_KEY object to free.
    +
    +
    + +
    +
    + +

    ◆ OQS_SIG_STFL_SECRET_KEY_lock()

    + +
    +
    + + + + + + + +
    OQS_STATUS OQS_SIG_STFL_SECRET_KEY_lock (OQS_SIG_STFL_SECRET_KEY * sk)
    +
    +

    Lock the secret key to ensure exclusive access in a concurrent environment.

    +

    If the mutex is not set, this lock operation will fail. This lock operation is essential in multi-threaded or multi-process contexts to prevent simultaneous Signing operations that could compromise the stateful signature security.

    +
    Warning
    If the lock function is set and mutex is not set, this lock operation will fail.
    +
    Parameters
    + + +
    [in]skPointer to the secret key to be locked.
    +
    +
    +
    Returns
    OQS_SUCCESS if the lock is successfully applied; OQS_ERROR otherwise.
    +
    Note
    It's not necessary to use this function in either Keygen or Verifying operations. In a concurrent environment, the user is responsible for locking and unlocking the private key, to make sure that only one thread can access the private key during a Signing operation.
    +
    +If the lock function and mutex are both set, proceed to lock the private key.
    + +
    +
    + +

    ◆ OQS_SIG_STFL_SECRET_KEY_new()

    + +
    +
    + + + + + + + +
    OQS_API OQS_SIG_STFL_SECRET_KEY * OQS_SIG_STFL_SECRET_KEY_new (const char * method_name)
    +
    +

    Construct an OQS_SIG_STFL_SECRET_KEY object for a particular algorithm.

    +

    Callers should always check whether the return value is NULL, which indicates either than an invalid algorithm name was provided, or that the requested algorithm was disabled at compile-time.

    +
    Parameters
    + + +
    [in]method_nameName of the desired algorithm; one of the names in OQS_SIG_STFL_algs.
    +
    +
    +
    Returns
    An OQS_SIG_STFL_SECRET_KEY for the particular algorithm, or NULL if the algorithm has been disabled at compile-time.
    + +
    +
    + +

    ◆ OQS_SIG_STFL_SECRET_KEY_serialize()

    + +
    +
    + + + + + + + + + + + + + + + + +
    OQS_API OQS_STATUS OQS_SIG_STFL_SECRET_KEY_serialize (uint8_t ** sk_buf_ptr,
    size_t * sk_buf_len,
    const OQS_SIG_STFL_SECRET_KEY * sk )
    +
    +

    Serialize the stateful secret key data into a byte array.

    +

    Converts an OQS_SIG_STFL_SECRET_KEY object into a byte array for storage or transmission.

    +
    Parameters
    + + + + +
    [out]sk_buf_ptrPointer to the allocated byte array containing the serialized key.
    [out]sk_buf_lenLength of the serialized key byte array.
    [in]skPointer to the OQS_SIG_STFL_SECRET_KEY object to be serialized.
    +
    +
    +
    Returns
    OQS_SUCCESS on success, or an OQS error code on failure.
    +
    Note
    The function allocates memory for the byte array, and it is the caller's responsibility to free this memory after use.
    + +
    +
    + +

    ◆ OQS_SIG_STFL_SECRET_KEY_SET_lock()

    + +
    +
    + + + + + + + + + + + +
    OQS_API void OQS_SIG_STFL_SECRET_KEY_SET_lock (OQS_SIG_STFL_SECRET_KEY * sk,
    lock_key lock )
    +
    +

    Attach a locking mechanism to a secret key object.

    +

    This allows for proper synchronization in a multi-threaded or multi-process environment, by ensuring that a secret key is not used concurrently by multiple entities, which could otherwise lead to security issues.

    +
    Parameters
    + + + +
    [in]skPointer to the secret key object whose lock function is to be set.
    [in]lockFunction pointer to the locking routine provided by the application.
    +
    +
    +
    Note
    It's not required to set the lock and unlock functions in a single-threaded environment.
    +
    +Once the lock function is set, users must also set the mutex and unlock functions.
    +
    +By default, the internal value of sk->lock is NULL, which does nothing to lock the private key.
    + +
    +
    + +

    ◆ OQS_SIG_STFL_SECRET_KEY_SET_mutex()

    + +
    +
    + + + + + + + + + + + +
    OQS_API void OQS_SIG_STFL_SECRET_KEY_SET_mutex (OQS_SIG_STFL_SECRET_KEY * sk,
    void * mutex )
    +
    +

    Assign a mutex function to handle concurrency control over the secret key.

    +

    This is to ensure that only one process can access or modify the key at any given time.

    +
    Parameters
    + + + +
    [in]skA pointer to the secret key that the mutex functionality will protect.
    [in]mutexA function pointer to the desired concurrency control mechanism.
    +
    +
    +
    Note
    It's not required to set the lock and unlock functions in a single-threaded environment.
    +
    +By default, the internal value of sk->mutex is NULL, it must be set to be used in lock or unlock the private key.
    + +
    +
    + +

    ◆ OQS_SIG_STFL_SECRET_KEY_SET_store_cb()

    + +
    +
    + + + + + + + + + + + + + + + + +
    OQS_API void OQS_SIG_STFL_SECRET_KEY_SET_store_cb (OQS_SIG_STFL_SECRET_KEY * sk,
    secure_store_sk store_cb,
    void * context )
    +
    +

    Set the callback and context for securely storing a stateful secret key.

    +

    This function is designed to be called after a new stateful secret key has been generated. It enables the library to securely store secret key and update it every time a Signing operation occurs. Without properly setting this callback and context, signature generation will not succeed as the updated state of the secret key cannot be preserved.

    +
    Parameters
    + + + + +
    [in]skPointer to the stateful secret key to be managed.
    [in]store_cbCallback function that handles the secure storage of the key.
    [in]contextApplication-specific context that assists in the storage of secret key data. This context is managed by the application, which allocates it, keeps track of it, and deallocates it as necessary.
    +
    +
    + +
    +
    + +

    ◆ OQS_SIG_STFL_SECRET_KEY_SET_unlock()

    + +
    +
    + + + + + + + + + + + +
    OQS_API void OQS_SIG_STFL_SECRET_KEY_SET_unlock (OQS_SIG_STFL_SECRET_KEY * sk,
    unlock_key unlock )
    +
    +

    Attach an unlock mechanism to a secret key object.

    +

    This allows for proper synchronization in a multi-threaded or multi-process environment, by ensuring that a secret key is not used concurrently by multiple entities, which could otherwise lead to security issues.

    +
    Parameters
    + + + +
    [in]skPointer to the secret key object whose unlock function is to be set.
    [in]unlockFunction pointer to the unlock routine provided by the application.
    +
    +
    +
    Note
    It's not required to set the lock and unlock functions in a single-threaded environment.
    +
    +Once the unlock function is set, users must also set the mutex and lock functions.
    +
    +By default, the internal value of sk->unlock is NULL, which does nothing to unlock the private key.
    + +
    +
    + +

    ◆ OQS_SIG_STFL_SECRET_KEY_unlock()

    + +
    +
    + + + + + + + +
    OQS_STATUS OQS_SIG_STFL_SECRET_KEY_unlock (OQS_SIG_STFL_SECRET_KEY * sk)
    +
    +

    Unlock the secret key, making it accessible to other processes.

    +

    This function is crucial in environments where multiple processes need to coordinate access to the secret key, as it allows a process to signal that it has finished using the key, so others can safely use it.

    +
    Warning
    If the unlock function is set and mutex is not set, this unlock operation will fail.
    +
    Parameters
    + + +
    [in]skPointer to the secret key whose lock should be released.
    +
    +
    +
    Returns
    OQS_SUCCESS if the lock was successfully released; otherwise, OQS_ERROR.
    +
    Note
    It's not necessary to use this function in either Keygen or Verifying operations. In a concurrent environment, the user is responsible for locking and unlocking the private key, to make sure that only one thread can access the private key during a Signing operation.
    +
    +If the unlock function and mutex are both set, proceed to unlock the private key.
    + +
    +
    + +

    ◆ OQS_SIG_STFL_sign()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OQS_API OQS_STATUS OQS_SIG_STFL_sign (const OQS_SIG_STFL * sig,
    uint8_t * signature,
    size_t * signature_len,
    const uint8_t * message,
    size_t message_len,
    OQS_SIG_STFL_SECRET_KEY * secret_key )
    +
    +

    Signature generation algorithm.

    +

    For stateful signatures, there is always a limited number of signatures that can be used, The private key signature counter is increased by one once a signature is successfully generated, When the signature counter reaches the maximum number of available signatures, the signature generation always fails.

    +

    Caller is responsible for allocating sufficient memory for signature, based on the length_* members in this object or the per-scheme compile-time macros OQS_SIG_STFL_*_length_*.

    +
    Parameters
    + + + + + + + +
    [in]sigThe OQS_SIG_STFL object representing the signature scheme.
    [out]signatureThe signature on the message is represented as a byte string.
    [out]signature_lenThe length of the signature.
    [in]messageThe message to sign is represented as a byte string.
    [in]message_lenThe length of the message to sign.
    [in]secret_keyThe secret key object pointer.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    +
    Note
    Internally, if lock/unlock functions and mutex are set, it will attempt to lock the private key and unlock the private key after the Signing operation is completed.
    + +
    +
    + +

    ◆ OQS_SIG_STFL_sigs_remaining()

    + +
    +
    + + + + + + + + + + + + + + + + +
    OQS_API OQS_STATUS OQS_SIG_STFL_sigs_remaining (const OQS_SIG_STFL * sig,
    unsigned long long * remain,
    const OQS_SIG_STFL_SECRET_KEY * secret_key )
    +
    +

    Query the number of remaining signatures.

    +

    The remaining signatures are the number of signatures available before the private key runs out of its total signature and expires.

    +
    Parameters
    + + + + +
    [in]sigThe OQS_SIG_STFL object representing the signature scheme.
    [in]remainThe number of remaining signatures.
    [in]secret_keyThe secret key object.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    + +

    ◆ OQS_SIG_STFL_sigs_total()

    + +
    +
    + + + + + + + + + + + + + + + + +
    OQS_API OQS_STATUS OQS_SIG_STFL_sigs_total (const OQS_SIG_STFL * sig,
    unsigned long long * max,
    const OQS_SIG_STFL_SECRET_KEY * secret_key )
    +
    +

    Query the total number of signatures.

    +

    The total number of signatures is the constant number present in how many signatures can be generated from a private key.

    +
    Parameters
    + + + + +
    [in]sigThe OQS_SIG_STFL object representing the signature scheme.
    [out]maxThe number of remaining signatures
    [in]secret_keyThe secret key object.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    + +

    ◆ OQS_SIG_STFL_verify()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OQS_API OQS_STATUS OQS_SIG_STFL_verify (const OQS_SIG_STFL * sig,
    const uint8_t * message,
    size_t message_len,
    const uint8_t * signature,
    size_t signature_len,
    const uint8_t * public_key )
    +
    +

    Signature verification algorithm.

    +
    Parameters
    + + + + + + + +
    [in]sigThe OQS_SIG_STFL object representing the signature scheme.
    [in]messageThe message is represented as a byte string.
    [in]message_lenThe length of the message.
    [in]signatureThe signature on the message is represented as a byte string.
    [in]signature_lenThe length of the signature.
    [in]public_keyThe public key is represented as a byte string.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    +
    + + +
    + + diff --git a/liboqs/api/doxygen/sig__stfl_8h_source.html b/liboqs/api/doxygen/sig__stfl_8h_source.html new file mode 100644 index 0000000..1d7d9f5 --- /dev/null +++ b/liboqs/api/doxygen/sig__stfl_8h_source.html @@ -0,0 +1,377 @@ + + + + + + + +liboqs: src/sig_stfl/sig_stfl.h Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    +
    sig_stfl.h
    +
    +
    +Go to the documentation of this file.
    1
    +
    9
    +
    10#ifndef OQS_SIG_STATEFUL_H
    +
    11#define OQS_SIG_STATEFUL_H
    +
    12
    +
    13#include <stdbool.h>
    +
    14#include <stddef.h>
    +
    15#include <stdint.h>
    +
    16
    +
    17#include <oqs/oqs.h>
    +
    18
    +
    19/*
    +
    20 * Developer's Notes:
    +
    21 * Stateful signatures are based on the one-time use of a secret key. A pool of secret keys is created for this purpose.
    +
    22 * The state of these keys is tracked to ensure that they are used only once to generate a signature.
    +
    23 *
    +
    24 * As such, product-specific environments do play a role in ensuring the safety of the keys.
    +
    25 * Secret keys must be stored securely.
    +
    26 * The key index/counter must be updated after each signature generation.
    +
    27 * The secret key must be protected in a thread-safe manner.
    +
    28 *
    +
    29 * Applications therefore are required to provide environment-specific callback functions to
    +
    30 * - store private key
    +
    31 * - lock/unlock private key
    +
    32 *
    +
    33 * See below for details
    +
    34 * OQS_SIG_STFL_SECRET_KEY_SET_lock
    +
    35 * OQS_SIG_STFL_SECRET_KEY_SET_unlock
    +
    36 * OQS_SIG_STFL_SECRET_KEY_SET_mutex
    +
    37 * OQS_SIG_STFL_SECRET_KEY_SET_store_cb
    +
    38 *
    +
    39 */
    +
    40
    +
    41#if defined(__cplusplus)
    +
    42extern "C"
    +
    43{
    +
    44#endif
    +
    45
    +
    47#define OQS_SIG_STFL_alg_xmss_sha256_h10 "XMSS-SHA2_10_256"
    +
    49#define OQS_SIG_STFL_alg_xmss_sha256_h16 "XMSS-SHA2_16_256"
    +
    51#define OQS_SIG_STFL_alg_xmss_sha256_h20 "XMSS-SHA2_20_256"
    +
    53#define OQS_SIG_STFL_alg_xmss_shake128_h10 "XMSS-SHAKE_10_256"
    +
    55#define OQS_SIG_STFL_alg_xmss_shake128_h16 "XMSS-SHAKE_16_256"
    +
    57#define OQS_SIG_STFL_alg_xmss_shake128_h20 "XMSS-SHAKE_20_256"
    +
    59#define OQS_SIG_STFL_alg_xmss_sha512_h10 "XMSS-SHA2_10_512"
    +
    61#define OQS_SIG_STFL_alg_xmss_sha512_h16 "XMSS-SHA2_16_512"
    +
    63#define OQS_SIG_STFL_alg_xmss_sha512_h20 "XMSS-SHA2_20_512"
    +
    65#define OQS_SIG_STFL_alg_xmss_shake256_h10 "XMSS-SHAKE_10_512"
    +
    67#define OQS_SIG_STFL_alg_xmss_shake256_h16 "XMSS-SHAKE_16_512"
    +
    69#define OQS_SIG_STFL_alg_xmss_shake256_h20 "XMSS-SHAKE_20_512"
    +
    71#define OQS_SIG_STFL_alg_xmss_sha256_h10_192 "XMSS-SHA2_10_192"
    +
    73#define OQS_SIG_STFL_alg_xmss_sha256_h16_192 "XMSS-SHA2_16_192"
    +
    75#define OQS_SIG_STFL_alg_xmss_sha256_h20_192 "XMSS-SHA2_20_192"
    +
    77#define OQS_SIG_STFL_alg_xmss_shake256_h10_192 "XMSS-SHAKE256_10_192"
    +
    79#define OQS_SIG_STFL_alg_xmss_shake256_h16_192 "XMSS-SHAKE256_16_192"
    +
    81#define OQS_SIG_STFL_alg_xmss_shake256_h20_192 "XMSS-SHAKE256_20_192"
    +
    83#define OQS_SIG_STFL_alg_xmss_shake256_h10_256 "XMSS-SHAKE256_10_256"
    +
    85#define OQS_SIG_STFL_alg_xmss_shake256_h16_256 "XMSS-SHAKE256_16_256"
    +
    87#define OQS_SIG_STFL_alg_xmss_shake256_h20_256 "XMSS-SHAKE256_20_256"
    +
    88
    +
    90#define OQS_SIG_STFL_alg_xmssmt_sha256_h20_2 "XMSSMT-SHA2_20/2_256"
    +
    92#define OQS_SIG_STFL_alg_xmssmt_sha256_h20_4 "XMSSMT-SHA2_20/4_256"
    +
    94#define OQS_SIG_STFL_alg_xmssmt_sha256_h40_2 "XMSSMT-SHA2_40/2_256"
    +
    96#define OQS_SIG_STFL_alg_xmssmt_sha256_h40_4 "XMSSMT-SHA2_40/4_256"
    +
    98#define OQS_SIG_STFL_alg_xmssmt_sha256_h40_8 "XMSSMT-SHA2_40/8_256"
    +
    100#define OQS_SIG_STFL_alg_xmssmt_sha256_h60_3 "XMSSMT-SHA2_60/3_256"
    +
    102#define OQS_SIG_STFL_alg_xmssmt_sha256_h60_6 "XMSSMT-SHA2_60/6_256"
    +
    104#define OQS_SIG_STFL_alg_xmssmt_sha256_h60_12 "XMSSMT-SHA2_60/12_256"
    +
    106#define OQS_SIG_STFL_alg_xmssmt_shake128_h20_2 "XMSSMT-SHAKE_20/2_256"
    +
    108#define OQS_SIG_STFL_alg_xmssmt_shake128_h20_4 "XMSSMT-SHAKE_20/4_256"
    +
    110#define OQS_SIG_STFL_alg_xmssmt_shake128_h40_2 "XMSSMT-SHAKE_40/2_256"
    +
    112#define OQS_SIG_STFL_alg_xmssmt_shake128_h40_4 "XMSSMT-SHAKE_40/4_256"
    +
    114#define OQS_SIG_STFL_alg_xmssmt_shake128_h40_8 "XMSSMT-SHAKE_40/8_256"
    +
    116#define OQS_SIG_STFL_alg_xmssmt_shake128_h60_3 "XMSSMT-SHAKE_60/3_256"
    +
    118#define OQS_SIG_STFL_alg_xmssmt_shake128_h60_6 "XMSSMT-SHAKE_60/6_256"
    +
    120#define OQS_SIG_STFL_alg_xmssmt_shake128_h60_12 "XMSSMT-SHAKE_60/12_256"
    +
    121
    +
    122/* Defined LMS parameter identifiers */
    +
    124#define OQS_SIG_STFL_alg_lms_sha256_h5_w1 "LMS_SHA256_H5_W1" //"5/1"
    +
    126#define OQS_SIG_STFL_alg_lms_sha256_h5_w2 "LMS_SHA256_H5_W2" //"5/2"
    +
    128#define OQS_SIG_STFL_alg_lms_sha256_h5_w4 "LMS_SHA256_H5_W4" //"5/4"
    +
    130#define OQS_SIG_STFL_alg_lms_sha256_h5_w8 "LMS_SHA256_H5_W8" //"5/8"
    +
    131
    +
    133#define OQS_SIG_STFL_alg_lms_sha256_h10_w1 "LMS_SHA256_H10_W1" //"10/1"
    +
    135#define OQS_SIG_STFL_alg_lms_sha256_h10_w2 "LMS_SHA256_H10_W2" //"10/2"
    +
    137#define OQS_SIG_STFL_alg_lms_sha256_h10_w4 "LMS_SHA256_H10_W4" //"10/4"
    +
    139#define OQS_SIG_STFL_alg_lms_sha256_h10_w8 "LMS_SHA256_H10_W8" //"10/8"
    +
    140
    +
    142#define OQS_SIG_STFL_alg_lms_sha256_h15_w1 "LMS_SHA256_H15_W1" //"15/1"
    +
    144#define OQS_SIG_STFL_alg_lms_sha256_h15_w2 "LMS_SHA256_H15_W2" //"15/2"
    +
    146#define OQS_SIG_STFL_alg_lms_sha256_h15_w4 "LMS_SHA256_H15_W4" //"15/4"
    +
    148#define OQS_SIG_STFL_alg_lms_sha256_h15_w8 "LMS_SHA256_H15_W8" //"15/8"
    +
    149
    +
    151#define OQS_SIG_STFL_alg_lms_sha256_h20_w1 "LMS_SHA256_H20_W1" //"20/1"
    +
    153#define OQS_SIG_STFL_alg_lms_sha256_h20_w2 "LMS_SHA256_H20_W2" //"20/2"
    +
    155#define OQS_SIG_STFL_alg_lms_sha256_h20_w4 "LMS_SHA256_H20_W4" //"20/4"
    +
    157#define OQS_SIG_STFL_alg_lms_sha256_h20_w8 "LMS_SHA256_H20_W8" //"20/8"
    +
    158
    +
    160#define OQS_SIG_STFL_alg_lms_sha256_h25_w1 "LMS_SHA256_H25_W1" //"25/1"
    +
    162#define OQS_SIG_STFL_alg_lms_sha256_h25_w2 "LMS_SHA256_H25_W2" //"25/2"
    +
    164#define OQS_SIG_STFL_alg_lms_sha256_h25_w4 "LMS_SHA256_H25_W4" //"25/4"
    +
    166#define OQS_SIG_STFL_alg_lms_sha256_h25_w8 "LMS_SHA256_H25_W8" //"25/8"
    +
    167
    +
    168// 2-Level LMS
    +
    170#define OQS_SIG_STFL_alg_lms_sha256_h5_w8_h5_w8 "LMS_SHA256_H5_W8_H5_W8" //"5/8, 5/8"
    +
    171
    +
    172// RFC 6554
    +
    174#define OQS_SIG_STFL_alg_lms_sha256_h10_w4_h5_w8 "LMS_SHA256_H10_W4_H5_W8" //"10/4, 5/8"
    +
    175
    +
    177#define OQS_SIG_STFL_alg_lms_sha256_h10_w8_h5_w8 "LMS_SHA256_H10_W8_H5_W8" //"10/8, 5/8"
    +
    179#define OQS_SIG_STFL_alg_lms_sha256_h10_w2_h10_w2 "LMS_SHA256_H10_W2_H10_W2" //"10/2, 10/2"
    +
    181#define OQS_SIG_STFL_alg_lms_sha256_h10_w4_h10_w4 "LMS_SHA256_H10_W4_H10_W4" //"10/4, 10/4"
    +
    183#define OQS_SIG_STFL_alg_lms_sha256_h10_w8_h10_w8 "LMS_SHA256_H10_W8_H10_W8" //"10/8, 10/8"
    +
    184
    +
    186#define OQS_SIG_STFL_alg_lms_sha256_h15_w8_h5_w8 "LMS_SHA256_H15_W8_H5_W8" //"15/8, 5/8"
    +
    188#define OQS_SIG_STFL_alg_lms_sha256_h15_w8_h10_w8 "LMS_SHA256_H15_W8_H10_W8" //"15/8, 10/8"
    +
    190#define OQS_SIG_STFL_alg_lms_sha256_h15_w8_h15_w8 "LMS_SHA256_H15_W8_H15_W8" //"15/8, 15/8"
    +
    191
    +
    193#define OQS_SIG_STFL_alg_lms_sha256_h20_w8_h5_w8 "LMS_SHA256_H20_W8_H5_W8" //"20/8, 5/8"
    +
    195#define OQS_SIG_STFL_alg_lms_sha256_h20_w8_h10_w8 "LMS_SHA256_H20_W8_H10_W8" //"20/8, 10/8"
    +
    197#define OQS_SIG_STFL_alg_lms_sha256_h20_w8_h15_w8 "LMS_SHA256_H20_W8_H15_W8" //"20/8, 15/8"
    +
    199#define OQS_SIG_STFL_alg_lms_sha256_h20_w8_h20_w8 "LMS_SHA256_H20_W8_H20_W8" //"20/8, 20/8"
    +
    200
    +
    202#define OQS_SIG_STFL_algs_length 70
    +
    203
    + +
    205
    +
    213typedef OQS_STATUS (*secure_store_sk)(uint8_t *sk_buf, size_t buf_len, void *context);
    +
    214
    +
    220typedef OQS_STATUS (*lock_key)(void *mutex);
    +
    221
    +
    227typedef OQS_STATUS (*unlock_key)(void *mutex);
    +
    228
    + +
    239
    + +
    249
    +
    256OQS_API int OQS_SIG_STFL_alg_is_enabled(const char *method_name);
    +
    257
    +
    258#ifndef OQS_ALLOW_STFL_KEY_AND_SIG_GEN
    +
    259
    +
    261typedef struct OQS_SIG OQS_SIG;
    +
    262
    +
    264#define OQS_SIG_STFL OQS_SIG
    +
    265#else
    +
    266
    +
    268typedef struct OQS_SIG_STFL {
    +
    269
    +
    274 uint32_t oid;
    +
    275
    +
    277 const char *method_name;
    +
    278
    +
    285 const char *alg_version;
    +
    286
    +
    288 bool euf_cma;
    +
    289
    +
    291 bool suf_cma;
    +
    292
    +
    294 size_t length_public_key;
    +
    296 size_t length_secret_key;
    +
    298 size_t length_signature;
    +
    299
    +
    311 OQS_STATUS (*keypair)(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key);
    +
    312
    +
    334 OQS_STATUS (*sign)(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, OQS_SIG_STFL_SECRET_KEY *secret_key);
    +
    335
    +
    346 OQS_STATUS (*verify)(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key);
    +
    347
    +
    357 OQS_STATUS (*sigs_remaining)(unsigned long long *remain, const OQS_SIG_STFL_SECRET_KEY *secret_key);
    +
    358
    +
    368 OQS_STATUS (*sigs_total)(unsigned long long *total, const OQS_SIG_STFL_SECRET_KEY *secret_key);
    +
    369
    + +
    371#endif //OQS_ALLOW_STFL_KEY_AND_SIG_GEN
    +
    372
    +
    376
    +
    + +
    378
    + +
    381
    + +
    384
    +
    386 void *mutex;
    +
    387
    +
    389 void *context;
    +
    390
    +
    406 OQS_STATUS (*serialize_key)(uint8_t **sk_buf_ptr, size_t *sk_buf_len, const OQS_SIG_STFL_SECRET_KEY *sk);
    +
    407
    +
    423 OQS_STATUS (*deserialize_key)(OQS_SIG_STFL_SECRET_KEY *sk, const uint8_t *sk_buf, const size_t sk_buf_len, void *context);
    +
    424
    + +
    432
    + +
    440
    +
    454 OQS_STATUS (*secure_store_scrt_key)(uint8_t *sk_buf, size_t sk_buf_len, void *context);
    +
    455
    + +
    463
    + + +
    +
    488
    +
    498OQS_API OQS_SIG_STFL *OQS_SIG_STFL_new(const char *method_name);
    +
    499
    +
    513OQS_API OQS_STATUS OQS_SIG_STFL_keypair(const OQS_SIG_STFL *sig, uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key);
    +
    514
    +
    537OQS_API OQS_STATUS OQS_SIG_STFL_sign(const OQS_SIG_STFL *sig, uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, OQS_SIG_STFL_SECRET_KEY *secret_key);
    +
    538
    +
    550OQS_API OQS_STATUS OQS_SIG_STFL_verify(const OQS_SIG_STFL *sig, const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key);
    +
    551
    +
    562OQS_API OQS_STATUS OQS_SIG_STFL_sigs_remaining(const OQS_SIG_STFL *sig, unsigned long long *remain, const OQS_SIG_STFL_SECRET_KEY *secret_key);
    +
    563
    +
    574OQS_API OQS_STATUS OQS_SIG_STFL_sigs_total(const OQS_SIG_STFL *sig, unsigned long long *max, const OQS_SIG_STFL_SECRET_KEY *secret_key);
    +
    575
    + +
    581
    + +
    592
    + +
    599
    + +
    616
    + +
    633
    + +
    647
    + +
    667
    + +
    687
    + +
    704
    +
    717OQS_API OQS_STATUS OQS_SIG_STFL_SECRET_KEY_serialize(uint8_t **sk_buf_ptr, size_t *sk_buf_len, const OQS_SIG_STFL_SECRET_KEY *sk);
    +
    718
    +
    733OQS_API OQS_STATUS OQS_SIG_STFL_SECRET_KEY_deserialize(OQS_SIG_STFL_SECRET_KEY *sk, const uint8_t *sk_buf, size_t sk_buf_len, void *context);
    +
    734
    +
    735#if defined(__cplusplus)
    +
    736// extern "C"
    +
    737}
    +
    738#endif
    +
    739
    +
    740#endif /* OQS_SIG_STATEFUL_H */
    +
    #define OQS_API
    Definition common.h:94
    +
    OQS_STATUS
    Definition common.h:116
    +
    OQS_API OQS_SIG_STFL_SECRET_KEY * OQS_SIG_STFL_SECRET_KEY_new(const char *method_name)
    +
    OQS_STATUS(* secure_store_sk)(uint8_t *sk_buf, size_t buf_len, void *context)
    Definition sig_stfl.h:213
    +
    OQS_API void OQS_SIG_STFL_free(OQS_SIG_STFL *sig)
    +
    OQS_STATUS OQS_SIG_STFL_SECRET_KEY_lock(OQS_SIG_STFL_SECRET_KEY *sk)
    +
    OQS_API OQS_STATUS OQS_SIG_STFL_keypair(const OQS_SIG_STFL *sig, uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key)
    +
    OQS_API OQS_SIG_STFL * OQS_SIG_STFL_new(const char *method_name)
    +
    OQS_API void OQS_SIG_STFL_SECRET_KEY_SET_unlock(OQS_SIG_STFL_SECRET_KEY *sk, unlock_key unlock)
    +
    OQS_API void OQS_SIG_STFL_SECRET_KEY_SET_mutex(OQS_SIG_STFL_SECRET_KEY *sk, void *mutex)
    +
    OQS_API OQS_STATUS OQS_SIG_STFL_sigs_remaining(const OQS_SIG_STFL *sig, unsigned long long *remain, const OQS_SIG_STFL_SECRET_KEY *secret_key)
    +
    OQS_API int OQS_SIG_STFL_alg_is_enabled(const char *method_name)
    +
    OQS_API void OQS_SIG_STFL_SECRET_KEY_SET_lock(OQS_SIG_STFL_SECRET_KEY *sk, lock_key lock)
    +
    OQS_STATUS(* unlock_key)(void *mutex)
    Definition sig_stfl.h:227
    +
    OQS_API OQS_STATUS OQS_SIG_STFL_SECRET_KEY_deserialize(OQS_SIG_STFL_SECRET_KEY *sk, const uint8_t *sk_buf, size_t sk_buf_len, void *context)
    +
    OQS_API void OQS_SIG_STFL_SECRET_KEY_SET_store_cb(OQS_SIG_STFL_SECRET_KEY *sk, secure_store_sk store_cb, void *context)
    +
    OQS_API OQS_STATUS OQS_SIG_STFL_sigs_total(const OQS_SIG_STFL *sig, unsigned long long *max, const OQS_SIG_STFL_SECRET_KEY *secret_key)
    +
    OQS_API void OQS_SIG_STFL_SECRET_KEY_free(OQS_SIG_STFL_SECRET_KEY *sk)
    +
    OQS_API OQS_STATUS OQS_SIG_STFL_SECRET_KEY_serialize(uint8_t **sk_buf_ptr, size_t *sk_buf_len, const OQS_SIG_STFL_SECRET_KEY *sk)
    +
    OQS_STATUS(* lock_key)(void *mutex)
    Definition sig_stfl.h:220
    +
    OQS_API int OQS_SIG_STFL_alg_count(void)
    +
    OQS_API const char * OQS_SIG_STFL_alg_identifier(size_t i)
    +
    #define OQS_SIG_STFL
    Definition sig_stfl.h:264
    +
    OQS_API OQS_STATUS OQS_SIG_STFL_sign(const OQS_SIG_STFL *sig, uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, OQS_SIG_STFL_SECRET_KEY *secret_key)
    +
    OQS_API OQS_STATUS OQS_SIG_STFL_verify(const OQS_SIG_STFL *sig, const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key)
    +
    OQS_STATUS OQS_SIG_STFL_SECRET_KEY_unlock(OQS_SIG_STFL_SECRET_KEY *sk)
    +
    OQS_SIG_STFL_SECRET_KEY object for stateful signature schemes.
    Definition sig_stfl.h:377
    +
    OQS_STATUS(* unlock_key)(void *mutex)
    Definition sig_stfl.h:439
    +
    OQS_STATUS(* lock_key)(void *mutex)
    Definition sig_stfl.h:431
    +
    size_t length_secret_key
    Definition sig_stfl.h:380
    +
    OQS_STATUS(* deserialize_key)(OQS_SIG_STFL_SECRET_KEY *sk, const uint8_t *sk_buf, const size_t sk_buf_len, void *context)
    Definition sig_stfl.h:423
    +
    void * mutex
    Definition sig_stfl.h:386
    +
    void * secret_key_data
    Definition sig_stfl.h:383
    +
    void(* set_scrt_key_store_cb)(OQS_SIG_STFL_SECRET_KEY *sk, secure_store_sk store_cb, void *context)
    Definition sig_stfl.h:486
    +
    OQS_STATUS(* serialize_key)(uint8_t **sk_buf_ptr, size_t *sk_buf_len, const OQS_SIG_STFL_SECRET_KEY *sk)
    Definition sig_stfl.h:406
    +
    void(* free_key)(OQS_SIG_STFL_SECRET_KEY *sk)
    Definition sig_stfl.h:462
    +
    void * context
    Definition sig_stfl.h:389
    +
    OQS_STATUS(* secure_store_scrt_key)(uint8_t *sk_buf, size_t sk_buf_len, void *context)
    Definition sig_stfl.h:454
    +
    Definition sig.h:524
    +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___a_e_s__callbacks.html b/liboqs/api/doxygen/struct_o_q_s___a_e_s__callbacks.html new file mode 100644 index 0000000..1cac090 --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___a_e_s__callbacks.html @@ -0,0 +1,377 @@ + + + + + + + +liboqs: OQS_AES_callbacks Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_AES_callbacks Struct Reference
    +
    +
    + +

    #include <aes_ops.h>

    + + + + + + + + + + + + + + + + + + + +

    +Data Fields

    void(* AES128_ECB_load_schedule )(const uint8_t *key, void **ctx)
    void(* AES128_CTR_inc_init )(const uint8_t *key, void **ctx)
    void(* AES128_CTR_inc_iv )(const uint8_t *iv, size_t iv_len, void *ctx)
    void(* AES128_CTR_inc_ivu64 )(uint64_t iv, void *ctx)
    void(* AES128_free_schedule )(void *ctx)
    void(* AES128_ECB_enc )(const uint8_t *plaintext, const size_t plaintext_len, const uint8_t *key, uint8_t *ciphertext)
    void(* AES128_ECB_enc_sch )(const uint8_t *plaintext, const size_t plaintext_len, const void *schedule, uint8_t *ciphertext)
    void(* AES128_CTR_inc_stream_iv )(const uint8_t *iv, size_t iv_len, const void *ctx, uint8_t *out, size_t out_len)
    void(* AES256_ECB_load_schedule )(const uint8_t *key, void **ctx)
    void(* AES256_CTR_inc_init )(const uint8_t *key, void **ctx)
    void(* AES256_CTR_inc_iv )(const uint8_t *iv, size_t iv_len, void *ctx)
    void(* AES256_CTR_inc_ivu64 )(uint64_t iv, void *ctx)
    void(* AES256_free_schedule )(void *ctx)
    void(* AES256_ECB_enc )(const uint8_t *plaintext, const size_t plaintext_len, const uint8_t *key, uint8_t *ciphertext)
    void(* AES256_ECB_enc_sch )(const uint8_t *plaintext, const size_t plaintext_len, const void *schedule, uint8_t *ciphertext)
    void(* AES256_CTR_inc_stream_iv )(const uint8_t *iv, size_t iv_len, const void *ctx, uint8_t *out, size_t out_len)
    void(* AES256_CTR_inc_stream_blks )(void *ctx, uint8_t *out, size_t out_blks)
    +

    Detailed Description

    +

    Data structure implemented by cryptographic provider for AES operations.

    +

    Field Documentation

    + +

    ◆ AES128_CTR_inc_init

    + +
    +
    + + + + +
    void(* OQS_AES_callbacks::AES128_CTR_inc_init) (const uint8_t *key, void **ctx)
    +
    +

    Implementation of function OQS_AES256_CTR_inc_init.

    + +
    +
    + +

    ◆ AES128_CTR_inc_iv

    + +
    +
    + + + + +
    void(* OQS_AES_callbacks::AES128_CTR_inc_iv) (const uint8_t *iv, size_t iv_len, void *ctx)
    +
    +

    Implementation of function OQS_AES256_CTR_inc_iv.

    + +
    +
    + +

    ◆ AES128_CTR_inc_ivu64

    + +
    +
    + + + + +
    void(* OQS_AES_callbacks::AES128_CTR_inc_ivu64) (uint64_t iv, void *ctx)
    +
    +

    Implementation of function OQS_AES256_CTR_inc_ivu64.

    + +
    +
    + +

    ◆ AES128_CTR_inc_stream_iv

    + +
    +
    + + + + +
    void(* OQS_AES_callbacks::AES128_CTR_inc_stream_iv) (const uint8_t *iv, size_t iv_len, const void *ctx, uint8_t *out, size_t out_len)
    +
    +

    Implementation of function OQS_AES128_CTR_inc_stream_iv.

    + +
    +
    + +

    ◆ AES128_ECB_enc

    + +
    +
    + + + + +
    void(* OQS_AES_callbacks::AES128_ECB_enc) (const uint8_t *plaintext, const size_t plaintext_len, const uint8_t *key, uint8_t *ciphertext)
    +
    +

    Implementation of function OQS_AES128_ECB_enc.

    + +
    +
    + +

    ◆ AES128_ECB_enc_sch

    + +
    +
    + + + + +
    void(* OQS_AES_callbacks::AES128_ECB_enc_sch) (const uint8_t *plaintext, const size_t plaintext_len, const void *schedule, uint8_t *ciphertext)
    +
    +

    Implementation of function OQS_AES128_ECB_enc_sch.

    + +
    +
    + +

    ◆ AES128_ECB_load_schedule

    + +
    +
    + + + + +
    void(* OQS_AES_callbacks::AES128_ECB_load_schedule) (const uint8_t *key, void **ctx)
    +
    +

    Implementation of function OQS_AES128_ECB_load_schedule.

    + +
    +
    + +

    ◆ AES128_free_schedule

    + +
    +
    + + + + +
    void(* OQS_AES_callbacks::AES128_free_schedule) (void *ctx)
    +
    +

    Implementation of function OQS_AES128_free_schedule.

    + +
    +
    + +

    ◆ AES256_CTR_inc_init

    + +
    +
    + + + + +
    void(* OQS_AES_callbacks::AES256_CTR_inc_init) (const uint8_t *key, void **ctx)
    +
    +

    Implementation of function OQS_AES256_CTR_inc_init.

    + +
    +
    + +

    ◆ AES256_CTR_inc_iv

    + +
    +
    + + + + +
    void(* OQS_AES_callbacks::AES256_CTR_inc_iv) (const uint8_t *iv, size_t iv_len, void *ctx)
    +
    +

    Implementation of function OQS_AES256_CTR_inc_iv.

    + +
    +
    + +

    ◆ AES256_CTR_inc_ivu64

    + +
    +
    + + + + +
    void(* OQS_AES_callbacks::AES256_CTR_inc_ivu64) (uint64_t iv, void *ctx)
    +
    +

    Implementation of function OQS_AES256_CTR_inc_ivu64.

    + +
    +
    + +

    ◆ AES256_CTR_inc_stream_blks

    + +
    +
    + + + + +
    void(* OQS_AES_callbacks::AES256_CTR_inc_stream_blks) (void *ctx, uint8_t *out, size_t out_blks)
    +
    +

    Implementation of function OQS_AES256_CTR_inc_stream_blks.

    + +
    +
    + +

    ◆ AES256_CTR_inc_stream_iv

    + +
    +
    + + + + +
    void(* OQS_AES_callbacks::AES256_CTR_inc_stream_iv) (const uint8_t *iv, size_t iv_len, const void *ctx, uint8_t *out, size_t out_len)
    +
    +

    Implementation of function OQS_AES256_CTR_inc_stream_iv.

    + +
    +
    + +

    ◆ AES256_ECB_enc

    + +
    +
    + + + + +
    void(* OQS_AES_callbacks::AES256_ECB_enc) (const uint8_t *plaintext, const size_t plaintext_len, const uint8_t *key, uint8_t *ciphertext)
    +
    +

    Implementation of function OQS_AES256_ECB_enc.

    + +
    +
    + +

    ◆ AES256_ECB_enc_sch

    + +
    +
    + + + + +
    void(* OQS_AES_callbacks::AES256_ECB_enc_sch) (const uint8_t *plaintext, const size_t plaintext_len, const void *schedule, uint8_t *ciphertext)
    +
    +

    Implementation of function OQS_AES256_ECB_enc_sch.

    + +
    +
    + +

    ◆ AES256_ECB_load_schedule

    + +
    +
    + + + + +
    void(* OQS_AES_callbacks::AES256_ECB_load_schedule) (const uint8_t *key, void **ctx)
    +
    +

    Implementation of function OQS_AES256_ECB_load_schedule.

    + +
    +
    + +

    ◆ AES256_free_schedule

    + +
    +
    + + + + +
    void(* OQS_AES_callbacks::AES256_free_schedule) (void *ctx)
    +
    +

    Implementation of function OQS_AES256_free_schedule.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___k_e_m.html b/liboqs/api/doxygen/struct_o_q_s___k_e_m.html new file mode 100644 index 0000000..9298a2c --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___k_e_m.html @@ -0,0 +1,396 @@ + + + + + + + +liboqs: OQS_KEM Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_KEM Struct Reference
    +
    +
    + +

    #include <kem.h>

    + + + + + + + + + + + + + + + + + +

    +Data Fields

    const char * method_name
    const char * alg_version
    uint8_t claimed_nist_level
    bool ind_cca
    size_t length_public_key
    size_t length_secret_key
    size_t length_ciphertext
    size_t length_shared_secret
    size_t length_keypair_seed
    size_t length_encaps_seed
    OQS_STATUS(* keypair_derand )(uint8_t *public_key, uint8_t *secret_key, const uint8_t *seed)
    OQS_STATUS(* keypair )(uint8_t *public_key, uint8_t *secret_key)
    OQS_STATUS(* encaps_derand )(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key, const uint8_t *seed)
    OQS_STATUS(* encaps )(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key)
    OQS_STATUS(* decaps )(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key)
    +

    Detailed Description

    +

    Key encapsulation mechanism object

    +

    Field Documentation

    + +

    ◆ alg_version

    + +
    +
    + + + + +
    const char* OQS_KEM::alg_version
    +
    +

    Printable string representing the version of the cryptographic algorithm.

    +

    Implementations with the same method_name and same alg_version will be interoperable. See README.md for information about algorithm compatibility.

    + +
    +
    + +

    ◆ claimed_nist_level

    + +
    +
    + + + + +
    uint8_t OQS_KEM::claimed_nist_level
    +
    +

    The NIST security level (1, 2, 3, 4, 5) claimed in this algorithm's original NIST submission.

    + +
    +
    + +

    ◆ decaps

    + +
    +
    + + + + +
    OQS_STATUS(* OQS_KEM::decaps) (uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key)
    +
    +

    Decapsulation algorithm.

    +

    Caller is responsible for allocating sufficient memory for shared_secret, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

    +
    Parameters
    + + + + +
    [out]shared_secretThe shared secret represented as a byte string.
    [in]ciphertextThe ciphertext (encapsulation) represented as a byte string.
    [in]secret_keyThe secret key represented as a byte string.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    + +

    ◆ encaps

    + +
    +
    + + + + +
    OQS_STATUS(* OQS_KEM::encaps) (uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key)
    +
    +

    Encapsulation algorithm.

    +

    Caller is responsible for allocating sufficient memory for ciphertext and shared_secret, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

    +
    Parameters
    + + + + +
    [out]ciphertextThe ciphertext (encapsulation) represented as a byte string.
    [out]shared_secretThe shared secret represented as a byte string.
    [in]public_keyThe public key represented as a byte string.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    + +

    ◆ encaps_derand

    + +
    +
    + + + + +
    OQS_STATUS(* OQS_KEM::encaps_derand) (uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key, const uint8_t *seed)
    +
    +

    Derandomized encapsulation algorithm.

    +

    Caller is responsible for allocating sufficient memory for ciphertext and shared_secret, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

    +
    Parameters
    + + + + + +
    [out]ciphertextThe ciphertext (encapsulation) represented as a byte string.
    [out]shared_secretThe shared secret represented as a byte string.
    [in]public_keyThe public key represented as a byte string.
    [in]seedThe input randomness represented as a byte string.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    + +

    ◆ ind_cca

    + +
    +
    + + + + +
    bool OQS_KEM::ind_cca
    +
    +

    Whether the KEM offers IND-CCA security (TRUE) or IND-CPA security (FALSE).

    + +
    +
    + +

    ◆ keypair

    + +
    +
    + + + + +
    OQS_STATUS(* OQS_KEM::keypair) (uint8_t *public_key, uint8_t *secret_key)
    +
    +

    Keypair generation algorithm.

    +

    Caller is responsible for allocating sufficient memory for public_key and secret_key, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

    +
    Parameters
    + + + +
    [out]public_keyThe public key represented as a byte string.
    [out]secret_keyThe secret key represented as a byte string.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    + +

    ◆ keypair_derand

    + +
    +
    + + + + +
    OQS_STATUS(* OQS_KEM::keypair_derand) (uint8_t *public_key, uint8_t *secret_key, const uint8_t *seed)
    +
    +

    Derandomized keypair generation algorithm.

    +

    Caller is responsible for allocating sufficient memory for public_key and secret_key, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

    +
    Parameters
    + + + + +
    [out]public_keyThe public key represented as a byte string.
    [out]secret_keyThe secret key represented as a byte string.
    [in]seedThe input randomness represented as a byte string.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    + +

    ◆ length_ciphertext

    + +
    +
    + + + + +
    size_t OQS_KEM::length_ciphertext
    +
    +

    The length, in bytes, of ciphertexts for this KEM.

    + +
    +
    + +

    ◆ length_encaps_seed

    + +
    +
    + + + + +
    size_t OQS_KEM::length_encaps_seed
    +
    +

    The length, in bytes, of seeds for derandomized encaps generation for this KEM.

    + +
    +
    + +

    ◆ length_keypair_seed

    + +
    +
    + + + + +
    size_t OQS_KEM::length_keypair_seed
    +
    +

    The length, in bytes, of seeds for derandomized keypair generation for this KEM.

    + +
    +
    + +

    ◆ length_public_key

    + +
    +
    + + + + +
    size_t OQS_KEM::length_public_key
    +
    +

    The length, in bytes, of public keys for this KEM.

    + +
    +
    + +

    ◆ length_secret_key

    + +
    +
    + + + + +
    size_t OQS_KEM::length_secret_key
    +
    +

    The length, in bytes, of secret keys for this KEM.

    + +
    +
    + +

    ◆ length_shared_secret

    + +
    +
    + + + + +
    size_t OQS_KEM::length_shared_secret
    +
    +

    The length, in bytes, of shared secrets for this KEM.

    + +
    +
    + +

    ◆ method_name

    + +
    +
    + + + + +
    const char* OQS_KEM::method_name
    +
    +

    Printable string representing the name of the key encapsulation mechanism.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___s_h_a2__callbacks.html b/liboqs/api/doxygen/struct_o_q_s___s_h_a2__callbacks.html new file mode 100644 index 0000000..4f813a0 --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___s_h_a2__callbacks.html @@ -0,0 +1,409 @@ + + + + + + + +liboqs: OQS_SHA2_callbacks Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_SHA2_callbacks Struct Reference
    +
    +
    + +

    #include <sha2_ops.h>

    + + + + + + + + + + + + + + + + + + + + + +

    +Data Fields

    void(* SHA2_sha256 )(uint8_t *output, const uint8_t *input, size_t inplen)
    void(* SHA2_sha256_inc_init )(OQS_SHA2_sha256_ctx *state)
    void(* SHA2_sha256_inc_ctx_clone )(OQS_SHA2_sha256_ctx *dest, const OQS_SHA2_sha256_ctx *src)
    void(* SHA2_sha256_inc )(OQS_SHA2_sha256_ctx *state, const uint8_t *in, size_t len)
    void(* SHA2_sha256_inc_blocks )(OQS_SHA2_sha256_ctx *state, const uint8_t *in, size_t inblocks)
    void(* SHA2_sha256_inc_finalize )(uint8_t *out, OQS_SHA2_sha256_ctx *state, const uint8_t *in, size_t inlen)
    void(* SHA2_sha256_inc_ctx_release )(OQS_SHA2_sha256_ctx *state)
    void(* SHA2_sha384 )(uint8_t *output, const uint8_t *input, size_t inplen)
    void(* SHA2_sha384_inc_init )(OQS_SHA2_sha384_ctx *state)
    void(* SHA2_sha384_inc_ctx_clone )(OQS_SHA2_sha384_ctx *dest, const OQS_SHA2_sha384_ctx *src)
    void(* SHA2_sha384_inc_blocks )(OQS_SHA2_sha384_ctx *state, const uint8_t *in, size_t inblocks)
    void(* SHA2_sha384_inc_finalize )(uint8_t *out, OQS_SHA2_sha384_ctx *state, const uint8_t *in, size_t inlen)
    void(* SHA2_sha384_inc_ctx_release )(OQS_SHA2_sha384_ctx *state)
    void(* SHA2_sha512 )(uint8_t *output, const uint8_t *input, size_t inplen)
    void(* SHA2_sha512_inc_init )(OQS_SHA2_sha512_ctx *state)
    void(* SHA2_sha512_inc_ctx_clone )(OQS_SHA2_sha512_ctx *dest, const OQS_SHA2_sha512_ctx *src)
    void(* SHA2_sha512_inc_blocks )(OQS_SHA2_sha512_ctx *state, const uint8_t *in, size_t inblocks)
    void(* SHA2_sha512_inc_finalize )(uint8_t *out, OQS_SHA2_sha512_ctx *state, const uint8_t *in, size_t inlen)
    void(* SHA2_sha512_inc_ctx_release )(OQS_SHA2_sha512_ctx *state)
    +

    Detailed Description

    +

    Data structure implemented by cryptographic provider for SHA-2 operations.

    +

    Field Documentation

    + +

    ◆ SHA2_sha256

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha256) (uint8_t *output, const uint8_t *input, size_t inplen)
    +
    +

    Implementation of function OQS_SHA2_sha256.

    + +
    +
    + +

    ◆ SHA2_sha256_inc

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha256_inc) (OQS_SHA2_sha256_ctx *state, const uint8_t *in, size_t len)
    +
    +

    Implementation of function OQS_SHA2_sha256_inc.

    + +
    +
    + +

    ◆ SHA2_sha256_inc_blocks

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha256_inc_blocks) (OQS_SHA2_sha256_ctx *state, const uint8_t *in, size_t inblocks)
    +
    +

    Implementation of function OQS_SHA2_sha256_inc_blocks.

    + +
    +
    + +

    ◆ SHA2_sha256_inc_ctx_clone

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha256_inc_ctx_clone) (OQS_SHA2_sha256_ctx *dest, const OQS_SHA2_sha256_ctx *src)
    +
    +

    Implementation of function OQS_SHA2_sha256_inc_ctx_clone.

    + +
    +
    + +

    ◆ SHA2_sha256_inc_ctx_release

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha256_inc_ctx_release) (OQS_SHA2_sha256_ctx *state)
    +
    +

    Implementation of function OQS_SHA2_sha256_inc_ctx_release.

    + +
    +
    + +

    ◆ SHA2_sha256_inc_finalize

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha256_inc_finalize) (uint8_t *out, OQS_SHA2_sha256_ctx *state, const uint8_t *in, size_t inlen)
    +
    +

    Implementation of function OQS_SHA2_sha256_inc_finalize.

    + +
    +
    + +

    ◆ SHA2_sha256_inc_init

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha256_inc_init) (OQS_SHA2_sha256_ctx *state)
    +
    +

    Implementation of function OQS_SHA2_sha256_inc_init.

    + +
    +
    + +

    ◆ SHA2_sha384

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha384) (uint8_t *output, const uint8_t *input, size_t inplen)
    +
    +

    Implementation of function OQS_SHA2_sha384.

    + +
    +
    + +

    ◆ SHA2_sha384_inc_blocks

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha384_inc_blocks) (OQS_SHA2_sha384_ctx *state, const uint8_t *in, size_t inblocks)
    +
    +

    Implementation of function OQS_SHA2_sha384_inc_blocks.

    + +
    +
    + +

    ◆ SHA2_sha384_inc_ctx_clone

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha384_inc_ctx_clone) (OQS_SHA2_sha384_ctx *dest, const OQS_SHA2_sha384_ctx *src)
    +
    +

    Implementation of function OQS_SHA2_sha384_inc_ctx_clone.

    + +
    +
    + +

    ◆ SHA2_sha384_inc_ctx_release

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha384_inc_ctx_release) (OQS_SHA2_sha384_ctx *state)
    +
    +

    Implementation of function OQS_SHA2_sha384_inc_ctx_release.

    + +
    +
    + +

    ◆ SHA2_sha384_inc_finalize

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha384_inc_finalize) (uint8_t *out, OQS_SHA2_sha384_ctx *state, const uint8_t *in, size_t inlen)
    +
    +

    Implementation of function OQS_SHA2_sha384_inc_finalize.

    + +
    +
    + +

    ◆ SHA2_sha384_inc_init

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha384_inc_init) (OQS_SHA2_sha384_ctx *state)
    +
    +

    Implementation of function OQS_SHA2_sha384_inc_init.

    + +
    +
    + +

    ◆ SHA2_sha512

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha512) (uint8_t *output, const uint8_t *input, size_t inplen)
    +
    +

    Implementation of function OQS_SHA2_sha512.

    + +
    +
    + +

    ◆ SHA2_sha512_inc_blocks

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha512_inc_blocks) (OQS_SHA2_sha512_ctx *state, const uint8_t *in, size_t inblocks)
    +
    +

    Implementation of function OQS_SHA2_sha512_inc_blocks.

    + +
    +
    + +

    ◆ SHA2_sha512_inc_ctx_clone

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha512_inc_ctx_clone) (OQS_SHA2_sha512_ctx *dest, const OQS_SHA2_sha512_ctx *src)
    +
    +

    Implementation of function OQS_SHA2_sha512_inc_ctx_clone.

    + +
    +
    + +

    ◆ SHA2_sha512_inc_ctx_release

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha512_inc_ctx_release) (OQS_SHA2_sha512_ctx *state)
    +
    +

    Implementation of function OQS_SHA2_sha512_inc_ctx_release.

    + +
    +
    + +

    ◆ SHA2_sha512_inc_finalize

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha512_inc_finalize) (uint8_t *out, OQS_SHA2_sha512_ctx *state, const uint8_t *in, size_t inlen)
    +
    +

    Implementation of function OQS_SHA2_sha512_inc_finalize.

    + +
    +
    + +

    ◆ SHA2_sha512_inc_init

    + +
    +
    + + + + +
    void(* OQS_SHA2_callbacks::SHA2_sha512_inc_init) (OQS_SHA2_sha512_ctx *state)
    +
    +

    Implementation of function OQS_SHA2_sha512_inc_init.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___s_h_a2__sha224__ctx.html b/liboqs/api/doxygen/struct_o_q_s___s_h_a2__sha224__ctx.html new file mode 100644 index 0000000..16747f6 --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___s_h_a2__sha224__ctx.html @@ -0,0 +1,153 @@ + + + + + + + +liboqs: OQS_SHA2_sha224_ctx Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_SHA2_sha224_ctx Struct Reference
    +
    +
    + +

    #include <sha2_ops.h>

    + + + + + +

    +Data Fields

    void * ctx
    size_t data_len
    uint8_t data [128]
    +

    Detailed Description

    +

    Data structure for the state of the SHA-224 incremental hashing API.

    +

    Field Documentation

    + +

    ◆ ctx

    + +
    +
    + + + + +
    void* OQS_SHA2_sha224_ctx::ctx
    +
    +

    Internal state

    + +
    +
    + +

    ◆ data

    + +
    +
    + + + + +
    uint8_t OQS_SHA2_sha224_ctx::data[128]
    +
    +

    unprocessed data buffer

    + +
    +
    + +

    ◆ data_len

    + +
    +
    + + + + +
    size_t OQS_SHA2_sha224_ctx::data_len
    +
    +

    current number of bytes in data

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___s_h_a2__sha256__ctx.html b/liboqs/api/doxygen/struct_o_q_s___s_h_a2__sha256__ctx.html new file mode 100644 index 0000000..081bb64 --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___s_h_a2__sha256__ctx.html @@ -0,0 +1,153 @@ + + + + + + + +liboqs: OQS_SHA2_sha256_ctx Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_SHA2_sha256_ctx Struct Reference
    +
    +
    + +

    #include <sha2_ops.h>

    + + + + + +

    +Data Fields

    void * ctx
    size_t data_len
    uint8_t data [128]
    +

    Detailed Description

    +

    Data structure for the state of the SHA-256 incremental hashing API.

    +

    Field Documentation

    + +

    ◆ ctx

    + +
    +
    + + + + +
    void* OQS_SHA2_sha256_ctx::ctx
    +
    +

    Internal state

    + +
    +
    + +

    ◆ data

    + +
    +
    + + + + +
    uint8_t OQS_SHA2_sha256_ctx::data[128]
    +
    +

    unprocessed data buffer

    + +
    +
    + +

    ◆ data_len

    + +
    +
    + + + + +
    size_t OQS_SHA2_sha256_ctx::data_len
    +
    +

    current number of bytes in data

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___s_h_a2__sha384__ctx.html b/liboqs/api/doxygen/struct_o_q_s___s_h_a2__sha384__ctx.html new file mode 100644 index 0000000..e775998 --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___s_h_a2__sha384__ctx.html @@ -0,0 +1,153 @@ + + + + + + + +liboqs: OQS_SHA2_sha384_ctx Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_SHA2_sha384_ctx Struct Reference
    +
    +
    + +

    #include <sha2_ops.h>

    + + + + + +

    +Data Fields

    void * ctx
    size_t data_len
    uint8_t data [128]
    +

    Detailed Description

    +

    Data structure for the state of the SHA-384 incremental hashing API.

    +

    Field Documentation

    + +

    ◆ ctx

    + +
    +
    + + + + +
    void* OQS_SHA2_sha384_ctx::ctx
    +
    +

    Internal state.

    + +
    +
    + +

    ◆ data

    + +
    +
    + + + + +
    uint8_t OQS_SHA2_sha384_ctx::data[128]
    +
    +

    unprocessed data buffer

    + +
    +
    + +

    ◆ data_len

    + +
    +
    + + + + +
    size_t OQS_SHA2_sha384_ctx::data_len
    +
    +

    current number of bytes in data

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___s_h_a2__sha512__ctx.html b/liboqs/api/doxygen/struct_o_q_s___s_h_a2__sha512__ctx.html new file mode 100644 index 0000000..e939224 --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___s_h_a2__sha512__ctx.html @@ -0,0 +1,153 @@ + + + + + + + +liboqs: OQS_SHA2_sha512_ctx Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_SHA2_sha512_ctx Struct Reference
    +
    +
    + +

    #include <sha2_ops.h>

    + + + + + +

    +Data Fields

    void * ctx
    size_t data_len
    uint8_t data [128]
    +

    Detailed Description

    +

    Data structure for the state of the SHA-512 incremental hashing API.

    +

    Field Documentation

    + +

    ◆ ctx

    + +
    +
    + + + + +
    void* OQS_SHA2_sha512_ctx::ctx
    +
    +

    Internal state.

    + +
    +
    + +

    ◆ data

    + +
    +
    + + + + +
    uint8_t OQS_SHA2_sha512_ctx::data[128]
    +
    +

    unprocessed data buffer

    + +
    +
    + +

    ◆ data_len

    + +
    +
    + + + + +
    size_t OQS_SHA2_sha512_ctx::data_len
    +
    +

    current number of bytes in data

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___s_h_a3__callbacks.html b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__callbacks.html new file mode 100644 index 0000000..a37ac5e --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__callbacks.html @@ -0,0 +1,697 @@ + + + + + + + +liboqs: OQS_SHA3_callbacks Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_SHA3_callbacks Struct Reference
    +
    +
    + +

    #include <sha3_ops.h>

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Data Fields

    void(* SHA3_sha3_256 )(uint8_t *output, const uint8_t *input, size_t inplen)
    void(* SHA3_sha3_256_inc_init )(OQS_SHA3_sha3_256_inc_ctx *state)
    void(* SHA3_sha3_256_inc_absorb )(OQS_SHA3_sha3_256_inc_ctx *state, const uint8_t *input, size_t inlen)
    void(* SHA3_sha3_256_inc_finalize )(uint8_t *output, OQS_SHA3_sha3_256_inc_ctx *state)
    void(* SHA3_sha3_256_inc_ctx_release )(OQS_SHA3_sha3_256_inc_ctx *state)
    void(* SHA3_sha3_256_inc_ctx_reset )(OQS_SHA3_sha3_256_inc_ctx *state)
    void(* SHA3_sha3_256_inc_ctx_clone )(OQS_SHA3_sha3_256_inc_ctx *dest, const OQS_SHA3_sha3_256_inc_ctx *src)
    void(* SHA3_sha3_384 )(uint8_t *output, const uint8_t *input, size_t inplen)
    void(* SHA3_sha3_384_inc_init )(OQS_SHA3_sha3_384_inc_ctx *state)
    void(* SHA3_sha3_384_inc_absorb )(OQS_SHA3_sha3_384_inc_ctx *state, const uint8_t *input, size_t inlen)
    void(* SHA3_sha3_384_inc_finalize )(uint8_t *output, OQS_SHA3_sha3_384_inc_ctx *state)
    void(* SHA3_sha3_384_inc_ctx_release )(OQS_SHA3_sha3_384_inc_ctx *state)
    void(* SHA3_sha3_384_inc_ctx_reset )(OQS_SHA3_sha3_384_inc_ctx *state)
    void(* SHA3_sha3_384_inc_ctx_clone )(OQS_SHA3_sha3_384_inc_ctx *dest, const OQS_SHA3_sha3_384_inc_ctx *src)
    void(* SHA3_sha3_512 )(uint8_t *output, const uint8_t *input, size_t inplen)
    void(* SHA3_sha3_512_inc_init )(OQS_SHA3_sha3_512_inc_ctx *state)
    void(* SHA3_sha3_512_inc_absorb )(OQS_SHA3_sha3_512_inc_ctx *state, const uint8_t *input, size_t inlen)
    void(* SHA3_sha3_512_inc_finalize )(uint8_t *output, OQS_SHA3_sha3_512_inc_ctx *state)
    void(* SHA3_sha3_512_inc_ctx_release )(OQS_SHA3_sha3_512_inc_ctx *state)
    void(* SHA3_sha3_512_inc_ctx_reset )(OQS_SHA3_sha3_512_inc_ctx *state)
    void(* SHA3_sha3_512_inc_ctx_clone )(OQS_SHA3_sha3_512_inc_ctx *dest, const OQS_SHA3_sha3_512_inc_ctx *src)
    void(* SHA3_shake128 )(uint8_t *output, size_t outlen, const uint8_t *input, size_t inplen)
    void(* SHA3_shake128_inc_init )(OQS_SHA3_shake128_inc_ctx *state)
    void(* SHA3_shake128_inc_absorb )(OQS_SHA3_shake128_inc_ctx *state, const uint8_t *input, size_t inlen)
    void(* SHA3_shake128_inc_finalize )(OQS_SHA3_shake128_inc_ctx *state)
    void(* SHA3_shake128_inc_squeeze )(uint8_t *output, size_t outlen, OQS_SHA3_shake128_inc_ctx *state)
    void(* SHA3_shake128_inc_ctx_release )(OQS_SHA3_shake128_inc_ctx *state)
    void(* SHA3_shake128_inc_ctx_clone )(OQS_SHA3_shake128_inc_ctx *dest, const OQS_SHA3_shake128_inc_ctx *src)
    void(* SHA3_shake128_inc_ctx_reset )(OQS_SHA3_shake128_inc_ctx *state)
    void(* SHA3_shake256 )(uint8_t *output, size_t outlen, const uint8_t *input, size_t inplen)
    void(* SHA3_shake256_inc_init )(OQS_SHA3_shake256_inc_ctx *state)
    void(* SHA3_shake256_inc_absorb )(OQS_SHA3_shake256_inc_ctx *state, const uint8_t *input, size_t inlen)
    void(* SHA3_shake256_inc_finalize )(OQS_SHA3_shake256_inc_ctx *state)
    void(* SHA3_shake256_inc_squeeze )(uint8_t *output, size_t outlen, OQS_SHA3_shake256_inc_ctx *state)
    void(* SHA3_shake256_inc_ctx_release )(OQS_SHA3_shake256_inc_ctx *state)
    void(* SHA3_shake256_inc_ctx_clone )(OQS_SHA3_shake256_inc_ctx *dest, const OQS_SHA3_shake256_inc_ctx *src)
    void(* SHA3_shake256_inc_ctx_reset )(OQS_SHA3_shake256_inc_ctx *state)
    +

    Detailed Description

    +

    Data structure implemented by cryptographic provider for SHA-3 operations.

    +

    Field Documentation

    + +

    ◆ SHA3_sha3_256

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_256) (uint8_t *output, const uint8_t *input, size_t inplen)
    +
    +

    Implementation of function OQS_SHA3_sha3_256.

    + +
    +
    + +

    ◆ SHA3_sha3_256_inc_absorb

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_256_inc_absorb) (OQS_SHA3_sha3_256_inc_ctx *state, const uint8_t *input, size_t inlen)
    +
    +

    Implementation of function OQS_SHA3_sha3_256_inc_absorb.

    + +
    +
    + +

    ◆ SHA3_sha3_256_inc_ctx_clone

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_256_inc_ctx_clone) (OQS_SHA3_sha3_256_inc_ctx *dest, const OQS_SHA3_sha3_256_inc_ctx *src)
    +
    +

    Implementation of function OQS_SHA3_sha3_256_inc_ctx_clone.

    + +
    +
    + +

    ◆ SHA3_sha3_256_inc_ctx_release

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_256_inc_ctx_release) (OQS_SHA3_sha3_256_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_sha3_256_inc_ctx_release.

    + +
    +
    + +

    ◆ SHA3_sha3_256_inc_ctx_reset

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_256_inc_ctx_reset) (OQS_SHA3_sha3_256_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_sha3_256_inc_ctx_reset.

    + +
    +
    + +

    ◆ SHA3_sha3_256_inc_finalize

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_256_inc_finalize) (uint8_t *output, OQS_SHA3_sha3_256_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_sha3_256_inc_finalize.

    + +
    +
    + +

    ◆ SHA3_sha3_256_inc_init

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_256_inc_init) (OQS_SHA3_sha3_256_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_sha3_256_inc_init.

    + +
    +
    + +

    ◆ SHA3_sha3_384

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_384) (uint8_t *output, const uint8_t *input, size_t inplen)
    +
    +

    Implementation of function OQS_SHA3_sha3_384.

    + +
    +
    + +

    ◆ SHA3_sha3_384_inc_absorb

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_384_inc_absorb) (OQS_SHA3_sha3_384_inc_ctx *state, const uint8_t *input, size_t inlen)
    +
    +

    Implementation of function OQS_SHA3_sha3_384_inc_absorb.

    + +
    +
    + +

    ◆ SHA3_sha3_384_inc_ctx_clone

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_384_inc_ctx_clone) (OQS_SHA3_sha3_384_inc_ctx *dest, const OQS_SHA3_sha3_384_inc_ctx *src)
    +
    +

    Implementation of function OQS_SHA3_sha3_384_inc_ctx_clone.

    + +
    +
    + +

    ◆ SHA3_sha3_384_inc_ctx_release

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_384_inc_ctx_release) (OQS_SHA3_sha3_384_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_sha3_384_inc_ctx_release.

    + +
    +
    + +

    ◆ SHA3_sha3_384_inc_ctx_reset

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_384_inc_ctx_reset) (OQS_SHA3_sha3_384_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_sha3_384_inc_ctx_reset.

    + +
    +
    + +

    ◆ SHA3_sha3_384_inc_finalize

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_384_inc_finalize) (uint8_t *output, OQS_SHA3_sha3_384_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_sha3_384_inc_finalize.

    + +
    +
    + +

    ◆ SHA3_sha3_384_inc_init

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_384_inc_init) (OQS_SHA3_sha3_384_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_sha3_384_inc_init.

    + +
    +
    + +

    ◆ SHA3_sha3_512

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_512) (uint8_t *output, const uint8_t *input, size_t inplen)
    +
    +

    Implementation of function OQS_SHA3_sha3_512.

    + +
    +
    + +

    ◆ SHA3_sha3_512_inc_absorb

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_512_inc_absorb) (OQS_SHA3_sha3_512_inc_ctx *state, const uint8_t *input, size_t inlen)
    +
    +

    Implementation of function OQS_SHA3_sha3_512_inc_absorb.

    + +
    +
    + +

    ◆ SHA3_sha3_512_inc_ctx_clone

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_512_inc_ctx_clone) (OQS_SHA3_sha3_512_inc_ctx *dest, const OQS_SHA3_sha3_512_inc_ctx *src)
    +
    +

    Implementation of function OQS_SHA3_sha3_512_inc_ctx_clone.

    + +
    +
    + +

    ◆ SHA3_sha3_512_inc_ctx_release

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_512_inc_ctx_release) (OQS_SHA3_sha3_512_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_sha3_512_inc_ctx_release.

    + +
    +
    + +

    ◆ SHA3_sha3_512_inc_ctx_reset

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_512_inc_ctx_reset) (OQS_SHA3_sha3_512_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_sha3_512_inc_ctx_reset.

    + +
    +
    + +

    ◆ SHA3_sha3_512_inc_finalize

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_512_inc_finalize) (uint8_t *output, OQS_SHA3_sha3_512_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_sha3_512_inc_finalize.

    + +
    +
    + +

    ◆ SHA3_sha3_512_inc_init

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_sha3_512_inc_init) (OQS_SHA3_sha3_512_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_sha3_512_inc_init.

    + +
    +
    + +

    ◆ SHA3_shake128

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_shake128) (uint8_t *output, size_t outlen, const uint8_t *input, size_t inplen)
    +
    +

    Implementation of function OQS_SHA3_shake128.

    + +
    +
    + +

    ◆ SHA3_shake128_inc_absorb

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_shake128_inc_absorb) (OQS_SHA3_shake128_inc_ctx *state, const uint8_t *input, size_t inlen)
    +
    +

    Implementation of function OQS_SHA3_shake128_inc_absorb.

    + +
    +
    + +

    ◆ SHA3_shake128_inc_ctx_clone

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_shake128_inc_ctx_clone) (OQS_SHA3_shake128_inc_ctx *dest, const OQS_SHA3_shake128_inc_ctx *src)
    +
    +

    Implementation of function OQS_SHA3_shake128_inc_ctx_clone.

    + +
    +
    + +

    ◆ SHA3_shake128_inc_ctx_release

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_shake128_inc_ctx_release) (OQS_SHA3_shake128_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake128_inc_ctx_release.

    + +
    +
    + +

    ◆ SHA3_shake128_inc_ctx_reset

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_shake128_inc_ctx_reset) (OQS_SHA3_shake128_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake128_inc_ctx_reset.

    + +
    +
    + +

    ◆ SHA3_shake128_inc_finalize

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_shake128_inc_finalize) (OQS_SHA3_shake128_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake128_inc_finalize.

    + +
    +
    + +

    ◆ SHA3_shake128_inc_init

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_shake128_inc_init) (OQS_SHA3_shake128_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake128_inc_init.

    + +
    +
    + +

    ◆ SHA3_shake128_inc_squeeze

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_shake128_inc_squeeze) (uint8_t *output, size_t outlen, OQS_SHA3_shake128_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake128_inc_squeeze.

    + +
    +
    + +

    ◆ SHA3_shake256

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_shake256) (uint8_t *output, size_t outlen, const uint8_t *input, size_t inplen)
    +
    +

    Implementation of function OQS_SHA3_shake256.

    + +
    +
    + +

    ◆ SHA3_shake256_inc_absorb

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_shake256_inc_absorb) (OQS_SHA3_shake256_inc_ctx *state, const uint8_t *input, size_t inlen)
    +
    +

    Implementation of function OQS_SHA3_shake256_inc_absorb.

    + +
    +
    + +

    ◆ SHA3_shake256_inc_ctx_clone

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_shake256_inc_ctx_clone) (OQS_SHA3_shake256_inc_ctx *dest, const OQS_SHA3_shake256_inc_ctx *src)
    +
    +

    Implementation of function OQS_SHA3_shake256_inc_ctx_clone.

    + +
    +
    + +

    ◆ SHA3_shake256_inc_ctx_release

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_shake256_inc_ctx_release) (OQS_SHA3_shake256_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake256_inc_ctx_release.

    + +
    +
    + +

    ◆ SHA3_shake256_inc_ctx_reset

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_shake256_inc_ctx_reset) (OQS_SHA3_shake256_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake256_inc_ctx_reset.

    + +
    +
    + +

    ◆ SHA3_shake256_inc_finalize

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_shake256_inc_finalize) (OQS_SHA3_shake256_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake256_inc_finalize.

    + +
    +
    + +

    ◆ SHA3_shake256_inc_init

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_shake256_inc_init) (OQS_SHA3_shake256_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake256_inc_init.

    + +
    +
    + +

    ◆ SHA3_shake256_inc_squeeze

    + +
    +
    + + + + +
    void(* OQS_SHA3_callbacks::SHA3_shake256_inc_squeeze) (uint8_t *output, size_t outlen, OQS_SHA3_shake256_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake256_inc_squeeze.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___s_h_a3__sha3__256__inc__ctx.html b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__sha3__256__inc__ctx.html new file mode 100644 index 0000000..bb7fe49 --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__sha3__256__inc__ctx.html @@ -0,0 +1,121 @@ + + + + + + + +liboqs: OQS_SHA3_sha3_256_inc_ctx Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_SHA3_sha3_256_inc_ctx Struct Reference
    +
    +
    + +

    #include <sha3_ops.h>

    + + + +

    +Data Fields

    void * ctx
    +

    Detailed Description

    +

    Data structure for the state of the incremental SHA3-256 API.

    +

    Field Documentation

    + +

    ◆ ctx

    + +
    +
    + + + + +
    void* OQS_SHA3_sha3_256_inc_ctx::ctx
    +
    +

    Internal state.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___s_h_a3__sha3__384__inc__ctx.html b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__sha3__384__inc__ctx.html new file mode 100644 index 0000000..4e5932b --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__sha3__384__inc__ctx.html @@ -0,0 +1,121 @@ + + + + + + + +liboqs: OQS_SHA3_sha3_384_inc_ctx Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_SHA3_sha3_384_inc_ctx Struct Reference
    +
    +
    + +

    #include <sha3_ops.h>

    + + + +

    +Data Fields

    void * ctx
    +

    Detailed Description

    +

    Data structure for the state of the incremental SHA3-384 API.

    +

    Field Documentation

    + +

    ◆ ctx

    + +
    +
    + + + + +
    void* OQS_SHA3_sha3_384_inc_ctx::ctx
    +
    +

    Internal state.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___s_h_a3__sha3__512__inc__ctx.html b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__sha3__512__inc__ctx.html new file mode 100644 index 0000000..19b2563 --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__sha3__512__inc__ctx.html @@ -0,0 +1,121 @@ + + + + + + + +liboqs: OQS_SHA3_sha3_512_inc_ctx Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_SHA3_sha3_512_inc_ctx Struct Reference
    +
    +
    + +

    #include <sha3_ops.h>

    + + + +

    +Data Fields

    void * ctx
    +

    Detailed Description

    +

    Data structure for the state of the incremental SHA3-512 API.

    +

    Field Documentation

    + +

    ◆ ctx

    + +
    +
    + + + + +
    void* OQS_SHA3_sha3_512_inc_ctx::ctx
    +
    +

    Internal state.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___s_h_a3__shake128__inc__ctx.html b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__shake128__inc__ctx.html new file mode 100644 index 0000000..c4610dd --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__shake128__inc__ctx.html @@ -0,0 +1,121 @@ + + + + + + + +liboqs: OQS_SHA3_shake128_inc_ctx Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_SHA3_shake128_inc_ctx Struct Reference
    +
    +
    + +

    #include <sha3_ops.h>

    + + + +

    +Data Fields

    void * ctx
    +

    Detailed Description

    +

    Data structure for the state of the incremental SHAKE-128 API.

    +

    Field Documentation

    + +

    ◆ ctx

    + +
    +
    + + + + +
    void* OQS_SHA3_shake128_inc_ctx::ctx
    +
    +

    Internal state.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___s_h_a3__shake128__x4__inc__ctx.html b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__shake128__x4__inc__ctx.html new file mode 100644 index 0000000..6370055 --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__shake128__x4__inc__ctx.html @@ -0,0 +1,121 @@ + + + + + + + +liboqs: OQS_SHA3_shake128_x4_inc_ctx Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_SHA3_shake128_x4_inc_ctx Struct Reference
    +
    +
    + +

    #include <sha3x4_ops.h>

    + + + +

    +Data Fields

    void * ctx
    +

    Detailed Description

    +

    Data structure for the state of the four-way parallel incremental SHAKE-128 API.

    +

    Field Documentation

    + +

    ◆ ctx

    + +
    +
    + + + + +
    void* OQS_SHA3_shake128_x4_inc_ctx::ctx
    +
    +

    Internal state.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___s_h_a3__shake256__inc__ctx.html b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__shake256__inc__ctx.html new file mode 100644 index 0000000..637b5e9 --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__shake256__inc__ctx.html @@ -0,0 +1,121 @@ + + + + + + + +liboqs: OQS_SHA3_shake256_inc_ctx Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_SHA3_shake256_inc_ctx Struct Reference
    +
    +
    + +

    #include <sha3_ops.h>

    + + + +

    +Data Fields

    void * ctx
    +

    Detailed Description

    +

    Data structure for the state of the incremental SHAKE-256 API.

    +

    Field Documentation

    + +

    ◆ ctx

    + +
    +
    + + + + +
    void* OQS_SHA3_shake256_inc_ctx::ctx
    +
    +

    Internal state.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___s_h_a3__shake256__x4__inc__ctx.html b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__shake256__x4__inc__ctx.html new file mode 100644 index 0000000..cfbdb4e --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__shake256__x4__inc__ctx.html @@ -0,0 +1,121 @@ + + + + + + + +liboqs: OQS_SHA3_shake256_x4_inc_ctx Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_SHA3_shake256_x4_inc_ctx Struct Reference
    +
    +
    + +

    #include <sha3x4_ops.h>

    + + + +

    +Data Fields

    void * ctx
    +

    Detailed Description

    +

    Data structure for the state of the four-way parallel incremental SHAKE-256 API.

    +

    Field Documentation

    + +

    ◆ ctx

    + +
    +
    + + + + +
    void* OQS_SHA3_shake256_x4_inc_ctx::ctx
    +
    +

    Internal state.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___s_h_a3__x4__callbacks.html b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__x4__callbacks.html new file mode 100644 index 0000000..095b0f4 --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___s_h_a3__x4__callbacks.html @@ -0,0 +1,361 @@ + + + + + + + +liboqs: OQS_SHA3_x4_callbacks Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_SHA3_x4_callbacks Struct Reference
    +
    +
    + +

    #include <sha3x4_ops.h>

    + + + + + + + + + + + + + + + + + + +

    +Data Fields

    void(* SHA3_shake128_x4 )(uint8_t *out0, uint8_t *out1, uint8_t *out2, uint8_t *out3, size_t outlen, const uint8_t *in0, const uint8_t *in1, const uint8_t *in2, const uint8_t *in3, size_t inlen)
    void(* SHA3_shake128_x4_inc_init )(OQS_SHA3_shake128_x4_inc_ctx *state)
    void(* SHA3_shake128_x4_inc_absorb )(OQS_SHA3_shake128_x4_inc_ctx *state, const uint8_t *in0, const uint8_t *in1, const uint8_t *in2, const uint8_t *in3, size_t inlen)
    void(* SHA3_shake128_x4_inc_finalize )(OQS_SHA3_shake128_x4_inc_ctx *state)
    void(* SHA3_shake128_x4_inc_squeeze )(uint8_t *out0, uint8_t *out1, uint8_t *out2, uint8_t *out3, size_t outlen, OQS_SHA3_shake128_x4_inc_ctx *state)
    void(* SHA3_shake128_x4_inc_ctx_release )(OQS_SHA3_shake128_x4_inc_ctx *state)
    void(* SHA3_shake128_x4_inc_ctx_clone )(OQS_SHA3_shake128_x4_inc_ctx *dest, const OQS_SHA3_shake128_x4_inc_ctx *src)
    void(* SHA3_shake128_x4_inc_ctx_reset )(OQS_SHA3_shake128_x4_inc_ctx *state)
    void(* SHA3_shake256_x4 )(uint8_t *out0, uint8_t *out1, uint8_t *out2, uint8_t *out3, size_t outlen, const uint8_t *in0, const uint8_t *in1, const uint8_t *in2, const uint8_t *in3, size_t inlen)
    void(* SHA3_shake256_x4_inc_init )(OQS_SHA3_shake256_x4_inc_ctx *state)
    void(* SHA3_shake256_x4_inc_absorb )(OQS_SHA3_shake256_x4_inc_ctx *state, const uint8_t *in0, const uint8_t *in1, const uint8_t *in2, const uint8_t *in3, size_t inlen)
    void(* SHA3_shake256_x4_inc_finalize )(OQS_SHA3_shake256_x4_inc_ctx *state)
    void(* SHA3_shake256_x4_inc_squeeze )(uint8_t *out0, uint8_t *out1, uint8_t *out2, uint8_t *out3, size_t outlen, OQS_SHA3_shake256_x4_inc_ctx *state)
    void(* SHA3_shake256_x4_inc_ctx_release )(OQS_SHA3_shake256_x4_inc_ctx *state)
    void(* SHA3_shake256_x4_inc_ctx_clone )(OQS_SHA3_shake256_x4_inc_ctx *dest, const OQS_SHA3_shake256_x4_inc_ctx *src)
    void(* SHA3_shake256_x4_inc_ctx_reset )(OQS_SHA3_shake256_x4_inc_ctx *state)
    +

    Detailed Description

    +

    Data structure implemented by cryptographic provider for the four-way parallel incremental SHAKE-256 operations.

    +

    Field Documentation

    + +

    ◆ SHA3_shake128_x4

    + +
    +
    + + + + +
    void(* OQS_SHA3_x4_callbacks::SHA3_shake128_x4) (uint8_t *out0, uint8_t *out1, uint8_t *out2, uint8_t *out3, size_t outlen, const uint8_t *in0, const uint8_t *in1, const uint8_t *in2, const uint8_t *in3, size_t inlen)
    +
    +

    Implementation of function OQS_SHA3_shake128_x4.

    + +
    +
    + +

    ◆ SHA3_shake128_x4_inc_absorb

    + +
    +
    + + + + +
    void(* OQS_SHA3_x4_callbacks::SHA3_shake128_x4_inc_absorb) (OQS_SHA3_shake128_x4_inc_ctx *state, const uint8_t *in0, const uint8_t *in1, const uint8_t *in2, const uint8_t *in3, size_t inlen)
    +
    +

    Implementation of function OQS_SHA3_shake128_x4_inc_absorb.

    + +
    +
    + +

    ◆ SHA3_shake128_x4_inc_ctx_clone

    + +
    +
    + + + + +
    void(* OQS_SHA3_x4_callbacks::SHA3_shake128_x4_inc_ctx_clone) (OQS_SHA3_shake128_x4_inc_ctx *dest, const OQS_SHA3_shake128_x4_inc_ctx *src)
    +
    +

    Implementation of function OQS_SHA3_shake128_x4_inc_ctx_clone.

    + +
    +
    + +

    ◆ SHA3_shake128_x4_inc_ctx_release

    + +
    +
    + + + + +
    void(* OQS_SHA3_x4_callbacks::SHA3_shake128_x4_inc_ctx_release) (OQS_SHA3_shake128_x4_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake128_x4_inc_ctx_release.

    + +
    +
    + +

    ◆ SHA3_shake128_x4_inc_ctx_reset

    + +
    +
    + + + + +
    void(* OQS_SHA3_x4_callbacks::SHA3_shake128_x4_inc_ctx_reset) (OQS_SHA3_shake128_x4_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake128_x4_inc_ctx_reset.

    + +
    +
    + +

    ◆ SHA3_shake128_x4_inc_finalize

    + +
    +
    + + + + +
    void(* OQS_SHA3_x4_callbacks::SHA3_shake128_x4_inc_finalize) (OQS_SHA3_shake128_x4_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake128_x4_inc_finalize.

    + +
    +
    + +

    ◆ SHA3_shake128_x4_inc_init

    + +
    +
    + + + + +
    void(* OQS_SHA3_x4_callbacks::SHA3_shake128_x4_inc_init) (OQS_SHA3_shake128_x4_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake128_x4_inc_init.

    + +
    +
    + +

    ◆ SHA3_shake128_x4_inc_squeeze

    + +
    +
    + + + + +
    void(* OQS_SHA3_x4_callbacks::SHA3_shake128_x4_inc_squeeze) (uint8_t *out0, uint8_t *out1, uint8_t *out2, uint8_t *out3, size_t outlen, OQS_SHA3_shake128_x4_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake128_x4_inc_squeeze.

    + +
    +
    + +

    ◆ SHA3_shake256_x4

    + +
    +
    + + + + +
    void(* OQS_SHA3_x4_callbacks::SHA3_shake256_x4) (uint8_t *out0, uint8_t *out1, uint8_t *out2, uint8_t *out3, size_t outlen, const uint8_t *in0, const uint8_t *in1, const uint8_t *in2, const uint8_t *in3, size_t inlen)
    +
    +

    Implementation of function OQS_SHA3_shake256_x4.

    + +
    +
    + +

    ◆ SHA3_shake256_x4_inc_absorb

    + +
    +
    + + + + +
    void(* OQS_SHA3_x4_callbacks::SHA3_shake256_x4_inc_absorb) (OQS_SHA3_shake256_x4_inc_ctx *state, const uint8_t *in0, const uint8_t *in1, const uint8_t *in2, const uint8_t *in3, size_t inlen)
    +
    +

    Implementation of function OQS_SHA3_shake256_x4_inc_absorb.

    + +
    +
    + +

    ◆ SHA3_shake256_x4_inc_ctx_clone

    + +
    +
    + + + + +
    void(* OQS_SHA3_x4_callbacks::SHA3_shake256_x4_inc_ctx_clone) (OQS_SHA3_shake256_x4_inc_ctx *dest, const OQS_SHA3_shake256_x4_inc_ctx *src)
    +
    +

    Implementation of function OQS_SHA3_shake256_x4_inc_ctx_clone.

    + +
    +
    + +

    ◆ SHA3_shake256_x4_inc_ctx_release

    + +
    +
    + + + + +
    void(* OQS_SHA3_x4_callbacks::SHA3_shake256_x4_inc_ctx_release) (OQS_SHA3_shake256_x4_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake256_x4_inc_ctx_release.

    + +
    +
    + +

    ◆ SHA3_shake256_x4_inc_ctx_reset

    + +
    +
    + + + + +
    void(* OQS_SHA3_x4_callbacks::SHA3_shake256_x4_inc_ctx_reset) (OQS_SHA3_shake256_x4_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake256_x4_inc_ctx_reset.

    + +
    +
    + +

    ◆ SHA3_shake256_x4_inc_finalize

    + +
    +
    + + + + +
    void(* OQS_SHA3_x4_callbacks::SHA3_shake256_x4_inc_finalize) (OQS_SHA3_shake256_x4_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake256_x4_inc_finalize.

    + +
    +
    + +

    ◆ SHA3_shake256_x4_inc_init

    + +
    +
    + + + + +
    void(* OQS_SHA3_x4_callbacks::SHA3_shake256_x4_inc_init) (OQS_SHA3_shake256_x4_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake256_x4_inc_init.

    + +
    +
    + +

    ◆ SHA3_shake256_x4_inc_squeeze

    + +
    +
    + + + + +
    void(* OQS_SHA3_x4_callbacks::SHA3_shake256_x4_inc_squeeze) (uint8_t *out0, uint8_t *out1, uint8_t *out2, uint8_t *out3, size_t outlen, OQS_SHA3_shake256_x4_inc_ctx *state)
    +
    +

    Implementation of function OQS_SHA3_shake256_x4_inc_squeeze.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___s_i_g.html b/liboqs/api/doxygen/struct_o_q_s___s_i_g.html new file mode 100644 index 0000000..a439566 --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___s_i_g.html @@ -0,0 +1,389 @@ + + + + + + + +liboqs: OQS_SIG Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_SIG Struct Reference
    +
    +
    + +

    #include <sig.h>

    + + + + + + + + + + + + + + + + +

    +Data Fields

    const char * method_name
    const char * alg_version
    uint8_t claimed_nist_level
    bool euf_cma
    bool suf_cma
    bool sig_with_ctx_support
    size_t length_public_key
    size_t length_secret_key
    size_t length_signature
    OQS_STATUS(* keypair )(uint8_t *public_key, uint8_t *secret_key)
    OQS_STATUS(* sign )(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key)
    OQS_STATUS(* sign_with_ctx_str )(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *secret_key)
    OQS_STATUS(* verify )(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key)
    OQS_STATUS(* verify_with_ctx_str )(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *public_key)
    +

    Detailed Description

    +

    Signature schemes object

    +

    Field Documentation

    + +

    ◆ alg_version

    + +
    +
    + + + + +
    const char* OQS_SIG::alg_version
    +
    +

    Printable string representing the version of the cryptographic algorithm.

    +

    Implementations with the same method_name and same alg_version will be interoperable. See README.md for information about algorithm compatibility.

    + +
    +
    + +

    ◆ claimed_nist_level

    + +
    +
    + + + + +
    uint8_t OQS_SIG::claimed_nist_level
    +
    +

    The NIST security level (1, 2, 3, 4, 5) claimed in this algorithm's original NIST submission.

    + +
    +
    + +

    ◆ euf_cma

    + +
    +
    + + + + +
    bool OQS_SIG::euf_cma
    +
    +

    Whether the signature offers EUF-CMA security (TRUE) or not (FALSE).

    + +
    +
    + +

    ◆ keypair

    + +
    +
    + + + + +
    OQS_STATUS(* OQS_SIG::keypair) (uint8_t *public_key, uint8_t *secret_key)
    +
    +

    Keypair generation algorithm.

    +

    Caller is responsible for allocating sufficient memory for public_key and secret_key, based on the length_* members in this object or the per-scheme compile-time macros OQS_SIG_*_length_*.

    +
    Parameters
    + + + +
    [out]public_keyThe public key represented as a byte string.
    [out]secret_keyThe secret key represented as a byte string.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    + +

    ◆ length_public_key

    + +
    +
    + + + + +
    size_t OQS_SIG::length_public_key
    +
    +

    The length, in bytes, of public keys for this signature scheme.

    + +
    +
    + +

    ◆ length_secret_key

    + +
    +
    + + + + +
    size_t OQS_SIG::length_secret_key
    +
    +

    The length, in bytes, of secret keys for this signature scheme.

    + +
    +
    + +

    ◆ length_signature

    + +
    +
    + + + + +
    size_t OQS_SIG::length_signature
    +
    +

    The (maximum) length, in bytes, of signatures for this signature scheme.

    + +
    +
    + +

    ◆ method_name

    + +
    +
    + + + + +
    const char* OQS_SIG::method_name
    +
    +

    Printable string representing the name of the signature scheme.

    + +
    +
    + +

    ◆ sig_with_ctx_support

    + +
    +
    + + + + +
    bool OQS_SIG::sig_with_ctx_support
    +
    +

    Whether the signature supports signing with a context string (TRUE) or not (FALSE).

    + +
    +
    + +

    ◆ sign

    + +
    +
    + + + + +
    OQS_STATUS(* OQS_SIG::sign) (uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key)
    +
    +

    Signature generation algorithm.

    +

    Caller is responsible for allocating sufficient memory for signature, based on the length_* members in this object or the per-scheme compile-time macros OQS_SIG_*_length_*.

    +
    Parameters
    + + + + + + +
    [out]signatureThe signature on the message represented as a byte string.
    [out]signature_lenThe actual length of the signature. May be smaller than length_signature for some algorithms since some algorithms have variable length signatures.
    [in]messageThe message to sign represented as a byte string.
    [in]message_lenThe length of the message to sign.
    [in]secret_keyThe secret key represented as a byte string.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    + +

    ◆ sign_with_ctx_str

    + +
    +
    + + + + +
    OQS_STATUS(* OQS_SIG::sign_with_ctx_str) (uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *secret_key)
    +
    +

    Signature generation algorithm, with custom context string.

    +

    Caller is responsible for allocating sufficient memory for signature, based on the length_* members in this object or the per-scheme compile-time macros OQS_SIG_*_length_*.

    +
    Parameters
    + + + + + + + + +
    [out]signatureThe signature on the message represented as a byte string.
    [out]signature_lenThe actual length of the signature. May be smaller than length_signature for some algorithms since some algorithms have variable length signatures.
    [in]messageThe message to sign represented as a byte string.
    [in]message_lenThe length of the message to sign.
    [in]ctx_strThe context string used for the signature. This value can be set to NULL if a context string is not needed (i.e., for algorithms that do not support context strings or if an empty context string is used).
    [in]ctx_str_lenThe context string used for the signature. This value can be set to 0 if a context string is not needed (i.e., for algorithms that do not support context strings or if an empty context string is used).
    [in]secret_keyThe secret key represented as a byte string.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    + +

    ◆ suf_cma

    + +
    +
    + + + + +
    bool OQS_SIG::suf_cma
    +
    +

    Whether the signature offers SUF-CMA security (TRUE) or not (FALSE).

    + +
    +
    + +

    ◆ verify

    + +
    +
    + + + + +
    OQS_STATUS(* OQS_SIG::verify) (const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key)
    +
    +

    Signature verification algorithm.

    +
    Parameters
    + + + + + + +
    [in]messageThe message represented as a byte string.
    [in]message_lenThe length of the message.
    [in]signatureThe signature on the message represented as a byte string.
    [in]signature_lenThe length of the signature.
    [in]public_keyThe public key represented as a byte string.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    + +

    ◆ verify_with_ctx_str

    + +
    +
    + + + + +
    OQS_STATUS(* OQS_SIG::verify_with_ctx_str) (const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *public_key)
    +
    +

    Signature verification algorithm, with custom context string.

    +
    Parameters
    + + + + + + + + +
    [in]messageThe message represented as a byte string.
    [in]message_lenThe length of the message.
    [in]signatureThe signature on the message represented as a byte string.
    [in]signature_lenThe length of the signature.
    [in]ctx_strThe context string for the signature. This value can be set to NULL if a context string is not needed (i.e., for algorithms that do not support context strings or if an empty context string is used).
    [in]ctx_str_lenThe length of the context string. This value can be set to 0 if a context string is not needed (i.e., for algorithms that do not support context strings or if an empty context string is used).
    [in]public_keyThe public key represented as a byte string.
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/struct_o_q_s___s_i_g___s_t_f_l___s_e_c_r_e_t___k_e_y.html b/liboqs/api/doxygen/struct_o_q_s___s_i_g___s_t_f_l___s_e_c_r_e_t___k_e_y.html new file mode 100644 index 0000000..851c60f --- /dev/null +++ b/liboqs/api/doxygen/struct_o_q_s___s_i_g___s_t_f_l___s_e_c_r_e_t___k_e_y.html @@ -0,0 +1,348 @@ + + + + + + + +liboqs: OQS_SIG_STFL_SECRET_KEY Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    liboqs +
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    + +
    OQS_SIG_STFL_SECRET_KEY Struct Reference
    +
    +
    + +

    OQS_SIG_STFL_SECRET_KEY object for stateful signature schemes. + More...

    + +

    #include <sig_stfl.h>

    + + + + + + + + + + + + + +

    +Data Fields

    size_t length_secret_key
    void * secret_key_data
    void * mutex
    void * context
    OQS_STATUS(* serialize_key )(uint8_t **sk_buf_ptr, size_t *sk_buf_len, const OQS_SIG_STFL_SECRET_KEY *sk)
    OQS_STATUS(* deserialize_key )(OQS_SIG_STFL_SECRET_KEY *sk, const uint8_t *sk_buf, const size_t sk_buf_len, void *context)
    OQS_STATUS(* lock_key )(void *mutex)
    OQS_STATUS(* unlock_key )(void *mutex)
    OQS_STATUS(* secure_store_scrt_key )(uint8_t *sk_buf, size_t sk_buf_len, void *context)
    void(* free_key )(OQS_SIG_STFL_SECRET_KEY *sk)
    void(* set_scrt_key_store_cb )(OQS_SIG_STFL_SECRET_KEY *sk, secure_store_sk store_cb, void *context)
    +

    Detailed Description

    +

    OQS_SIG_STFL_SECRET_KEY object for stateful signature schemes.

    +

    Field Documentation

    + +

    ◆ context

    + +
    +
    + + + + +
    void* OQS_SIG_STFL_SECRET_KEY::context
    +
    +

    Application-managed data related to secure storage of secret key data

    + +
    +
    + +

    ◆ deserialize_key

    + +
    +
    + + + + +
    OQS_STATUS(* OQS_SIG_STFL_SECRET_KEY::deserialize_key) (OQS_SIG_STFL_SECRET_KEY *sk, const uint8_t *sk_buf, const size_t sk_buf_len, void *context)
    +
    +

    Deserialize a byte stream into the internal representation of a stateful secret key.

    +

    This function takes a series of bytes representing a stateful secret key and initializes the internal OQS_SIG_STFL_SECRET_KEY object with the key material. This is particularly useful for reconstructing key objects from persisted or transmitted state.

    +
    Parameters
    + + + + + +
    [out]skPointer to an uninitialized OQS_SIG_STFL_SECRET_KEY object to hold the secret key.
    [in]sk_bufPointer to the byte stream containing the serialized secret key data.
    [in]sk_buf_lenThe length of the secret key byte stream.
    [in]contextPointer to application-specific data, handled externally, associated with the key.
    +
    +
    +
    Returns
    OQS_SUCCESS if the deserialization succeeds, with the sk object populated with the key material.
    +
    Attention
    The caller is responsible for ensuring that sk_buf is securely deallocated when it's no longer needed.
    + +
    +
    + +

    ◆ free_key

    + +
    +
    + + + + +
    void(* OQS_SIG_STFL_SECRET_KEY::free_key) (OQS_SIG_STFL_SECRET_KEY *sk)
    +
    +

    Free internal variant-specific data

    +
    Parameters
    + + +
    [in]skThe secret key represented as OQS_SIG_STFL_SECRET_KEY object.
    +
    +
    +
    Returns
    None.
    + +
    +
    + +

    ◆ length_secret_key

    + +
    +
    + + + + +
    size_t OQS_SIG_STFL_SECRET_KEY::length_secret_key
    +
    +

    The (maximum) length, in bytes, of secret keys for this signature scheme.

    + +
    +
    + +

    ◆ lock_key

    + +
    +
    + + + + +
    OQS_STATUS(* OQS_SIG_STFL_SECRET_KEY::lock_key) (void *mutex)
    +
    +

    Secret Key Locking Function

    +
    Parameters
    + + +
    [in]mutexapplication defined mutex
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    + +

    ◆ mutex

    + +
    +
    + + + + +
    void* OQS_SIG_STFL_SECRET_KEY::mutex
    +
    +

    The mutual exclusion struct

    + +
    +
    + +

    ◆ secret_key_data

    + +
    +
    + + + + +
    void* OQS_SIG_STFL_SECRET_KEY::secret_key_data
    +
    +

    The variant-specific secret key data must be allocated at the initialization.

    + +
    +
    + +

    ◆ secure_store_scrt_key

    + +
    +
    + + + + +
    OQS_STATUS(* OQS_SIG_STFL_SECRET_KEY::secure_store_scrt_key) (uint8_t *sk_buf, size_t sk_buf_len, void *context)
    +
    +

    Store Secret Key Function

    +

    Callback function used to securely store key data after a signature generation. When populated, this pointer points to the application-supplied secure storage function.

    Parameters
    + + + + +
    [in]sk_bufThe serialized secret key data to secure store
    [in]sk_buf_lenlength of data to secure
    [in]contextapplication supplied data used to locate where this secret key is stored (passed in at the time the function pointer was set).
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR Ideally written to a secure device.
    + +
    +
    + +

    ◆ serialize_key

    + +
    +
    + + + + +
    OQS_STATUS(* OQS_SIG_STFL_SECRET_KEY::serialize_key) (uint8_t **sk_buf_ptr, size_t *sk_buf_len, const OQS_SIG_STFL_SECRET_KEY *sk)
    +
    +

    Serialize the stateful secret key.

    +

    This function encodes the stateful secret key represented by sk into a byte stream for storage or transfer. The sk_buf_ptr will point to the allocated memory containing the byte stream. Users must free the sk_buf_ptr using OQS_MEM_secure_free after use. The sk_len will contain the length of the byte stream.

    +
    Parameters
    + + + + +
    [out]sk_buf_ptrPointer to the byte stream representing the serialized secret key.
    [out]sk_buf_lenPointer to the length of the serialized byte stream.
    [in]skPointer to the OQS_SIG_STFL_SECRET_KEY object to serialize.
    +
    +
    +
    Returns
    The number of bytes in the serialized byte stream upon success, or an OQS error code on failure.
    +
    Attention
    The caller is responsible for ensuring that sk is a valid object before calling this function.
    + +
    +
    + +

    ◆ set_scrt_key_store_cb

    + +
    +
    + + + + +
    void(* OQS_SIG_STFL_SECRET_KEY::set_scrt_key_store_cb) (OQS_SIG_STFL_SECRET_KEY *sk, secure_store_sk store_cb, void *context)
    +
    +

    Set Secret Key Store Callback Function

    +

    This function is used to establish a callback mechanism for secure storage of private keys involved in stateful signature Signing operation. The secure storage and the management of private keys is the responsibility of the adopting application. Therefore, before invoking stateful signature generation, a callback function and associated context data must be provided by the application to manage the storage.

    +

    The context argument is designed to hold information requisite for private key storage, such as a hardware security module (HSM) context, a file path, or other relevant data. This context is passed to the libOQS when the callback function is registered.

    +
    Parameters
    + + + + +
    [in]skA pointer to the secret key object that requires secure storage management after signature Signing operations.
    [in]store_cbA pointer to the callback function provided by the application for storing and updating the private key securely.
    [in]contextApplication-specific context information for the private key storage, furnished when setting the callback function via OQS_SIG_STFL_SECRET_KEY_set_store_cb().
    +
    +
    +
    Returns
    None.
    + +
    +
    + +

    ◆ unlock_key

    + +
    +
    + + + + +
    OQS_STATUS(* OQS_SIG_STFL_SECRET_KEY::unlock_key) (void *mutex)
    +
    +

    Secret Key Unlocking / Releasing Function

    +
    Parameters
    + + +
    [in]mutexapplication defined mutex
    +
    +
    +
    Returns
    OQS_SUCCESS or OQS_ERROR
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + +
    + + diff --git a/liboqs/api/doxygen/tabs.css b/liboqs/api/doxygen/tabs.css new file mode 100644 index 0000000..84f33ae --- /dev/null +++ b/liboqs/api/doxygen/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-color:var(--nav-menu-background-color)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;line-height:36px;text-decoration:none;color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-color:var(--nav-menu-active-bg);border-radius:5px}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-color:var(--nav-menu-active-bg);border-radius:5px}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-color:var(--nav-menu-background-color);line-height:36px}.sm-dox a span.sub-arrow{top:15px;right:10px;box-sizing:content-box;padding:0;margin:0;display:inline-block;width:5px;height:5px;background-color:var(--nav-menu-background-color);border-right:2px solid var(--nav-arrow-color);border-bottom:2px solid var(--nav-arrow-color);transform:rotate(45deg);-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 6px}.sm-dox a:hover{background-color:var(--nav-menu-active-bg);border-radius:5px !important}.sm-dox a:hover span.sub-arrow{background-color:var(--nav-menu-active-bg);border-right:2px solid var(--nav-arrow-selected-color);border-bottom:2px solid var(--nav-arrow-selected-color)}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0;padding:3px}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{transform:rotate(-45deg)}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important}.sm-dox ul a:hover{background-color:var(--nav-menu-active-bg);border-radius:5px}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:6px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:6px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} diff --git a/liboqs/api/index.md b/liboqs/api/index.md index a4347ef..02df569 100644 --- a/liboqs/api/index.md +++ b/liboqs/api/index.md @@ -7,15 +7,6 @@ has_children: true has_toc: false --- -# C API documentation - -Auto-generated documentation for the main header files and data structures needed by applications using liboqs is available as follows: - -- [common.h](common): Utility functions for use in liboqs. -- [kem.h](kem): Key encapsulation mechanisms - - [OQS_KEM struct](oqskem): Object-oriented struct for working with KEMs -- [sig.h](sig): Digital signature schemes - - [OQS_SIG struct](oqssig): Object-oriented struct for working with digital signature schemes -- [sig_stfl.h](sig_stfl): Stateful digital signature schemes - - [OQS_SIG_STFL_SECRET_KEY struct](oqssig_stfl_secret_key): Secret key data structure for stateful digital signature schemes -- [rand.h](rand): Random number generator + +## liboqs's API documentation is generated by [Doxygen]({{ "/liboqs/api/doxygen/index.html" | relative_url }}){:target="_blank"} diff --git a/liboqs/api/kem.html b/liboqs/api/kem.html deleted file mode 100644 index b797bde..0000000 --- a/liboqs/api/kem.html +++ /dev/null @@ -1,976 +0,0 @@ ---- -layout: default -parent: C API documentation -grand_parent: liboqs -title: kem.h ---- - -

    src/kem/kem.h

    - -
    - -

    Key encapsulation mechanisms.

    - -
    - -

    The file tests/example_kem.c contains two examples on using the OQS_KEM API.

    -

    The first example uses the individual scheme's algorithms directly and uses no dynamic memory allocation – all buffers are allocated on the stack, with sizes indicated using preprocessor macros. Since algorithms can be disabled at compile-time, the programmer should wrap the code in #ifdefs.

    -

    The second example uses an OQS_KEM object to use an algorithm specified at runtime. Therefore it uses dynamic memory allocation – all buffers must be malloc'ed by the programmer, with sizes indicated using the corresponding length member of the OQS_KEM object in question. Since algorithms can be disabled at compile-time, the programmer should check that the OQS_KEM object is not NULL.

    -

    SPDX-License-Identifier: MIT

    - - - -

    -

    Includes

    -
    - - - #include <stdbool.h> - -
    - - #include <stddef.h> - -
    - - #include <stdint.h> - -
    - - #include <oqs/oqs.h> - - - - - -

    -

    Typedefs

    - - -
    - -

    typedef struct OQS_KEM OQS_KEM

    - -

    Key encapsulation mechanism object

    - -
    - - - - - -

    -

    Functions

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    OQS_API const char *OQS_KEM_alg_identifier(size_t i)
    OQS_API intOQS_KEM_alg_count(void)
    OQS_API intOQS_KEM_alg_is_enabled(const char *method_name)
    OQS_API OQS_KEM *OQS_KEM_new(const char *method_name)
    OQS_API OQS_STATUSOQS_KEM_keypair_derand(const OQS_KEM *kem, uint8_t *public_key, uint8_t *secret_key, const uint8_t *seed)
    OQS_API OQS_STATUSOQS_KEM_keypair(const OQS_KEM *kem, uint8_t *public_key, uint8_t *secret_key)
    OQS_API OQS_STATUSOQS_KEM_encaps(const OQS_KEM *kem, uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key)
    OQS_API OQS_STATUSOQS_KEM_decaps(const OQS_KEM *kem, uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key)
    OQS_API voidOQS_KEM_free(OQS_KEM *kem)
    - -
    -
    - -

    OQS_KEM_alg_identifier

    -
    OQS_API const char * OQS_KEM_alg_identifier(size_t i)
    -
    - -

    Returns identifiers for available key encapsulation mechanisms in liboqs. Used with OQS_KEM_new.

    -

    Note that algorithm identifiers are present in this list even when the algorithm is disabled at compile time.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - -
    size_ti -

    Index of the algorithm identifier to return, 0 <= i < OQS_KEM_algs_length

    -
    - - -

    Returns

    -

    Algorithm identifier as a string, or NULL.

    -
    - -
    -
    -
    -
    -
    - -

    OQS_KEM_alg_count

    -
    OQS_API int OQS_KEM_alg_count(void)
    -
    - -

    Returns the number of key encapsulation mechanisms in liboqs. They can be enumerated with OQS_KEM_alg_identifier.

    -

    Note that some mechanisms may be disabled at compile time.

    -

    -

    - -
    - - -

    Returns

    -

    The number of key encapsulation mechanisms.

    -
    - -
    -
    -
    -
    -
    - -

    OQS_KEM_alg_is_enabled

    -
    OQS_API int OQS_KEM_alg_is_enabled(const char *method_name)
    -
    - -

    Indicates whether the specified algorithm was enabled at compile-time or not.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - -
    const char *method_name -

    Name of the desired algorithm; one of the names in OQS_KEM_algs.

    -
    - - -

    Returns

    -

    1 if enabled, 0 if disabled or not found

    -
    - -
    -
    -
    -
    -
    - -

    OQS_KEM_new

    -
    OQS_API OQS_KEM * OQS_KEM_new(const char *method_name)
    -
    - -

    Constructs an OQS_KEM object for a particular algorithm.

    -

    Callers should always check whether the return value is NULL, which indicates either than an invalid algorithm name was provided, or that the requested algorithm was disabled at compile-time.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - -
    const char *method_name -

    Name of the desired algorithm; one of the names in OQS_KEM_algs.

    -
    - - -

    Returns

    -

    An OQS_KEM for the particular algorithm, or NULL if the algorithm has been disabled at compile-time.

    -
    - -
    -
    -
    -
    -
    - -

    OQS_KEM_keypair_derand

    -
    OQS_API OQS_STATUS OQS_KEM_keypair_derand(const OQS_KEM *kem, uint8_t *public_key, uint8_t *secret_key, const uint8_t *seed)
    -
    - -

    Derandomized keypair generation algorithm.

    -

    Caller is responsible for allocating sufficient memory for public_key and secret_key, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    const OQS_KEM *kem -

    The OQS_KEM object representing the KEM.

    -
    uint8_t *public_key -

    The public key represented as a byte string.

    -
    uint8_t *secret_key -

    The secret key represented as a byte string.

    -
    const uint8_t *seed -

    The input randomness represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    OQS_KEM_keypair

    -
    OQS_API OQS_STATUS OQS_KEM_keypair(const OQS_KEM *kem, uint8_t *public_key, uint8_t *secret_key)
    -
    - -

    Keypair generation algorithm.

    -

    Caller is responsible for allocating sufficient memory for public_key and secret_key, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - -
    const OQS_KEM *kem -

    The OQS_KEM object representing the KEM.

    -
    uint8_t *public_key -

    The public key represented as a byte string.

    -
    uint8_t *secret_key -

    The secret key represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    OQS_KEM_encaps

    -
    OQS_API OQS_STATUS OQS_KEM_encaps(const OQS_KEM *kem, uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key)
    -
    - -

    Encapsulation algorithm.

    -

    Caller is responsible for allocating sufficient memory for ciphertext and shared_secret, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    const OQS_KEM *kem -

    The OQS_KEM object representing the KEM.

    -
    uint8_t *ciphertext -

    The ciphertext (encapsulation) represented as a byte string.

    -
    uint8_t *shared_secret -

    The shared secret represented as a byte string.

    -
    const uint8_t *public_key -

    The public key represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    OQS_KEM_decaps

    -
    OQS_API OQS_STATUS OQS_KEM_decaps(const OQS_KEM *kem, uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key)
    -
    - -

    Decapsulation algorithm.

    -

    Caller is responsible for allocating sufficient memory for shared_secret, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    const OQS_KEM *kem -

    The OQS_KEM object representing the KEM.

    -
    uint8_t *shared_secret -

    The shared secret represented as a byte string.

    -
    const uint8_t *ciphertext -

    The ciphertext (encapsulation) represented as a byte string.

    -
    const uint8_t *secret_key -

    The secret key represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    OQS_KEM_free

    -
    OQS_API void OQS_KEM_free(OQS_KEM *kem)
    -
    - -

    Frees an OQS_KEM object that was constructed by OQS_KEM_new.

    -

    -

    - -
    - -

    Parameters

    - - - - - - - - -
    OQS_KEM *kem -

    The OQS_KEM object to free.

    -
    - - -
    -
    -
    - - - -

    -

    Macros

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

    - #define - OQS_KEM_alg_bike_l1 - - - "BIKE-L1" - -

    - -

    Algorithm identifier for BIKE-L1 KEM (Round-4).

    - - -
    - -

    - #define - OQS_KEM_alg_bike_l3 - - - "BIKE-L3" - -

    - -

    Algorithm identifier for BIKE-L3 KEM (Round-4).

    - - -
    - -

    - #define - OQS_KEM_alg_bike_l5 - - - "BIKE-L5" - -

    - -

    Algorithm identifier for BIKE-L5 KEM (Round-4).

    - - -
    - -

    - #define - OQS_KEM_alg_classic_mceliece_348864 - - - "Classic-McEliece-348864" - -

    - -

    Algorithm identifier for Classic-McEliece-348864 KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_classic_mceliece_348864f - - - "Classic-McEliece-348864f" - -

    - -

    Algorithm identifier for Classic-McEliece-348864f KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_classic_mceliece_460896 - - - "Classic-McEliece-460896" - -

    - -

    Algorithm identifier for Classic-McEliece-460896 KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_classic_mceliece_460896f - - - "Classic-McEliece-460896f" - -

    - -

    Algorithm identifier for Classic-McEliece-460896f KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_classic_mceliece_6688128 - - - "Classic-McEliece-6688128" - -

    - -

    Algorithm identifier for Classic-McEliece-6688128 KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_classic_mceliece_6688128f - - - "Classic-McEliece-6688128f" - -

    - -

    Algorithm identifier for Classic-McEliece-6688128f KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_classic_mceliece_6960119 - - - "Classic-McEliece-6960119" - -

    - -

    Algorithm identifier for Classic-McEliece-6960119 KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_classic_mceliece_6960119f - - - "Classic-McEliece-6960119f" - -

    - -

    Algorithm identifier for Classic-McEliece-6960119f KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_classic_mceliece_8192128 - - - "Classic-McEliece-8192128" - -

    - -

    Algorithm identifier for Classic-McEliece-8192128 KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_classic_mceliece_8192128f - - - "Classic-McEliece-8192128f" - -

    - -

    Algorithm identifier for Classic-McEliece-8192128f KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_hqc_128 - - - "HQC-128" - -

    - -

    Algorithm identifier for HQC-128 KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_hqc_192 - - - "HQC-192" - -

    - -

    Algorithm identifier for HQC-192 KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_hqc_256 - - - "HQC-256" - -

    - -

    Algorithm identifier for HQC-256 KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_kyber_512 - - - "Kyber512" - -

    - -

    Algorithm identifier for Kyber512 KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_kyber_768 - - - "Kyber768" - -

    - -

    Algorithm identifier for Kyber768 KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_kyber_1024 - - - "Kyber1024" - -

    - -

    Algorithm identifier for Kyber1024 KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_ml_kem_512 - - - "ML-KEM-512" - -

    - -

    Algorithm identifier for ML-KEM-512 KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_ml_kem_768 - - - "ML-KEM-768" - -

    - -

    Algorithm identifier for ML-KEM-768 KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_ml_kem_1024 - - - "ML-KEM-1024" - -

    - -

    Algorithm identifier for ML-KEM-1024 KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_ntruprime_sntrup761 - - - "sntrup761" - -

    - -

    Algorithm identifier for sntrup761 KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_frodokem_640_aes - - - "FrodoKEM-640-AES" - -

    - -

    Algorithm identifier for FrodoKEM-640-AES KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_frodokem_640_shake - - - "FrodoKEM-640-SHAKE" - -

    - -

    Algorithm identifier for FrodoKEM-640-SHAKE KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_frodokem_976_aes - - - "FrodoKEM-976-AES" - -

    - -

    Algorithm identifier for FrodoKEM-976-AES KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_frodokem_976_shake - - - "FrodoKEM-976-SHAKE" - -

    - -

    Algorithm identifier for FrodoKEM-976-SHAKE KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_frodokem_1344_aes - - - "FrodoKEM-1344-AES" - -

    - -

    Algorithm identifier for FrodoKEM-1344-AES KEM.

    - - -
    - -

    - #define - OQS_KEM_alg_frodokem_1344_shake - - - "FrodoKEM-1344-SHAKE" - -

    - -

    Algorithm identifier for FrodoKEM-1344-SHAKE KEM.

    - - -
    - -

    - #define - OQS_KEM_algs_length - - - 29 - -

    - -

    Number of algorithm identifiers above.

    - - -
    - - - -

    -
  • - - - - - - - - - - diff --git a/liboqs/api/oqskem.html b/liboqs/api/oqskem.html deleted file mode 100644 index b1d5895..0000000 --- a/liboqs/api/oqskem.html +++ /dev/null @@ -1,450 +0,0 @@ ---- -layout: default -parent: C API documentation -grand_parent: liboqs -title: OQS_KEM struct ---- - -

    struct OQS_KEM

    - -
    - - -
    - -

    Key encapsulation mechanism object

    - - - -

    -

    Includes

    -
    - - - #include <kem.h> - - - - - -

    -

    Members

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    const char *method_name
    const char *alg_version
    uint8_tclaimed_nist_level
    boolind_cca
    size_tlength_public_key
    size_tlength_secret_key
    size_tlength_ciphertext
    size_tlength_shared_secret
    size_tlength_keypair_seed
    OQS_STATUS(*keypair_derand)(uint8_t *public_key, uint8_t *secret_key, const uint8_t *seed)
    OQS_STATUS(*keypair)(uint8_t *public_key, uint8_t *secret_key)
    OQS_STATUS(*encaps)(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key)
    OQS_STATUS(*decaps)(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key)
    -
    -
    - -

    method_name

    -
    const char * method_name
    -
    - -

    Printable string representing the name of the key encapsulation mechanism.

    - -
    - - -
    -
    -
    -
    -
    - -

    alg_version

    -
    const char * alg_version
    -
    - -

    Printable string representing the version of the cryptographic algorithm.

    -

    Implementations with the same method_name and same alg_version will be interoperable. See README.md for information about algorithm compatibility.

    - -
    - - -
    -
    -
    -
    -
    - -

    claimed_nist_level

    -
    uint8_t claimed_nist_level
    -
    - -

    The NIST security level (1, 2, 3, 4, 5) claimed in this algorithm's original NIST submission.

    - -
    - - -
    -
    -
    -
    -
    - -

    ind_cca

    -
    bool ind_cca
    -
    - -

    Whether the KEM offers IND-CCA security (TRUE) or IND-CPA security (FALSE).

    - -
    - - -
    -
    -
    -
    -
    - -

    length_public_key

    -
    size_t length_public_key
    -
    - -

    The length, in bytes, of public keys for this KEM.

    - -
    - - -
    -
    -
    -
    -
    - -

    length_secret_key

    -
    size_t length_secret_key
    -
    - -

    The length, in bytes, of secret keys for this KEM.

    - -
    - - -
    -
    -
    -
    -
    - -

    length_ciphertext

    -
    size_t length_ciphertext
    -
    - -

    The length, in bytes, of ciphertexts for this KEM.

    - -
    - - -
    -
    -
    -
    -
    - -

    length_shared_secret

    -
    size_t length_shared_secret
    -
    - -

    The length, in bytes, of shared secrets for this KEM.

    - -
    - - -
    -
    -
    -
    -
    - -

    length_keypair_seed

    -
    size_t length_keypair_seed
    -
    - -

    The length, in bytes, of seeds for derandomized keypair generation for this KEM.

    - -
    - - -
    -
    -
    -
    -
    - -

    keypair_derand

    -
    OQS_STATUS(* keypair_derand)(uint8_t *public_key, uint8_t *secret_key, const uint8_t *seed)
    -
    - -

    Derandomized keypair generation algorithm.

    -

    Caller is responsible for allocating sufficient memory for public_key and secret_key, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - -
    public_key -

    The public key represented as a byte string.

    -
    secret_key -

    The secret key represented as a byte string.

    -
    seed -

    The input randomness represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    keypair

    -
    OQS_STATUS(* keypair)(uint8_t *public_key, uint8_t *secret_key)
    -
    - -

    Keypair generation algorithm.

    -

    Caller is responsible for allocating sufficient memory for public_key and secret_key, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - -
    public_key -

    The public key represented as a byte string.

    -
    secret_key -

    The secret key represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    encaps

    -
    OQS_STATUS(* encaps)(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key)
    -
    - -

    Encapsulation algorithm.

    -

    Caller is responsible for allocating sufficient memory for ciphertext and shared_secret, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - -
    ciphertext -

    The ciphertext (encapsulation) represented as a byte string.

    -
    shared_secret -

    The shared secret represented as a byte string.

    -
    public_key -

    The public key represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    decaps

    -
    OQS_STATUS(* decaps)(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key)
    -
    - -

    Decapsulation algorithm.

    -

    Caller is responsible for allocating sufficient memory for shared_secret, based on the length_* members in this object or the per-scheme compile-time macros OQS_KEM_*_length_*.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - -
    shared_secret -

    The shared secret represented as a byte string.

    -
    ciphertext -

    The ciphertext (encapsulation) represented as a byte string.

    -
    secret_key -

    The secret key represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    - - - -

    - - - - - - - - - - - diff --git a/liboqs/api/oqssig.html b/liboqs/api/oqssig.html deleted file mode 100644 index 99c068f..0000000 --- a/liboqs/api/oqssig.html +++ /dev/null @@ -1,601 +0,0 @@ ---- -layout: default -parent: C API documentation -grand_parent: liboqs -title: OQS_SIG struct ---- - -

    struct OQS_SIG

    - -
    - - -
    - -

    Signature schemes object

    - - - -

    -

    Includes

    -
    - - - #include <sig.h> - - - - - -

    -

    Members

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    const char *method_name
    const char *alg_version
    uint8_tclaimed_nist_level
    booleuf_cma
    boolsuf_cma
    boolsig_with_ctx_support
    size_tlength_public_key
    size_tlength_secret_key
    size_tlength_signature
    OQS_STATUS(*keypair)(uint8_t *public_key, uint8_t *secret_key)
    OQS_STATUS(*sign)(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key)
    OQS_STATUS(*sign_with_ctx_str)(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *secret_key)
    OQS_STATUS(*verify)(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key)
    OQS_STATUS(*verify_with_ctx_str)(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *public_key)
    -
    -
    - -

    method_name

    -
    const char * method_name
    -
    - -

    Printable string representing the name of the signature scheme.

    - -
    - - -
    -
    -
    -
    -
    - -

    alg_version

    -
    const char * alg_version
    -
    - -

    Printable string representing the version of the cryptographic algorithm.

    -

    Implementations with the same method_name and same alg_version will be interoperable. See README.md for information about algorithm compatibility.

    - -
    - - -
    -
    -
    -
    -
    - -

    claimed_nist_level

    -
    uint8_t claimed_nist_level
    -
    - -

    The NIST security level (1, 2, 3, 4, 5) claimed in this algorithm's original NIST submission.

    - -
    - - -
    -
    -
    -
    -
    - -

    euf_cma

    -
    bool euf_cma
    -
    - -

    Whether the signature offers EUF-CMA security (TRUE) or not (FALSE).

    - -
    - - -
    -
    -
    -
    -
    - -

    suf_cma

    -
    bool suf_cma
    -
    - -

    Whether the signature offers SUF-CMA security (TRUE) or not (FALSE).

    - -
    - - -
    -
    -
    -
    -
    - -

    sig_with_ctx_support

    -
    bool sig_with_ctx_support
    -
    - -

    Whether the signature supports signing with a context string (TRUE) or not (FALSE).

    - -
    - - -
    -
    -
    -
    -
    - -

    length_public_key

    -
    size_t length_public_key
    -
    - -

    The length, in bytes, of public keys for this signature scheme.

    - -
    - - -
    -
    -
    -
    -
    - -

    length_secret_key

    -
    size_t length_secret_key
    -
    - -

    The length, in bytes, of secret keys for this signature scheme.

    - -
    - - -
    -
    -
    -
    -
    - -

    length_signature

    -
    size_t length_signature
    -
    - -

    The (maximum) length, in bytes, of signatures for this signature scheme.

    - -
    - - -
    -
    -
    -
    -
    - -

    keypair

    -
    OQS_STATUS(* keypair)(uint8_t *public_key, uint8_t *secret_key)
    -
    - -

    Keypair generation algorithm.

    -

    Caller is responsible for allocating sufficient memory for public_key and secret_key, based on the length_* members in this object or the per-scheme compile-time macros OQS_SIG_*_length_*.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - -
    public_key -

    The public key represented as a byte string.

    -
    secret_key -

    The secret key represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    sign

    -
    OQS_STATUS(* sign)(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key)
    -
    - -

    Signature generation algorithm.

    -

    Caller is responsible for allocating sufficient memory for signature, based on the length_* members in this object or the per-scheme compile-time macros OQS_SIG_*_length_*.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    signature -

    The signature on the message represented as a byte string.

    -
    signature_len -

    The actual length of the signature. May be smaller than length_signature for some algorithms since some algorithms have variable length signatures.

    -
    message -

    The message to sign represented as a byte string.

    -
    message_len -

    The length of the message to sign.

    -
    secret_key -

    The secret key represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    sign_with_ctx_str

    -
    OQS_STATUS(* sign_with_ctx_str)(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *secret_key)
    -
    - -

    Signature generation algorithm, with custom context string.

    -

    Caller is responsible for allocating sufficient memory for signature, based on the length_* members in this object or the per-scheme compile-time macros OQS_SIG_*_length_*.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    signature -

    The signature on the message represented as a byte string.

    -
    signature_len -

    The actual length of the signature. May be smaller than length_signature for some algorithms since some algorithms have variable length signatures.

    -
    message -

    The message to sign represented as a byte string.

    -
    message_len -

    The length of the message to sign.

    -
    ctx_str -

    The context string used for the signature. This value can be set to NULL if a context string is not needed (i.e., for algorithms that do not support context strings or if an empty context string is used).

    -
    ctx_str_len -

    The context string used for the signature. This value can be set to 0 if a context string is not needed (i.e., for algorithms that do not support context strings or if an empty context string is used).

    -
    secret_key -

    The secret key represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    verify

    -
    OQS_STATUS(* verify)(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key)
    -
    - -

    Signature verification algorithm.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    message -

    The message represented as a byte string.

    -
    message_len -

    The length of the message.

    -
    signature -

    The signature on the message represented as a byte string.

    -
    signature_len -

    The length of the signature.

    -
    public_key -

    The public key represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    verify_with_ctx_str

    -
    OQS_STATUS(* verify_with_ctx_str)(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *public_key)
    -
    - -

    Signature verification algorithm, with custom context string.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    message -

    The message represented as a byte string.

    -
    message_len -

    The length of the message.

    -
    signature -

    The signature on the message represented as a byte string.

    -
    signature_len -

    The length of the signature.

    -
    ctx_str -

    The context string for the signature. This value can be set to NULL if a context string is not needed (i.e., for algorithms that do not support context strings or if an empty context string is used).

    -
    ctx_str_len -

    The length of the context string. This value can be set to 0 if a context string is not needed (i.e., for algorithms that do not support context strings or if an empty context string is used).

    -
    public_key -

    The public key represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    - - - -

    - - - - - - - - - - - diff --git a/liboqs/api/oqssig_stfl_secret_key.html b/liboqs/api/oqssig_stfl_secret_key.html deleted file mode 100644 index 1647d53..0000000 --- a/liboqs/api/oqssig_stfl_secret_key.html +++ /dev/null @@ -1,487 +0,0 @@ ---- -layout: default -parent: C API documentation -grand_parent: liboqs -title: OQS_SIG_STFL_SECRET_KEY struct ---- - -

    struct OQS_SIG_STFL_SECRET_KEY

    - -
    - -

    OQS_SIG_STFL_SECRET_KEY object for stateful signature schemes.

    - -
    - - - - -

    -

    Includes

    -
    - - - #include <sig_stfl.h> - - - - - -

    -

    Members

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    size_tlength_secret_key
    void *secret_key_data
    void *mutex
    void *context
    OQS_STATUS(*serialize_key)(uint8_t **sk_buf_ptr, size_t *sk_buf_len, const OQS_SIG_STFL_SECRET_KEY *sk)
    OQS_STATUS(*deserialize_key)(OQS_SIG_STFL_SECRET_KEY *sk, const uint8_t *sk_buf, const size_t sk_buf_len, void *context)
    OQS_STATUS(*lock_key)(void *mutex)
    OQS_STATUS(*unlock_key)(void *mutex)
    OQS_STATUS(*secure_store_scrt_key)(uint8_t *sk_buf, size_t sk_buf_len, void *context)
    void(*free_key)(OQS_SIG_STFL_SECRET_KEY *sk)
    void(*set_scrt_key_store_cb)(OQS_SIG_STFL_SECRET_KEY *sk, secure_store_sk store_cb, void *context)
    -
    -
    - -

    length_secret_key

    -
    size_t length_secret_key
    -
    - -

    The (maximum) length, in bytes, of secret keys for this signature scheme.

    - -
    - - -
    -
    -
    -
    -
    - -

    secret_key_data

    -
    void * secret_key_data
    -
    - -

    The variant-specific secret key data must be allocated at the initialization.

    - -
    - - -
    -
    -
    -
    -
    - -

    mutex

    -
    void * mutex
    -
    - -

    The mutual exclusion struct

    - -
    - - -
    -
    -
    -
    -
    - -

    context

    -
    void * context
    -
    - -

    Application-managed data related to secure storage of secret key data

    - -
    - - -
    -
    -
    -
    -
    - -

    serialize_key

    -
    OQS_STATUS(* serialize_key)(uint8_t **sk_buf_ptr, size_t *sk_buf_len, const OQS_SIG_STFL_SECRET_KEY *sk)
    -
    - -

    Serialize the stateful secret key.

    -

    This function encodes the stateful secret key represented by sk into a byte stream for storage or transfer. The sk_buf_ptr will point to the allocated memory containing the byte stream. Users must free the sk_buf_ptr using OQS_MEM_secure_free after use. The sk_len will contain the length of the byte stream.

    -

    - - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - -
    sk_buf_ptr -

    Pointer to the byte stream representing the serialized secret key.

    -
    sk_buf_len -

    Pointer to the length of the serialized byte stream.

    -
    sk -

    Pointer to the None object to serialize.

    -
    - - -

    Returns

    -

    The number of bytes in the serialized byte stream upon success, or an OQS error code on failure.

    -
    - -
    -
    -
    -
    -
    - -

    deserialize_key

    -
    OQS_STATUS(* deserialize_key)(OQS_SIG_STFL_SECRET_KEY *sk, const uint8_t *sk_buf, const size_t sk_buf_len, void *context)
    -
    - -

    Deserialize a byte stream into the internal representation of a stateful secret key.

    -

    This function takes a series of bytes representing a stateful secret key and initializes the internal None object with the key material. This is particularly useful for reconstructing key objects from persisted or transmitted state.

    -

    - - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    sk -

    Pointer to an uninitialized None object to hold the secret key.

    -
    sk_buf -

    Pointer to the byte stream containing the serialized secret key data.

    -
    sk_buf_len -

    The length of the secret key byte stream.

    -
    context -

    Pointer to application-specific data, handled externally, associated with the key.

    -
    - - -

    Returns

    -

    OQS_SUCCESS if the deserialization succeeds, with the sk object populated with the key material.

    -
    - -
    -
    -
    -
    -
    - -

    lock_key

    -
    OQS_STATUS(* lock_key)(void *mutex)
    -
    - -

    Secret Key Locking Function

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - -
    mutex -

    application defined mutex

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    unlock_key

    -
    OQS_STATUS(* unlock_key)(void *mutex)
    -
    - -

    Secret Key Unlocking / Releasing Function

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - -
    mutex -

    application defined mutex

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    secure_store_scrt_key

    -
    OQS_STATUS(* secure_store_scrt_key)(uint8_t *sk_buf, size_t sk_buf_len, void *context)
    -
    - -

    Store Secret Key Function

    -

    Callback function used to securely store key data after a signature generation. When populated, this pointer points to the application-supplied secure storage function. - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - -
    sk_buf -

    The serialized secret key data to secure store

    -
    sk_buf_len -

    length of data to secure

    -
    context -

    application supplied data used to locate where this secret key is stored (passed in at the time the function pointer was set).

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR Ideally written to a secure device.

    -
    - -
    -
    -
    -
    -
    - -

    free_key

    -
    void(* free_key)(OQS_SIG_STFL_SECRET_KEY *sk)
    -
    - -

    Free internal variant-specific data

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - -
    sk -

    The secret key represented as OQS_SIG_STFL_SECRET_KEY object.

    -
    - - -

    Returns

    -

    None.

    -
    - -
    -
    -
    -
    -
    - -

    set_scrt_key_store_cb

    -
    void(* set_scrt_key_store_cb)(OQS_SIG_STFL_SECRET_KEY *sk, secure_store_sk store_cb, void *context)
    -
    - -

    Set Secret Key Store Callback Function

    -

    This function is used to establish a callback mechanism for secure storage of private keys involved in stateful signature Signing operation. The secure storage and the management of private keys is the responsibility of the adopting application. Therefore, before invoking stateful signature generation, a callback function and associated context data must be provided by the application to manage the storage.

    -

    The context argument is designed to hold information requisite for private key storage, such as a hardware security module (HSM) context, a file path, or other relevant data. This context is passed to the libOQS when the callback function is registered.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - -
    sk -

    A pointer to the secret key object that requires secure storage management after signature Signing operations.

    -
    store_cb -

    A pointer to the callback function provided by the application for storing and updating the private key securely.

    -
    context -

    Application-specific context information for the private key storage, furnished when setting the callback function via OQS_SIG_STFL_SECRET_KEY_set_store_cb().

    -
    - - -

    Returns

    -

    None.

    -
    - -
    -
    -
    - - - -

    - - - - - - - - - - - diff --git a/liboqs/api/rand.html b/liboqs/api/rand.html deleted file mode 100644 index a041979..0000000 --- a/liboqs/api/rand.html +++ /dev/null @@ -1,227 +0,0 @@ ---- -layout: default -parent: C API documentation -grand_parent: liboqs -title: rand.h ---- - -

    src/common/rand/rand.h

    - -
    - -

    Random number generator.

    - -
    - -

    SPDX-License-Identifier: MIT

    - - - -

    -

    Includes

    -
    - - - #include <stdbool.h> - -
    - - #include <stddef.h> - -
    - - #include <stdint.h> - -
    - - #include <oqs/common.h> - - - - - - - - - -

    -

    Functions

    - - - - - - - - - - - - - - - - - - -
    OQS_API OQS_STATUSOQS_randombytes_switch_algorithm(const char *algorithm)
    OQS_API voidOQS_randombytes_custom_algorithm(void(*algorithm_ptr)(uint8_t *, size_t))
    OQS_API voidOQS_randombytes(uint8_t *random_array, size_t bytes_to_read)
    - -
    -
    - -

    OQS_randombytes_switch_algorithm

    -
    OQS_API OQS_STATUS OQS_randombytes_switch_algorithm(const char *algorithm)
    -
    - -

    Switches OQS_randombytes to use the specified algorithm.

    -

    - - -

    - -
    - -

    Parameters

    - - - - - - - - -
    const char *algorithm -

    The name of the algorithm to use.

    -
    - - -

    Returns

    -

    OQS_SUCCESS if algorithm is a supported algorithm name, OQS_ERROR otherwise.

    -
    - -
    -
    -
    -
    -
    - -

    OQS_randombytes_custom_algorithm

    -
    OQS_API void OQS_randombytes_custom_algorithm(void(*algorithm_ptr)(uint8_t *, size_t))
    -
    - -

    Switches OQS_randombytes to use the given function.

    -

    This allows additional custom RNGs besides the provided ones. The provided RNG function must have the same signature as OQS_randombytes.

    -

    -

    - -
    - -

    Parameters

    - - - - - - - - -
    void(*)(uint8_t *, size_t)algorithm_ptr -

    Pointer to the RNG function to use.

    -
    - - -
    -
    -
    -
    -
    - -

    OQS_randombytes

    -
    OQS_API void OQS_randombytes(uint8_t *random_array, size_t bytes_to_read)
    -
    - -

    Fills the given memory with the requested number of (pseudo)random bytes.

    -

    This implementation uses whichever algorithm has been selected by OQS_randombytes_switch_algorithm. The default is OQS_randombytes_system, which reads bytes from a system specific default source.

    -

    The caller is responsible for providing a buffer allocated with sufficient room.

    -

    -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - -
    uint8_t *random_array -

    Pointer to the memory to fill with (pseudo)random bytes

    -
    size_tbytes_to_read -

    The number of random bytes to read into memory

    -
    - - -
    -
    -
    - - - -

    -

    Macros

    - - - -
    - -

    - #define - OQS_RAND_alg_system - - - "system" - -

    - -

    Algorithm identifier for system PRNG.

    - - -
    - -

    - #define - OQS_RAND_alg_openssl - - - "OpenSSL" - -

    - -

    Algorithm identifier for using OpenSSL's PRNG.

    - - -
    - - - -

    - - - - - - - - - - - diff --git a/liboqs/api/sig.html b/liboqs/api/sig.html deleted file mode 100644 index a851b5c..0000000 --- a/liboqs/api/sig.html +++ /dev/null @@ -1,1720 +0,0 @@ ---- -layout: default -parent: C API documentation -grand_parent: liboqs -title: sig.h ---- - -

    src/sig/sig.h

    - -
    - -

    Signature schemes.

    - -
    - -

    The file tests/example_sig.c contains two examples on using the OQS_SIG API.

    -

    The first example uses the individual scheme's algorithms directly and uses no dynamic memory allocation – all buffers are allocated on the stack, with sizes indicated using preprocessor macros. Since algorithms can be disabled at compile-time, the programmer should wrap the code in #ifdefs.

    -

    The second example uses an OQS_SIG object to use an algorithm specified at runtime. Therefore it uses dynamic memory allocation – all buffers must be malloc'ed by the programmer, with sizes indicated using the corresponding length member of the OQS_SIG object in question. Since algorithms can be disabled at compile-time, the programmer should check that the OQS_SIG object is not NULL.

    -

    SPDX-License-Identifier: MIT

    - - - -

    -

    Includes

    -
    - - - #include <stdbool.h> - -
    - - #include <stddef.h> - -
    - - #include <stdint.h> - -
    - - #include <oqs/oqs.h> - - - - - -

    -

    Typedefs

    - - -
    - -

    typedef struct OQS_SIG OQS_SIG

    - -

    Signature schemes object

    - -
    - - - - - -

    -

    Functions

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    OQS_API const char *OQS_SIG_alg_identifier(size_t i)
    OQS_API intOQS_SIG_alg_count(void)
    OQS_API intOQS_SIG_alg_is_enabled(const char *method_name)
    OQS_API OQS_SIG *OQS_SIG_new(const char *method_name)
    OQS_API OQS_STATUSOQS_SIG_keypair(const OQS_SIG *sig, uint8_t *public_key, uint8_t *secret_key)
    OQS_API OQS_STATUSOQS_SIG_sign(const OQS_SIG *sig, uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key)
    OQS_API OQS_STATUSOQS_SIG_sign_with_ctx_str(const OQS_SIG *sig, uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *secret_key)
    OQS_API OQS_STATUSOQS_SIG_verify(const OQS_SIG *sig, const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key)
    OQS_API OQS_STATUSOQS_SIG_verify_with_ctx_str(const OQS_SIG *sig, const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *public_key)
    OQS_API voidOQS_SIG_free(OQS_SIG *sig)
    - -
    -
    - -

    OQS_SIG_alg_identifier

    -
    OQS_API const char * OQS_SIG_alg_identifier(size_t i)
    -
    - -

    Returns identifiers for available signature schemes in liboqs. Used with OQS_SIG_new.

    -

    Note that algorithm identifiers are present in this list even when the algorithm is disabled at compile time.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - -
    size_ti -

    Index of the algorithm identifier to return, 0 <= i < OQS_SIG_algs_length

    -
    - - -

    Returns

    -

    Algorithm identifier as a string, or NULL.

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_alg_count

    -
    OQS_API int OQS_SIG_alg_count(void)
    -
    - -

    Returns the number of signature mechanisms in liboqs. They can be enumerated with OQS_SIG_alg_identifier.

    -

    Note that some mechanisms may be disabled at compile time.

    -

    -

    - -
    - - -

    Returns

    -

    The number of signature mechanisms.

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_alg_is_enabled

    -
    OQS_API int OQS_SIG_alg_is_enabled(const char *method_name)
    -
    - -

    Indicates whether the specified algorithm was enabled at compile-time or not.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - -
    const char *method_name -

    Name of the desired algorithm; one of the names in OQS_SIG_algs.

    -
    - - -

    Returns

    -

    1 if enabled, 0 if disabled or not found

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_new

    -
    OQS_API OQS_SIG * OQS_SIG_new(const char *method_name)
    -
    - -

    Constructs an OQS_SIG object for a particular algorithm.

    -

    Callers should always check whether the return value is NULL, which indicates either than an invalid algorithm name was provided, or that the requested algorithm was disabled at compile-time.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - -
    const char *method_name -

    Name of the desired algorithm; one of the names in OQS_SIG_algs.

    -
    - - -

    Returns

    -

    An OQS_SIG for the particular algorithm, or NULL if the algorithm has been disabled at compile-time.

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_keypair

    -
    OQS_API OQS_STATUS OQS_SIG_keypair(const OQS_SIG *sig, uint8_t *public_key, uint8_t *secret_key)
    -
    - -

    Keypair generation algorithm.

    -

    Caller is responsible for allocating sufficient memory for public_key and secret_key, based on the length_* members in this object or the per-scheme compile-time macros OQS_SIG_*_length_*.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - -
    const OQS_SIG *sig -

    The OQS_SIG object representing the signature scheme.

    -
    uint8_t *public_key -

    The public key represented as a byte string.

    -
    uint8_t *secret_key -

    The secret key represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_sign

    -
    OQS_API OQS_STATUS OQS_SIG_sign(const OQS_SIG *sig, uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key)
    -
    - -

    Signature generation algorithm.

    -

    Caller is responsible for allocating sufficient memory for signnature, based on the length_* members in this object or the per-scheme compile-time macros OQS_SIG_*_length_*.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    const OQS_SIG *sig -

    The OQS_SIG object representing the signature scheme.

    -
    uint8_t *signature -

    The signature on the message represented as a byte string.

    -
    size_t *signature_len -

    The length of the signature.

    -
    const uint8_t *message -

    The message to sign represented as a byte string.

    -
    size_tmessage_len -

    The length of the message to sign.

    -
    const uint8_t *secret_key -

    The secret key represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_sign_with_ctx_str

    -
    OQS_API OQS_STATUS OQS_SIG_sign_with_ctx_str(const OQS_SIG *sig, uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *secret_key)
    -
    - -

    Signature generation algorithm, with custom context string.

    -

    Caller is responsible for allocating sufficient memory for signature, based on the length_* members in this object or the per-scheme compile-time macros OQS_SIG_*_length_*.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    const OQS_SIG *sig -

    The OQS_SIG object representing the signature scheme.

    -
    uint8_t *signature -

    The signature on the message represented as a byte string.

    -
    size_t *signature_len -

    The actual length of the signature. May be smaller than length_signature for some algorithms since some algorithms have variable length signatures.

    -
    const uint8_t *message -

    The message to sign represented as a byte string.

    -
    size_tmessage_len -

    The length of the message to sign.

    -
    const uint8_t *ctx_str -

    The context string used for the signature. This value can be set to NULL if a context string is not needed (i.e., for algorithms that do not support context strings or if an empty context string is used).

    -
    size_tctx_str_len -

    The context string used for the signature. This value can be set to 0 if a context string is not needed (i.e., for algorithms that do not support context strings or if an empty context string is used).

    -
    const uint8_t *secret_key -

    The secret key represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_verify

    -
    OQS_API OQS_STATUS OQS_SIG_verify(const OQS_SIG *sig, const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key)
    -
    - -

    Signature verification algorithm.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    const OQS_SIG *sig -

    The OQS_SIG object representing the signature scheme.

    -
    const uint8_t *message -

    The message represented as a byte string.

    -
    size_tmessage_len -

    The length of the message.

    -
    const uint8_t *signature -

    The signature on the message represented as a byte string.

    -
    size_tsignature_len -

    The length of the signature.

    -
    const uint8_t *public_key -

    The public key represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_verify_with_ctx_str

    -
    OQS_API OQS_STATUS OQS_SIG_verify_with_ctx_str(const OQS_SIG *sig, const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *public_key)
    -
    - -

    Signature verification algorithm, with custom context string.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    const OQS_SIG *sig -

    The OQS_SIG object representing the signature scheme.

    -
    const uint8_t *message -

    The message represented as a byte string.

    -
    size_tmessage_len -

    The length of the message.

    -
    const uint8_t *signature -

    The signature on the message represented as a byte string.

    -
    size_tsignature_len -

    The length of the signature.

    -
    const uint8_t *ctx_str -

    The context string used for the signature. This value can be set to NULL if a context string is not needed (i.e., for algorithms that do not support context strings or if an empty context string is used).

    -
    size_tctx_str_len -

    The context string used for the signature. This value can be set to 0 if a context string is not needed (i.e., for algorithms that do not support context strings or if an empty context string is used).

    -
    const uint8_t *public_key -

    The public key represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_free

    -
    OQS_API void OQS_SIG_free(OQS_SIG *sig)
    -
    - -

    Frees an OQS_SIG object that was constructed by OQS_SIG_new.

    -

    -

    - -
    - -

    Parameters

    - - - - - - - - -
    OQS_SIG *sig -

    The OQS_SIG object to free.

    -
    - - -
    -
    -
    - - - -

    -

    Macros

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

    - #define - OQS_SIG_alg_dilithium_2 - - - "Dilithium2" - -

    - -

    Algorithm identifier for Dilithium2

    - - -
    - -

    - #define - OQS_SIG_alg_dilithium_3 - - - "Dilithium3" - -

    - -

    Algorithm identifier for Dilithium3

    - - -
    - -

    - #define - OQS_SIG_alg_dilithium_5 - - - "Dilithium5" - -

    - -

    Algorithm identifier for Dilithium5

    - - -
    - -

    - #define - OQS_SIG_alg_ml_dsa_44 - - - "ML-DSA-44" - -

    - -

    Algorithm identifier for ML-DSA-44

    - - -
    - -

    - #define - OQS_SIG_alg_ml_dsa_65 - - - "ML-DSA-65" - -

    - -

    Algorithm identifier for ML-DSA-65

    - - -
    - -

    - #define - OQS_SIG_alg_ml_dsa_87 - - - "ML-DSA-87" - -

    - -

    Algorithm identifier for ML-DSA-87

    - - -
    - -

    - #define - OQS_SIG_alg_falcon_512 - - - "Falcon-512" - -

    - -

    Algorithm identifier for Falcon-512

    - - -
    - -

    - #define - OQS_SIG_alg_falcon_1024 - - - "Falcon-1024" - -

    - -

    Algorithm identifier for Falcon-1024

    - - -
    - -

    - #define - OQS_SIG_alg_falcon_padded_512 - - - "Falcon-padded-512" - -

    - -

    Algorithm identifier for Falcon-padded-512

    - - -
    - -

    - #define - OQS_SIG_alg_falcon_padded_1024 - - - "Falcon-padded-1024" - -

    - -

    Algorithm identifier for Falcon-padded-1024

    - - -
    - -

    - #define - OQS_SIG_alg_sphincs_sha2_128f_simple - - - "SPHINCS+-SHA2-128f-simple" - -

    - -

    Algorithm identifier for SPHINCS+-SHA2-128f-simple

    - - -
    - -

    - #define - OQS_SIG_alg_sphincs_sha2_128s_simple - - - "SPHINCS+-SHA2-128s-simple" - -

    - -

    Algorithm identifier for SPHINCS+-SHA2-128s-simple

    - - -
    - -

    - #define - OQS_SIG_alg_sphincs_sha2_192f_simple - - - "SPHINCS+-SHA2-192f-simple" - -

    - -

    Algorithm identifier for SPHINCS+-SHA2-192f-simple

    - - -
    - -

    - #define - OQS_SIG_alg_sphincs_sha2_192s_simple - - - "SPHINCS+-SHA2-192s-simple" - -

    - -

    Algorithm identifier for SPHINCS+-SHA2-192s-simple

    - - -
    - -

    - #define - OQS_SIG_alg_sphincs_sha2_256f_simple - - - "SPHINCS+-SHA2-256f-simple" - -

    - -

    Algorithm identifier for SPHINCS+-SHA2-256f-simple

    - - -
    - -

    - #define - OQS_SIG_alg_sphincs_sha2_256s_simple - - - "SPHINCS+-SHA2-256s-simple" - -

    - -

    Algorithm identifier for SPHINCS+-SHA2-256s-simple

    - - -
    - -

    - #define - OQS_SIG_alg_sphincs_shake_128f_simple - - - "SPHINCS+-SHAKE-128f-simple" - -

    - -

    Algorithm identifier for SPHINCS+-SHAKE-128f-simple

    - - -
    - -

    - #define - OQS_SIG_alg_sphincs_shake_128s_simple - - - "SPHINCS+-SHAKE-128s-simple" - -

    - -

    Algorithm identifier for SPHINCS+-SHAKE-128s-simple

    - - -
    - -

    - #define - OQS_SIG_alg_sphincs_shake_192f_simple - - - "SPHINCS+-SHAKE-192f-simple" - -

    - -

    Algorithm identifier for SPHINCS+-SHAKE-192f-simple

    - - -
    - -

    - #define - OQS_SIG_alg_sphincs_shake_192s_simple - - - "SPHINCS+-SHAKE-192s-simple" - -

    - -

    Algorithm identifier for SPHINCS+-SHAKE-192s-simple

    - - -
    - -

    - #define - OQS_SIG_alg_sphincs_shake_256f_simple - - - "SPHINCS+-SHAKE-256f-simple" - -

    - -

    Algorithm identifier for SPHINCS+-SHAKE-256f-simple

    - - -
    - -

    - #define - OQS_SIG_alg_sphincs_shake_256s_simple - - - "SPHINCS+-SHAKE-256s-simple" - -

    - -

    Algorithm identifier for SPHINCS+-SHAKE-256s-simple

    - - -
    - -

    - #define - OQS_SIG_alg_mayo_1 - - - "MAYO-1" - -

    - -

    Algorithm identifier for MAYO-1

    - - -
    - -

    - #define - OQS_SIG_alg_mayo_2 - - - "MAYO-2" - -

    - -

    Algorithm identifier for MAYO-2

    - - -
    - -

    - #define - OQS_SIG_alg_mayo_3 - - - "MAYO-3" - -

    - -

    Algorithm identifier for MAYO-3

    - - -
    - -

    - #define - OQS_SIG_alg_mayo_5 - - - "MAYO-5" - -

    - -

    Algorithm identifier for MAYO-5

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdp_128_balanced - - - "cross-rsdp-128-balanced" - -

    - -

    Algorithm identifier for cross-rsdp-128-balanced

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdp_128_fast - - - "cross-rsdp-128-fast" - -

    - -

    Algorithm identifier for cross-rsdp-128-fast

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdp_128_small - - - "cross-rsdp-128-small" - -

    - -

    Algorithm identifier for cross-rsdp-128-small

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdp_192_balanced - - - "cross-rsdp-192-balanced" - -

    - -

    Algorithm identifier for cross-rsdp-192-balanced

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdp_192_fast - - - "cross-rsdp-192-fast" - -

    - -

    Algorithm identifier for cross-rsdp-192-fast

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdp_192_small - - - "cross-rsdp-192-small" - -

    - -

    Algorithm identifier for cross-rsdp-192-small

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdp_256_balanced - - - "cross-rsdp-256-balanced" - -

    - -

    Algorithm identifier for cross-rsdp-256-balanced

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdp_256_fast - - - "cross-rsdp-256-fast" - -

    - -

    Algorithm identifier for cross-rsdp-256-fast

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdp_256_small - - - "cross-rsdp-256-small" - -

    - -

    Algorithm identifier for cross-rsdp-256-small

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdpg_128_balanced - - - "cross-rsdpg-128-balanced" - -

    - -

    Algorithm identifier for cross-rsdpg-128-balanced

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdpg_128_fast - - - "cross-rsdpg-128-fast" - -

    - -

    Algorithm identifier for cross-rsdpg-128-fast

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdpg_128_small - - - "cross-rsdpg-128-small" - -

    - -

    Algorithm identifier for cross-rsdpg-128-small

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdpg_192_balanced - - - "cross-rsdpg-192-balanced" - -

    - -

    Algorithm identifier for cross-rsdpg-192-balanced

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdpg_192_fast - - - "cross-rsdpg-192-fast" - -

    - -

    Algorithm identifier for cross-rsdpg-192-fast

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdpg_192_small - - - "cross-rsdpg-192-small" - -

    - -

    Algorithm identifier for cross-rsdpg-192-small

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdpg_256_balanced - - - "cross-rsdpg-256-balanced" - -

    - -

    Algorithm identifier for cross-rsdpg-256-balanced

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdpg_256_fast - - - "cross-rsdpg-256-fast" - -

    - -

    Algorithm identifier for cross-rsdpg-256-fast

    - - -
    - -

    - #define - OQS_SIG_alg_cross_rsdpg_256_small - - - "cross-rsdpg-256-small" - -

    - -

    Algorithm identifier for cross-rsdpg-256-small

    - - -
    - -

    - #define - OQS_SIG_alg_uov_ov_Is - - - "OV-Is" - -

    - -

    Algorithm identifier for OV-Is

    - - -
    - -

    - #define - OQS_SIG_alg_uov_ov_Ip - - - "OV-Ip" - -

    - -

    Algorithm identifier for OV-Ip

    - - -
    - -

    - #define - OQS_SIG_alg_uov_ov_III - - - "OV-III" - -

    - -

    Algorithm identifier for OV-III

    - - -
    - -

    - #define - OQS_SIG_alg_uov_ov_V - - - "OV-V" - -

    - -

    Algorithm identifier for OV-V

    - - -
    - -

    - #define - OQS_SIG_alg_uov_ov_Is_pkc - - - "OV-Is-pkc" - -

    - -

    Algorithm identifier for OV-Is-pkc

    - - -
    - -

    - #define - OQS_SIG_alg_uov_ov_Ip_pkc - - - "OV-Ip-pkc" - -

    - -

    Algorithm identifier for OV-Ip-pkc

    - - -
    - -

    - #define - OQS_SIG_alg_uov_ov_III_pkc - - - "OV-III-pkc" - -

    - -

    Algorithm identifier for OV-III-pkc

    - - -
    - -

    - #define - OQS_SIG_alg_uov_ov_V_pkc - - - "OV-V-pkc" - -

    - -

    Algorithm identifier for OV-V-pkc

    - - -
    - -

    - #define - OQS_SIG_alg_uov_ov_Is_pkc_skc - - - "OV-Is-pkc-skc" - -

    - -

    Algorithm identifier for OV-Is-pkc-skc

    - - -
    - -

    - #define - OQS_SIG_alg_uov_ov_Ip_pkc_skc - - - "OV-Ip-pkc-skc" - -

    - -

    Algorithm identifier for OV-Ip-pkc-skc

    - - -
    - -

    - #define - OQS_SIG_alg_uov_ov_III_pkc_skc - - - "OV-III-pkc-skc" - -

    - -

    Algorithm identifier for OV-III-pkc-skc

    - - -
    - -

    - #define - OQS_SIG_alg_uov_ov_V_pkc_skc - - - "OV-V-pkc-skc" - -

    - -

    Algorithm identifier for OV-V-pkc-skc

    - - -
    - -

    - #define - OQS_SIG_alg_snova_SNOVA_24_5_4 - - - "SNOVA_24_5_4" - -

    - -

    Algorithm identifier for SNOVA_24_5_4

    - - -
    - -

    - #define - OQS_SIG_alg_snova_SNOVA_24_5_4_SHAKE - - - "SNOVA_24_5_4_SHAKE" - -

    - -

    Algorithm identifier for SNOVA_24_5_4_SHAKE

    - - -
    - -

    - #define - OQS_SIG_alg_snova_SNOVA_24_5_4_esk - - - "SNOVA_24_5_4_esk" - -

    - -

    Algorithm identifier for SNOVA_24_5_4_esk

    - - -
    - -

    - #define - OQS_SIG_alg_snova_SNOVA_24_5_4_SHAKE_esk - - - "SNOVA_24_5_4_SHAKE_esk" - -

    - -

    Algorithm identifier for SNOVA_24_5_4_SHAKE_esk

    - - -
    - -

    - #define - OQS_SIG_alg_snova_SNOVA_37_17_2 - - - "SNOVA_37_17_2" - -

    - -

    Algorithm identifier for SNOVA_37_17_2

    - - -
    - -

    - #define - OQS_SIG_alg_snova_SNOVA_25_8_3 - - - "SNOVA_25_8_3" - -

    - -

    Algorithm identifier for SNOVA_25_8_3

    - - -
    - -

    - #define - OQS_SIG_alg_snova_SNOVA_56_25_2 - - - "SNOVA_56_25_2" - -

    - -

    Algorithm identifier for SNOVA_56_25_2

    - - -
    - -

    - #define - OQS_SIG_alg_snova_SNOVA_49_11_3 - - - "SNOVA_49_11_3" - -

    - -

    Algorithm identifier for SNOVA_49_11_3

    - - -
    - -

    - #define - OQS_SIG_alg_snova_SNOVA_37_8_4 - - - "SNOVA_37_8_4" - -

    - -

    Algorithm identifier for SNOVA_37_8_4

    - - -
    - -

    - #define - OQS_SIG_alg_snova_SNOVA_24_5_5 - - - "SNOVA_24_5_5" - -

    - -

    Algorithm identifier for SNOVA_24_5_5

    - - -
    - -

    - #define - OQS_SIG_alg_snova_SNOVA_60_10_4 - - - "SNOVA_60_10_4" - -

    - -

    Algorithm identifier for SNOVA_60_10_4

    - - -
    - -

    - #define - OQS_SIG_alg_snova_SNOVA_29_6_5 - - - "SNOVA_29_6_5" - -

    - -

    Algorithm identifier for SNOVA_29_6_5

    - - -
    - -

    - #define - OQS_SIG_algs_length - - - 68 - -

    - -

    Number of algorithm identifiers above.

    - - -
    - - - -

    - - - - - - - - - - - diff --git a/liboqs/api/sig_stfl.html b/liboqs/api/sig_stfl.html deleted file mode 100644 index f350c5b..0000000 --- a/liboqs/api/sig_stfl.html +++ /dev/null @@ -1,2174 +0,0 @@ ---- -layout: default -parent: C API documentation -grand_parent: liboqs -title: sig_stfl.h ---- - -

    src/sig_stfl/sig_stfl.h

    - -
    - -

    Stateful Signature schemes.

    - -
    - -

    The file tests/example_sig_stfl.c contains an example on using the OQS_SIG_STFL API.

    -

    SPDX-License-Identifier: MIT

    - - - -

    -

    Includes

    -
    - - - #include <stdbool.h> - -
    - - #include <stddef.h> - -
    - - #include <stdint.h> - -
    - - #include <oqs/oqs.h> - - - - - -

    -

    Typedefs

    - - - - - -
    - -

    typedef struct OQS_SIG_STFL_SECRET_KEY OQS_SIG_STFL_SECRET_KEY

    - - -
    - -

    typedef OQS_STATUS(* secure_store_sk

    - -

    Application provided function to securely store data -

    - -
    - -

    typedef OQS_STATUS(* lock_key

    - -

    Application provided function to lock secret key object serialize access -

    - -
    - -

    typedef OQS_STATUS(* unlock_key

    - -

    Application provided function to unlock secret key object -

    - -
    - - - - - -

    -

    Functions

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    OQS_API const char *OQS_SIG_STFL_alg_identifier(size_t i)
    OQS_API intOQS_SIG_STFL_alg_count(void)
    OQS_API intOQS_SIG_STFL_alg_is_enabled(const char *method_name)
    OQS_API OQS_SIG_STFL *OQS_SIG_STFL_new(const char *method_name)
    OQS_API OQS_STATUSOQS_SIG_STFL_keypair(const OQS_SIG_STFL *sig, uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key)
    OQS_API OQS_STATUSOQS_SIG_STFL_sign(const OQS_SIG_STFL *sig, uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, OQS_SIG_STFL_SECRET_KEY *secret_key)
    OQS_API OQS_STATUSOQS_SIG_STFL_verify(const OQS_SIG_STFL *sig, const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key)
    OQS_API OQS_STATUSOQS_SIG_STFL_sigs_remaining(const OQS_SIG_STFL *sig, unsigned long long *remain, const OQS_SIG_STFL_SECRET_KEY *secret_key)
    OQS_API OQS_STATUSOQS_SIG_STFL_sigs_total(const OQS_SIG_STFL *sig, unsigned long long *max, const OQS_SIG_STFL_SECRET_KEY *secret_key)
    OQS_API voidOQS_SIG_STFL_free(OQS_SIG_STFL *sig)
    OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SIG_STFL_SECRET_KEY_new(const char *method_name)
    OQS_API voidOQS_SIG_STFL_SECRET_KEY_free(OQS_SIG_STFL_SECRET_KEY *sk)
    OQS_API voidOQS_SIG_STFL_SECRET_KEY_SET_lock(OQS_SIG_STFL_SECRET_KEY *sk, lock_key lock)
    OQS_API voidOQS_SIG_STFL_SECRET_KEY_SET_unlock(OQS_SIG_STFL_SECRET_KEY *sk, unlock_key unlock)
    OQS_API voidOQS_SIG_STFL_SECRET_KEY_SET_mutex(OQS_SIG_STFL_SECRET_KEY *sk, void *mutex)
    OQS_STATUSOQS_SIG_STFL_SECRET_KEY_lock(OQS_SIG_STFL_SECRET_KEY *sk)
    OQS_STATUSOQS_SIG_STFL_SECRET_KEY_unlock(OQS_SIG_STFL_SECRET_KEY *sk)
    OQS_API voidOQS_SIG_STFL_SECRET_KEY_SET_store_cb(OQS_SIG_STFL_SECRET_KEY *sk, secure_store_sk store_cb, void *context)
    OQS_API OQS_STATUSOQS_SIG_STFL_SECRET_KEY_serialize(uint8_t **sk_buf_ptr, size_t *sk_buf_len, const OQS_SIG_STFL_SECRET_KEY *sk)
    OQS_API OQS_STATUSOQS_SIG_STFL_SECRET_KEY_deserialize(OQS_SIG_STFL_SECRET_KEY *sk, const uint8_t *sk_buf, size_t sk_buf_len, void *context)
    - -
    -
    - -

    OQS_SIG_STFL_alg_identifier

    -
    OQS_API const char * OQS_SIG_STFL_alg_identifier(size_t i)
    -
    - -

    Returns identifiers for available signature schemes in liboqs. Used with OQS_SIG_STFL_new.

    -

    Note that algorithm identifiers are present in this list even when the algorithm is disabled at compile time.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - -
    size_ti -

    Index of the algorithm identifier to return, 0 <= i < OQS_SIG_algs_length

    -
    - - -

    Returns

    -

    Algorithm identifier as a string, or NULL.

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_alg_count

    -
    OQS_API int OQS_SIG_STFL_alg_count(void)
    -
    - -

    Returns the number of stateful signature mechanisms in liboqs. They can be enumerated with OQS_SIG_STFL_alg_identifier.

    -

    Note that some mechanisms may be disabled at compile time.

    -

    -

    - -
    - - -

    Returns

    -

    The number of stateful signature mechanisms.

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_alg_is_enabled

    -
    OQS_API int OQS_SIG_STFL_alg_is_enabled(const char *method_name)
    -
    - -

    Indicates whether the specified algorithm was enabled at compile-time or not.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - -
    const char *method_name -

    Name of the desired algorithm; one of the names in OQS_SIG_STFL_algs.

    -
    - - -

    Returns

    -

    1 if enabled, 0 if disabled or not found

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_new

    -
    OQS_API OQS_SIG_STFL * OQS_SIG_STFL_new(const char *method_name)
    -
    - -

    Constructs an OQS_SIG_STFL object for a particular algorithm.

    -

    Callers should always check whether the return value is NULL, which indicates either than an invalid algorithm name was provided, or that the requested algorithm was disabled at compile-time.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - -
    const char *method_name -

    Name of the desired algorithm; one of the names in OQS_SIG_STFL_algs.

    -
    - - -

    Returns

    -

    An OQS_SIG_STFL for the particular algorithm, or NULL if the algorithm has been disabled at compile-time.

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_keypair

    -
    OQS_API OQS_STATUS OQS_SIG_STFL_keypair(const OQS_SIG_STFL *sig, uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key)
    -
    - -

    Keypair generation algorithm.

    -

    Caller is responsible for allocating sufficient memory for public_key based on the length_* members in this object or the per-scheme compile-time macros OQS_SIG_STFL_*_length_*. The caller is also responsible for initializing secret_key using the OQS_SIG_STFL_SECRET_KEY(*) function.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - -
    const OQS_SIG_STFL *sig -

    The OQS_SIG_STFL object representing the signature scheme.

    -
    uint8_t *public_key -

    The public key is represented as a byte string.

    -
    OQS_SIG_STFL_SECRET_KEY *secret_key -

    The secret key object pointer.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_sign

    -
    OQS_API OQS_STATUS OQS_SIG_STFL_sign(const OQS_SIG_STFL *sig, uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, OQS_SIG_STFL_SECRET_KEY *secret_key)
    -
    - -

    Signature generation algorithm.

    -

    For stateful signatures, there is always a limited number of signatures that can be used, The private key signature counter is increased by one once a signature is successfully generated, When the signature counter reaches the maximum number of available signatures, the signature generation always fails.

    -

    Caller is responsible for allocating sufficient memory for signature, based on the length_* members in this object or the per-scheme compile-time macros OQS_SIG_STFL_*_length_*.

    -

    - - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    const OQS_SIG_STFL *sig -

    The OQS_SIG_STFL object representing the signature scheme.

    -
    uint8_t *signature -

    The signature on the message is represented as a byte string.

    -
    size_t *signature_len -

    The length of the signature.

    -
    const uint8_t *message -

    The message to sign is represented as a byte string.

    -
    size_tmessage_len -

    The length of the message to sign.

    -
    OQS_SIG_STFL_SECRET_KEY *secret_key -

    The secret key object pointer.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_verify

    -
    OQS_API OQS_STATUS OQS_SIG_STFL_verify(const OQS_SIG_STFL *sig, const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key)
    -
    - -

    Signature verification algorithm.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    const OQS_SIG_STFL *sig -

    The OQS_SIG_STFL object representing the signature scheme.

    -
    const uint8_t *message -

    The message is represented as a byte string.

    -
    size_tmessage_len -

    The length of the message.

    -
    const uint8_t *signature -

    The signature on the message is represented as a byte string.

    -
    size_tsignature_len -

    The length of the signature.

    -
    const uint8_t *public_key -

    The public key is represented as a byte string.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_sigs_remaining

    -
    OQS_API OQS_STATUS OQS_SIG_STFL_sigs_remaining(const OQS_SIG_STFL *sig, unsigned long long *remain, const OQS_SIG_STFL_SECRET_KEY *secret_key)
    -
    - -

    Query the number of remaining signatures.

    -

    The remaining signatures are the number of signatures available before the private key runs out of its total signature and expires.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - -
    const OQS_SIG_STFL *sig -

    The OQS_SIG_STFL object representing the signature scheme.

    -
    unsigned long long *remain -

    The number of remaining signatures.

    -
    const OQS_SIG_STFL_SECRET_KEY *secret_key -

    The secret key object.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_sigs_total

    -
    OQS_API OQS_STATUS OQS_SIG_STFL_sigs_total(const OQS_SIG_STFL *sig, unsigned long long *max, const OQS_SIG_STFL_SECRET_KEY *secret_key)
    -
    - -

    Query the total number of signatures.

    -

    The total number of signatures is the constant number present in how many signatures can be generated from a private key.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - -
    const OQS_SIG_STFL *sig -

    The OQS_SIG_STFL object representing the signature scheme.

    -
    unsigned long long *max -

    The number of remaining signatures

    -
    const OQS_SIG_STFL_SECRET_KEY *secret_key -

    The secret key object.

    -
    - - -

    Returns

    -

    OQS_SUCCESS or OQS_ERROR

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_free

    -
    OQS_API void OQS_SIG_STFL_free(OQS_SIG_STFL *sig)
    -
    - -

    Free an OQS_SIG_STFL object that was constructed by OQS_SIG_STFL_new.

    - -
    - - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_SECRET_KEY_new

    -
    OQS_API OQS_SIG_STFL_SECRET_KEY * OQS_SIG_STFL_SECRET_KEY_new(const char *method_name)
    -
    - -

    Construct an OQS_SIG_STFL_SECRET_KEY object for a particular algorithm.

    -

    Callers should always check whether the return value is NULL, which indicates either than an invalid algorithm name was provided, or that the requested algorithm was disabled at compile-time.

    -

    - -

    - -
    - -

    Parameters

    - - - - - - - - -
    const char *method_name -

    Name of the desired algorithm; one of the names in OQS_SIG_STFL_algs.

    -
    - - -

    Returns

    -

    An OQS_SIG_STFL_SECRET_KEY for the particular algorithm, or NULL if the algorithm has been disabled at compile-time.

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_SECRET_KEY_free

    -
    OQS_API void OQS_SIG_STFL_SECRET_KEY_free(OQS_SIG_STFL_SECRET_KEY *sk)
    -
    - -

    Free an OQS_SIG_STFL_SECRET_KEY object that was constructed by OQS_SECRET_KEY_new.

    -

    -

    - -
    - -

    Parameters

    - - - - - - - - -
    OQS_SIG_STFL_SECRET_KEY *sk -

    The OQS_SIG_STFL_SECRET_KEY object to free.

    -
    - - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_SECRET_KEY_SET_lock

    -
    OQS_API void OQS_SIG_STFL_SECRET_KEY_SET_lock(OQS_SIG_STFL_SECRET_KEY *sk, lock_key lock)
    -
    - -

    Attach a locking mechanism to a secret key object.

    -

    This allows for proper synchronization in a multi-threaded or multi-process environment, by ensuring that a secret key is not used concurrently by multiple entities, which could otherwise lead to security issues.

    -

    - - - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - -
    OQS_SIG_STFL_SECRET_KEY *sk -

    Pointer to the secret key object whose lock function is to be set.

    -
    lock_keylock -

    Function pointer to the locking routine provided by the application.

    -
    - - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_SECRET_KEY_SET_unlock

    -
    OQS_API void OQS_SIG_STFL_SECRET_KEY_SET_unlock(OQS_SIG_STFL_SECRET_KEY *sk, unlock_key unlock)
    -
    - -

    Attach an unlock mechanism to a secret key object.

    -

    This allows for proper synchronization in a multi-threaded or multi-process environment, by ensuring that a secret key is not used concurrently by multiple entities, which could otherwise lead to security issues.

    -

    - - - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - -
    OQS_SIG_STFL_SECRET_KEY *sk -

    Pointer to the secret key object whose unlock function is to be set.

    -
    unlock_keyunlock -

    Function pointer to the unlock routine provided by the application.

    -
    - - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_SECRET_KEY_SET_mutex

    -
    OQS_API void OQS_SIG_STFL_SECRET_KEY_SET_mutex(OQS_SIG_STFL_SECRET_KEY *sk, void *mutex)
    -
    - -

    Assign a mutex function to handle concurrency control over the secret key.

    -

    This is to ensure that only one process can access or modify the key at any given time.

    -

    - - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - -
    OQS_SIG_STFL_SECRET_KEY *sk -

    A pointer to the secret key that the mutex functionality will protect.

    -
    void *mutex -

    A function pointer to the desired concurrency control mechanism.

    -
    - - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_SECRET_KEY_lock

    -
    OQS_STATUS OQS_SIG_STFL_SECRET_KEY_lock(OQS_SIG_STFL_SECRET_KEY *sk)
    -
    - -

    Lock the secret key to ensure exclusive access in a concurrent environment.

    -

    If the mutex is not set, this lock operation will fail. This lock operation is essential in multi-threaded or multi-process contexts to prevent simultaneous Signing operations that could compromise the stateful signature security.

    -

    - - - - -

    - -
    - -

    Parameters

    - - - - - - - - -
    OQS_SIG_STFL_SECRET_KEY *sk -

    Pointer to the secret key to be locked.

    -
    - - -

    Returns

    -

    OQS_SUCCESS if the lock is successfully applied; OQS_ERROR otherwise.

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_SECRET_KEY_unlock

    -
    OQS_STATUS OQS_SIG_STFL_SECRET_KEY_unlock(OQS_SIG_STFL_SECRET_KEY *sk)
    -
    - -

    Unlock the secret key, making it accessible to other processes.

    -

    This function is crucial in environments where multiple processes need to coordinate access to the secret key, as it allows a process to signal that it has finished using the key, so others can safely use it.

    -

    - - - - -

    - -
    - -

    Parameters

    - - - - - - - - -
    OQS_SIG_STFL_SECRET_KEY *sk -

    Pointer to the secret key whose lock should be released.

    -
    - - -

    Returns

    -

    OQS_SUCCESS if the lock was successfully released; otherwise, OQS_ERROR.

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_SECRET_KEY_SET_store_cb

    -
    OQS_API void OQS_SIG_STFL_SECRET_KEY_SET_store_cb(OQS_SIG_STFL_SECRET_KEY *sk, secure_store_sk store_cb, void *context)
    -
    - -

    Set the callback and context for securely storing a stateful secret key.

    -

    This function is designed to be called after a new stateful secret key has been generated. It enables the library to securely store secret key and update it every time a Signing operation occurs. Without properly setting this callback and context, signature generation will not succeed as the updated state of the secret key cannot be preserved.

    -

    -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - -
    OQS_SIG_STFL_SECRET_KEY *sk -

    Pointer to the stateful secret key to be managed.

    -
    secure_store_skstore_cb -

    Callback function that handles the secure storage of the key.

    -
    void *context -

    Application-specific context that assists in the storage of secret key data. This context is managed by the application, which allocates it, keeps track of it, and deallocates it as necessary.

    -
    - - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_SECRET_KEY_serialize

    -
    OQS_API OQS_STATUS OQS_SIG_STFL_SECRET_KEY_serialize(uint8_t **sk_buf_ptr, size_t *sk_buf_len, const OQS_SIG_STFL_SECRET_KEY *sk)
    -
    - -

    Serialize the stateful secret key data into a byte array.

    -

    Converts an OQS_SIG_STFL_SECRET_KEY object into a byte array for storage or transmission.

    -

    - - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - -
    uint8_t **sk_buf_ptr -

    Pointer to the allocated byte array containing the serialized key.

    -
    size_t *sk_buf_len -

    Length of the serialized key byte array.

    -
    const OQS_SIG_STFL_SECRET_KEY *sk -

    Pointer to the OQS_SIG_STFL_SECRET_KEY object to be serialized.

    -
    - - -

    Returns

    -

    OQS_SUCCESS on success, or an OQS error code on failure.

    -
    - -
    -
    -
    -
    -
    - -

    OQS_SIG_STFL_SECRET_KEY_deserialize

    -
    OQS_API OQS_STATUS OQS_SIG_STFL_SECRET_KEY_deserialize(OQS_SIG_STFL_SECRET_KEY *sk, const uint8_t *sk_buf, size_t sk_buf_len, void *context)
    -
    - -

    Deserialize a byte array into an OQS_SIG_STFL_SECRET_KEY object.

    -

    Transforms a binary representation of a secret key into an OQS_SIG_STFL_SECRET_KEY structure. After deserialization, the secret key object can be used for subsequent cryptographic operations.

    -

    - - -

    - -
    - -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    OQS_SIG_STFL_SECRET_KEY *sk -

    A pointer to the secret key object that will be populated from the binary data.

    -
    const uint8_t *sk_buf -

    The buffer containing the serialized secret key data.

    -
    size_tsk_buf_len -

    The length of the binary secret key data in bytes.

    -
    void *context -

    Application-specific data used to maintain context about the secret key.

    -
    - - -

    Returns

    -

    OQS_SUCCESS if deserialization was successful; otherwise, OQS_ERROR.

    -
    - -
    -
    -
    - - - -

    -

    Macros

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_sha256_h10 - - - "XMSS-SHA2_10_256" - -

    - -

    Algorithm identifier for XMSS-SHA2_10_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_sha256_h16 - - - "XMSS-SHA2_16_256" - -

    - -

    Algorithm identifier for XMSS-SHA2_16_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_sha256_h20 - - - "XMSS-SHA2_20_256" - -

    - -

    Algorithm identifier for XMSS-SHA2_20_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_shake128_h10 - - - "XMSS-SHAKE_10_256" - -

    - -

    Algorithm identifier for XMSS-SHAKE_10_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_shake128_h16 - - - "XMSS-SHAKE_16_256" - -

    - -

    Algorithm identifier for XMSS-SHAKE_16_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_shake128_h20 - - - "XMSS-SHAKE_20_256" - -

    - -

    Algorithm identifier for XMSS-SHAKE_20_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_sha512_h10 - - - "XMSS-SHA2_10_512" - -

    - -

    Algorithm identifier for XMSS-SHA2_10_512

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_sha512_h16 - - - "XMSS-SHA2_16_512" - -

    - -

    Algorithm identifier for XMSS-SHA2_16_512

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_sha512_h20 - - - "XMSS-SHA2_20_512" - -

    - -

    Algorithm identifier for XMSS-SHA2_20_512

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_shake256_h10 - - - "XMSS-SHAKE_10_512" - -

    - -

    Algorithm identifier for XMSS-SHAKE_10_512

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_shake256_h16 - - - "XMSS-SHAKE_16_512" - -

    - -

    Algorithm identifier for XMSS-SHAKE_16_512

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_shake256_h20 - - - "XMSS-SHAKE_20_512" - -

    - -

    Algorithm identifier for XMSS-SHAKE_20_512

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_sha256_h10_192 - - - "XMSS-SHA2_10_192" - -

    - -

    Algorithm identifier for XMSS-SHA2_10_192

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_sha256_h16_192 - - - "XMSS-SHA2_16_192" - -

    - -

    Algorithm identifier for XMSS-SHA2_16_192

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_sha256_h20_192 - - - "XMSS-SHA2_20_192" - -

    - -

    Algorithm identifier for XMSS-SHA2_20_192

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_shake256_h10_192 - - - "XMSS-SHAKE256_10_192" - -

    - -

    Algorithm identifier for XMSS-SHAKE256_10_192

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_shake256_h16_192 - - - "XMSS-SHAKE256_16_192" - -

    - -

    Algorithm identifier for XMSS-SHAKE256_16_192

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_shake256_h20_192 - - - "XMSS-SHAKE256_20_192" - -

    - -

    Algorithm identifier for XMSS-SHAKE256_20_192

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_shake256_h10_256 - - - "XMSS-SHAKE256_10_256" - -

    - -

    Algorithm identifier for XMSS-SHAKE256_10_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_shake256_h16_256 - - - "XMSS-SHAKE256_16_256" - -

    - -

    Algorithm identifier for XMSS-SHAKE256_16_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmss_shake256_h20_256 - - - "XMSS-SHAKE256_20_256" - -

    - -

    Algorithm identifier for XMSS-SHAKE256_20_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmssmt_sha256_h20_2 - - - "XMSSMT-SHA2_20/2_256" - -

    - -

    Algorithm identifier for XMSSMT-SHA2_20/2_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmssmt_sha256_h20_4 - - - "XMSSMT-SHA2_20/4_256" - -

    - -

    Algorithm identifier for XMSSMT-SHA2_20/4_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmssmt_sha256_h40_2 - - - "XMSSMT-SHA2_40/2_256" - -

    - -

    Algorithm identifier for XMSSMT-SHA2_40/2_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmssmt_sha256_h40_4 - - - "XMSSMT-SHA2_40/4_256" - -

    - -

    Algorithm identifier for XMSSMT-SHA2_40/4_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmssmt_sha256_h40_8 - - - "XMSSMT-SHA2_40/8_256" - -

    - -

    Algorithm identifier for XMSSMT-SHA2_40/8_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmssmt_sha256_h60_3 - - - "XMSSMT-SHA2_60/3_256" - -

    - -

    Algorithm identifier for XMSSMT-SHA2_60/3_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmssmt_sha256_h60_6 - - - "XMSSMT-SHA2_60/6_256" - -

    - -

    Algorithm identifier for XMSSMT-SHA2_60/6_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmssmt_sha256_h60_12 - - - "XMSSMT-SHA2_60/12_256" - -

    - -

    Algorithm identifier for XMSSMT-SHA2_60/12_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmssmt_shake128_h20_2 - - - "XMSSMT-SHAKE_20/2_256" - -

    - -

    Algorithm identifier for XMSSMT-SHAKE_20/2_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmssmt_shake128_h20_4 - - - "XMSSMT-SHAKE_20/4_256" - -

    - -

    Algorithm identifier for XMSSMT-SHAKE_20/4_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmssmt_shake128_h40_2 - - - "XMSSMT-SHAKE_40/2_256" - -

    - -

    Algorithm identifier for XMSSMT-SHAKE_40/2_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmssmt_shake128_h40_4 - - - "XMSSMT-SHAKE_40/4_256" - -

    - -

    Algorithm identifier for XMSSMT-SHAKE_40/4_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmssmt_shake128_h40_8 - - - "XMSSMT-SHAKE_40/8_256" - -

    - -

    Algorithm identifier for XMSSMT-SHAKE_40/8_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmssmt_shake128_h60_3 - - - "XMSSMT-SHAKE_60/3_256" - -

    - -

    Algorithm identifier for XMSSMT-SHAKE_60/3_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmssmt_shake128_h60_6 - - - "XMSSMT-SHAKE_60/6_256" - -

    - -

    Algorithm identifier for XMSSMT-SHAKE_60/6_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_xmssmt_shake128_h60_12 - - - "XMSSMT-SHAKE_60/12_256" - -

    - -

    Algorithm identifier for XMSSMT-SHAKE_60/12_256

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h5_w1 - - - "LMS_SHA256_H5_W1" - -

    - -

    Algorithm identifier for LMS-SHA256_H5_W1

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h5_w2 - - - "LMS_SHA256_H5_W2" - -

    - -

    Algorithm identifier for LMS-SHA256_H5_W2

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h5_w4 - - - "LMS_SHA256_H5_W4" - -

    - -

    Algorithm identifier for LMS-SHA256_H5_W4

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h5_w8 - - - "LMS_SHA256_H5_W8" - -

    - -

    Algorithm identifier for LMS-SHA256_H5_W8

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h10_w1 - - - "LMS_SHA256_H10_W1" - -

    - -

    Algorithm identifier for LMS-SHA256_H10_W1

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h10_w2 - - - "LMS_SHA256_H10_W2" - -

    - -

    Algorithm identifier for LMS-SHA256_H10_W2

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h10_w4 - - - "LMS_SHA256_H10_W4" - -

    - -

    Algorithm identifier for LMS-SHA256_H10_W4

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h10_w8 - - - "LMS_SHA256_H10_W8" - -

    - -

    Algorithm identifier for LMS-SHA256_H10_W8

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h15_w1 - - - "LMS_SHA256_H15_W1" - -

    - -

    Algorithm identifier for LMS-SHA256_H15_W1

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h15_w2 - - - "LMS_SHA256_H15_W2" - -

    - -

    Algorithm identifier for LMS-SHA256_H15_W2

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h15_w4 - - - "LMS_SHA256_H15_W4" - -

    - -

    Algorithm identifier for LMS-SHA256_H15_W4

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h15_w8 - - - "LMS_SHA256_H15_W8" - -

    - -

    Algorithm identifier for LMS-SHA256_H15_W8

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h20_w1 - - - "LMS_SHA256_H20_W1" - -

    - -

    Algorithm identifier for LMS-SHA256_H20_W1

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h20_w2 - - - "LMS_SHA256_H20_W2" - -

    - -

    Algorithm identifier for LMS-SHA256_H20_W2

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h20_w4 - - - "LMS_SHA256_H20_W4" - -

    - -

    Algorithm identifier for LMS-SHA256_H20_W4

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h20_w8 - - - "LMS_SHA256_H20_W8" - -

    - -

    Algorithm identifier for LMS-SHA256_H20_W8

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h25_w1 - - - "LMS_SHA256_H25_W1" - -

    - -

    Algorithm identifier for LMS-SHA256_H25_W1

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h25_w2 - - - "LMS_SHA256_H25_W2" - -

    - -

    Algorithm identifier for LMS-SHA256_H25_W2

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h25_w4 - - - "LMS_SHA256_H25_W4" - -

    - -

    Algorithm identifier for LMS-SHA256_H25_W4

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h25_w8 - - - "LMS_SHA256_H25_W8" - -

    - -

    Algorithm identifier for LMS-SHA256_H25_W8

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h5_w8_h5_w8 - - - "LMS_SHA256_H5_W8_H5_W8" - -

    - -

    Algorithm identifier for LMS-SHA256_H5_W8_H5_W8

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h10_w4_h5_w8 - - - "LMS_SHA256_H10_W4_H5_W8" - -

    - -

    Algorithm identifier for LMS-SHA256_H10_W4_H5_W8

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h10_w8_h5_w8 - - - "LMS_SHA256_H10_W8_H5_W8" - -

    - -

    Algorithm identifier for LMS-SHA256_H10_W8_H5_W8

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h10_w2_h10_w2 - - - "LMS_SHA256_H10_W2_H10_W2" - -

    - -

    Algorithm identifier for LMS-SHA256_H10_W2_H10_W2

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h10_w4_h10_w4 - - - "LMS_SHA256_H10_W4_H10_W4" - -

    - -

    Algorithm identifier for LMS-SHA256_H10_W4_H10_W4

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h10_w8_h10_w8 - - - "LMS_SHA256_H10_W8_H10_W8" - -

    - -

    Algorithm identifier for LMS-SHA256_H10_W8_H10_W8

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h15_w8_h5_w8 - - - "LMS_SHA256_H15_W8_H5_W8" - -

    - -

    Algorithm identifier for LMS-SHA256_H15_W8_H5_W8

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h15_w8_h10_w8 - - - "LMS_SHA256_H15_W8_H10_W8" - -

    - -

    Algorithm identifier for LMS-SHA256_H15_W8_H10_W8

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h15_w8_h15_w8 - - - "LMS_SHA256_H15_W8_H15_W8" - -

    - -

    Algorithm identifier for LMS-SHA256_H15_W8_H15_W8

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h20_w8_h5_w8 - - - "LMS_SHA256_H20_W8_H5_W8" - -

    - -

    Algorithm identifier for LMS-SHA256_H20_W8_H5_W8

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h20_w8_h10_w8 - - - "LMS_SHA256_H20_W8_H10_W8" - -

    - -

    Algorithm identifier for LMS-SHA256_H20_W8_H10_W8

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h20_w8_h15_w8 - - - "LMS_SHA256_H20_W8_H15_W8" - -

    - -

    Algorithm identifier for LMS-SHA256_H20_W8_H15_W8

    - - -
    - -

    - #define - OQS_SIG_STFL_alg_lms_sha256_h20_w8_h20_w8 - - - "LMS_SHA256_H20_W8_H20_W8" - -

    - -

    Algorithm identifier for LMS-SHA256_H20_W8_H20_W8

    - - -
    - -

    - #define - OQS_SIG_STFL_algs_length - - - 70 - -

    - -

    Total number of stateful variants defined above, used to create the tracking array

    - - -
    - -

    - #define - OQS_SIG_STFL - - - OQS_SIG - -

    - -

    Stateful signature scheme object

    - - -
    - - - -

    - - - - - - - - - - -